kovboi Опубликовано 29 июля, 2013 Поделиться Опубликовано 29 июля, 2013 (изменено) как правильно установить этот патч? после открытия архива файл minify_patch_07_13 - public-min-config.php залил в testforum-public-min с заменой файла сообщение в АЦ осталось что не так делаю? прошу помощи спасибо заранее Изменено 29 июля, 2013 пользователем kovboi Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
spoken Опубликовано 29 июля, 2013 Автор Поделиться Опубликовано 29 июля, 2013 kovboi, сообщение исчезнет позже само. По этому патчу безопасности есть отдельная тема. AUYKGN 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
podvorie Опубликовано 29 июля, 2013 Поделиться Опубликовано 29 июля, 2013 podvorie, и на этом форуме такой проблемы нет. Запарился уже. После установки того патча (345_linkify.zip) что-то надо сделать? нет. У меня все сразу заработало. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AUS Опубликовано 31 июля, 2013 Поделиться Опубликовано 31 июля, 2013 у вас хук Name or Quote стоит? стоит Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
kgb Опубликовано 1 августа, 2013 Поделиться Опубликовано 1 августа, 2013 Здравствуйте. При вставке в текст сообщения длинной ссылки получается, что движок (или сам редактор) пытается сделать из нее активную гиперссылку и делает это с ошибкой, обрабатывая только часть ссылки. Т.е. вставляю длинную ссылку, а на выходе полный текст ссылки, но только часть ее сделана гиперссылкой. Как это исправить? Спасибо! Перевод от 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 gwynnbleiidd, Vikt0R, FrogZard и 5 других 8 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
spoken Опубликовано 1 августа, 2013 Автор Поделиться Опубликовано 1 августа, 2013 kgb, не знаю чей перевод, NULL тут скачивал. Спасибо, попробую! Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
kgb Опубликовано 1 августа, 2013 Поделиться Опубликовано 1 августа, 2013 spoken, ну вот, можете посмотреть, и русские урлы и транслит обрабатывает __homemasters.ru/forum/topic/23228-obsuzhdenie-novogo-foruma/page-7#entry266331 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Solovei Опубликовано 16 августа, 2013 Поделиться Опубликовано 16 августа, 2013 Вот точна такая-же проблема ссылками,попробую выше перечисленные способы,может поможет Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Solovei Опубликовано 16 августа, 2013 Поделиться Опубликовано 16 августа, 2013 (изменено) Вообщем я пришел к окончательному решению этой проблемы! Все дело в том что администратор этого сайта распространяет этим безобразным багом от которого ссылки не правильно вставляются и получается так что пол ссылки кликабельная а дальше она как текст! Что-бы устранить этот баг мне пришлось откопать официальную версию 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 сотрите и закиньте в него код от официального файла и будет вам счастье! Изменено 16 августа, 2013 пользователем Solovei tavaril и Melinio 2 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
spoken Опубликовано 16 августа, 2013 Автор Поделиться Опубликовано 16 августа, 2013 Этот сайт не виноват, это авторы пакета русификации IBR сломали этот файл. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Solovei Опубликовано 16 августа, 2013 Поделиться Опубликовано 16 августа, 2013 (изменено) Вот сам файл,его подмените на свой и воля (только для IPB 3.4.5) Этот сайт не виноват, это авторы пакета русификации IBR сломали этот файл. Возможно и так Ах да я там выше пост написал по устранению этого бага и ошибся в версиях,в место 3.4.5 я написал 3.4.4 Linkify.php Изменено 16 августа, 2013 пользователем Solovei tavaril и AUYKGN 2 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
kgb Опубликовано 17 августа, 2013 Поделиться Опубликовано 17 августа, 2013 (изменено) Возможно и так Ах да я там выше пост написал по устранению этого бага и ошибся в версиях,в место 3.4.5 я написал 3.4.4 Прикрепленные файлы Вы выложили оригинальный Linkify.php . Но он не устраняет этот баг, если в ссылках используется кирилица, как, например, на этом форуме. Мой вариант работает как с латиницей так и с кирилицей Изменено 17 августа, 2013 пользователем kgb Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
nrj45 Опубликовано 17 августа, 2013 Поделиться Опубликовано 17 августа, 2013 Вы выложили оригинальный Linkify.php . Но он не устраняет этот баг, если в ссылках используется кирилица, как, например, на этом форуме. Мой вариант работает как с латиницей так и с кирилицей Спасибо, Ваш вариант помог с сылками. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Kovaks Опубликовано 18 августа, 2013 Поделиться Опубликовано 18 августа, 2013 kgb, Спс всё починилось Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Sircale Опубликовано 24 августа, 2013 Поделиться Опубликовано 24 августа, 2013 Ребят подскажите пожалуйста как в этот код добавить ещё символ "|" без него ссылка перестаёт работать, а после отправки сообщения он меняется на %7C Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
spoken Опубликовано 15 сентября, 2013 Автор Поделиться Опубликовано 15 сентября, 2013 kgb, даже с вашим файлом ссылки типа ipbmafia.ru/topic/test206/ парсятся у меня только до цифр. Задолбала эта проблема. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Kinkl Опубликовано 27 февраля, 2014 Поделиться Опубликовано 27 февраля, 2014 Ребят, а как запретить автоматическое преобразование ссылок вида __site.ru в активные ссылки? В общем нужно чтобы ссылки добавлялись просто как текст. AUYKGN 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AUYKGN Опубликовано 27 февраля, 2014 Поделиться Опубликовано 27 февраля, 2014 Kinkl, интересный вопрос. Но его нужно в отдельную тему. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
joefast Опубликовано 3 апреля, 2014 Поделиться Опубликовано 3 апреля, 2014 (изменено) Никто не сталкивался проблемой, что ссылки с подчеркиванием типа __some_domain.com/ постятся некорректно? Изменено 3 апреля, 2014 пользователем joefast Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
rokkott Опубликовано 2 февраля, 2015 Поделиться Опубликовано 2 февраля, 2015 Добрый день. Подскажите пожалуйста. У меня ipb 3.4.6. При попытке закоментить топик стартера жмем ПКМ "Вставить" текст. CTRL+V тоже не приводят к желаемому результату. Где копать не подскажите? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.