29 июля, 201311 yr как правильно установить этот патч? после открытия архива файл minify_patch_07_13 - public-min-config.php залил в testforum-public-min с заменой файла сообщение в АЦ осталось что не так делаю? прошу помощи спасибо заранее Edited 29 июля, 201311 yr by kovboi
29 июля, 201311 yr Author kovboi, сообщение исчезнет позже само. По этому патчу безопасности есть отдельная тема.
29 июля, 201311 yr podvorie, и на этом форуме такой проблемы нет. Запарился уже. После установки того патча (345_linkify.zip) что-то надо сделать? нет. У меня все сразу заработало.
1 августа, 201311 yr Здравствуйте. При вставке в текст сообщения длинной ссылки получается, что движок (или сам редактор) пытается сделать из нее активную гиперссылку и делает это с ошибкой, обрабатывая только часть ссылки. Т.е. вставляю длинную ссылку, а на выходе полный текст ссылки, но только часть ее сделана гиперссылкой. Как это исправить? Спасибо! Перевод от IBR? Если да, то дело в нем. Я решил этот баг так. Внимание, это для версии 3.4.5 , но думаю в ранних версиях аналогично Файл /ips_kernel/HTMLPurifier/HTMLPurifier/Injector/Linkify.php находим код $uni=(IPS_DOC_CHAR_SET=="UTF-8")?"u":""; preg_match_all( "#(.*?)(()?((?:http|ftp|https)://[p{L}-_]+(?:.[p{L}-_]+)?(?:[p{L}-.,()@?^=%&:/~+#]*[p{L}-@?^=%&/~+#]))(.*?)$#ims" . $uni, $token->data, $matches ) меняем на $uni=(IPS_DOC_CHAR_SET=="UTF-8")?"u":""; preg_match_all( "#(.*?)(()?((?:http|ftp|https)://[а-яА-Яw-_]+(?:.[а-яА-Яw-_]+)?(?:[а-яА-Яw-.,()@?^=%&:/~+#]*[а-яА-Яw-@?^=%&/~+#]))(.*?)$#ims" . $uni, $token->data, $matches ); сохраняем файл (обязательно!!) в кодировке UTF-8 (без BOM!!!!). Теперь все работает, по крайней мере у меня так. Мой файл Linkify.php в аттаче Linkify.zip
1 августа, 201311 yr spoken, ну вот, можете посмотреть, и русские урлы и транслит обрабатывает __homemasters.ru/forum/topic/23228-obsuzhdenie-novogo-foruma/page-7#entry266331
16 августа, 201311 yr Вот точна такая-же проблема ссылками,попробую выше перечисленные способы,может поможет
16 августа, 201311 yr Вообщем я пришел к окончательному решению этой проблемы! Все дело в том что администратор этого сайта распространяет этим безобразным багом от которого ссылки не правильно вставляются и получается так что пол ссылки кликабельная а дальше она как текст! Что-бы устранить этот баг мне пришлось откопать официальную версию IPB 3.4.4 и вытащить с нее файлик - Linkify.php Теперь давайте посмотрим чем отличается этот файлик от файлика который валяется в IPB 3.4.4 представленным администратором этого прекрасного форума! Исходник файла Linkify.php от IPB 3.4.4 скаченного с этого форума <?php /** * Injector that converts http, https and ftp text URLs to actual links. */ class HTMLPurifier_Injector_Linkify extends HTMLPurifier_Injector { public $name = 'Linkify'; public $needed = array('a' => array('href')); public function handleText(&$token) { if (!$this->allowsElement('a')) return; if (strpos($token->data, '://') === false) { // our really quick heuristic failed, abort // this may not work so well if we want to match things like // "google.com", but then again, most people don't return; } //print $token->data; // there is/are URL(s). Let's split the string: // Note: this regex is extremely permissive //$bits = preg_split('#((?:https?|ftp)://[^s'"<>()]+)#S', $token->data, -1, PREG_SPLIT_DELIM_CAPTURE); /* MODIFIED April 26, 2013 @link __community.invisionpower.com/resources/bugs.html/_/ip-board/links-being-corrupted-or-malformed-in-board-and-nexus-r41993 Test case: __invisionpower.com, __invisionpower.com. __invisionpower.com https://invisionpower.com https://blah.gov/blah-blah.as __en.wikipedia.org/wiki/Chi_(mythology) (__google.com) */ $uni=(IPS_DOC_CHAR_SET=="UTF-8")?"u":""; preg_match_all( "#(.*?)(()?((?:http|ftp|https)://[p{L}-_]+(?:.[p{L}-_]+)?(?:[p{L}-.,()@?^=%&:/~+#]*[p{L}-@?^=%&/~+#]))(.*?)$#ims" . $uni, $token->data, $matches ); //print_r($matches);exit; //$token = array(); // $i = index // $c = count // $l = is link /*for ($i = 0, $c = count($bits), $l = false; $i < $c; $i++, $l = !$l) { if (!$l) { if ($bits[$i] === '') continue; $token[] = new HTMLPurifier_Token_Text($bits[$i]); } else { $token[] = new HTMLPurifier_Token_Start('a', array('href' => $bits[$i])); $token[] = new HTMLPurifier_Token_Text($bits[$i]); $token[] = new HTMLPurifier_Token_End('a'); } }*/ if( is_array($matches) AND count($matches) ) { $token = array();//by denchu 06062013 foreach( $matches[0] as $k => $match ) { if( !$matches[3][$k] ) { $token[] = new HTMLPurifier_Token_Text($token->data); } else { if( $matches[1][$k] ) { $token[] = new HTMLPurifier_Token_Text($matches[1][$k]); } if( $matches[2][$k] ) { $token[] = new HTMLPurifier_Token_Text($matches[2][$k]); } if( !$matches[2][$k] AND $matches[4][$k] == ')' ) { $matches[3][$k] .= ')'; unset($matches[4][$k]); } $token[] = new HTMLPurifier_Token_Start('a', array('href' => $matches[3][$k])); $token[] = new HTMLPurifier_Token_Text($matches[3][$k]); $token[] = new HTMLPurifier_Token_End('a'); if( $matches[4][$k] ) { $token[] = new HTMLPurifier_Token_Text($matches[4][$k]); } } } } //print_r($token);exit; } } // vim: et sw=4 sts=4 Исходник файла Linkify.php от IPB 3.4.4 скаченного с официального форума <?php /** * Injector that converts http, https and ftp text URLs to actual links. */ class HTMLPurifier_Injector_Linkify extends HTMLPurifier_Injector { public $name = 'Linkify'; public $needed = array('a' => array('href')); public function handleText(&$token) { if (!$this->allowsElement('a')) return; if (strpos($token->data, '://') === false) { // our really quick heuristic failed, abort // this may not work so well if we want to match things like // "google.com", but then again, most people don't return; } //print $token->data; // there is/are URL(s). Let's split the string: // Note: this regex is extremely permissive //$bits = preg_split('#((?:https?|ftp)://[^s'"<>()]+)#S', $token->data, -1, PREG_SPLIT_DELIM_CAPTURE); /* MODIFIED April 26, 2013 @link __community.invisionpower.com/resources/bugs.html/_/ip-board/links-being-corrupted-or-malformed-in-board-and-nexus-r41993 Test case: __invisionpower.com, __invisionpower.com. __invisionpower.com https://invisionpower.com https://blah.gov/blah-blah.as __en.wikipedia.org/wiki/Chi_(mythology) (__google.com) */ preg_match_all( "#(.*?)(()?((?:http|ftp|https)://[w-_]+(?:.[w-_]+)?(?:[w-.,()@?^=%&:/~+#]*[w-@?^=%&/~+#]))(.*?)$#ims", $token->data, $matches ); //print_r($matches);exit; $token = array(); // $i = index // $c = count // $l = is link /*for ($i = 0, $c = count($bits), $l = false; $i < $c; $i++, $l = !$l) { if (!$l) { if ($bits[$i] === '') continue; $token[] = new HTMLPurifier_Token_Text($bits[$i]); } else { $token[] = new HTMLPurifier_Token_Start('a', array('href' => $bits[$i])); $token[] = new HTMLPurifier_Token_Text($bits[$i]); $token[] = new HTMLPurifier_Token_End('a'); } }*/ if( is_array($matches) AND count($matches) ) { foreach( $matches[0] as $k => $match ) { if( !$matches[3][$k] ) { $token[] = new HTMLPurifier_Token_Text($token->data); } else { if( $matches[1][$k] ) { $token[] = new HTMLPurifier_Token_Text($matches[1][$k]); } if( $matches[2][$k] ) { $token[] = new HTMLPurifier_Token_Text($matches[2][$k]); } if( !$matches[2][$k] AND $matches[4][$k] == ')' ) { $matches[3][$k] .= ')'; unset($matches[4][$k]); } $token[] = new HTMLPurifier_Token_Start('a', array('href' => $matches[3][$k])); $token[] = new HTMLPurifier_Token_Text($matches[3][$k]); $token[] = new HTMLPurifier_Token_End('a'); if( $matches[4][$k] ) { $token[] = new HTMLPurifier_Token_Text($matches[4][$k]); } } } } //print_r($token);exit; } } // vim: et sw=4 sts=4 Ну вот,теперь вы сами увидели своими глазами что в этих двух файлах есть отличия! Вообщем ребят не буду тут демагогию разводить если хотите от этого бага избавится то идите по этому пути: ips_kernel/HTMLPurifier/HTMLPurifier/Injector/Linkify.php и все содержимое файла Linkify.php сотрите и закиньте в него код от официального файла и будет вам счастье! Edited 16 августа, 201311 yr by Solovei
16 августа, 201311 yr Author Этот сайт не виноват, это авторы пакета русификации IBR сломали этот файл.
16 августа, 201311 yr Вот сам файл,его подмените на свой и воля (только для IPB 3.4.5) Этот сайт не виноват, это авторы пакета русификации IBR сломали этот файл. Возможно и так Ах да я там выше пост написал по устранению этого бага и ошибся в версиях,в место 3.4.5 я написал 3.4.4 Linkify.php Edited 16 августа, 201311 yr by Solovei
17 августа, 201311 yr Возможно и так Ах да я там выше пост написал по устранению этого бага и ошибся в версиях,в место 3.4.5 я написал 3.4.4 Прикрепленные файлы Вы выложили оригинальный Linkify.php . Но он не устраняет этот баг, если в ссылках используется кирилица, как, например, на этом форуме. Мой вариант работает как с латиницей так и с кирилицей Edited 17 августа, 201311 yr by kgb
17 августа, 201311 yr Вы выложили оригинальный Linkify.php . Но он не устраняет этот баг, если в ссылках используется кирилица, как, например, на этом форуме. Мой вариант работает как с латиницей так и с кирилицей Спасибо, Ваш вариант помог с сылками.
24 августа, 201311 yr Ребят подскажите пожалуйста как в этот код добавить ещё символ "|" без него ссылка перестаёт работать, а после отправки сообщения он меняется на %7C
15 сентября, 201311 yr Author kgb, даже с вашим файлом ссылки типа ipbmafia.ru/topic/test206/ парсятся у меня только до цифр. Задолбала эта проблема.
27 февраля, 201410 yr Ребят, а как запретить автоматическое преобразование ссылок вида __site.ru в активные ссылки? В общем нужно чтобы ссылки добавлялись просто как текст.
3 апреля, 201410 yr Никто не сталкивался проблемой, что ссылки с подчеркиванием типа __some_domain.com/ постятся некорректно? Edited 3 апреля, 201410 yr by joefast
2 февраля, 20159 yr Добрый день. Подскажите пожалуйста. У меня ipb 3.4.6. При попытке закоментить топик стартера жмем ПКМ "Вставить" текст. CTRL+V тоже не приводят к желаемому результату. Где копать не подскажите?
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.