29 июля, 201311 yr comment_37693 как правильно установить этот патч? после открытия архива файл minify_patch_07_13 - public-min-config.php залил в testforum-public-min с заменой файла сообщение в АЦ осталось что не так делаю? прошу помощи спасибо заранее Edited 29 июля, 201311 yr by kovboi
29 июля, 201311 yr Author comment_37694 kovboi, сообщение исчезнет позже само. По этому патчу безопасности есть отдельная тема.
29 июля, 201311 yr comment_37722 podvorie, и на этом форуме такой проблемы нет. Запарился уже. После установки того патча (345_linkify.zip) что-то надо сделать? нет. У меня все сразу заработало.
1 августа, 201311 yr comment_38046 Здравствуйте. При вставке в текст сообщения длинной ссылки получается, что движок (или сам редактор) пытается сделать из нее активную гиперссылку и делает это с ошибкой, обрабатывая только часть ссылки. Т.е. вставляю длинную ссылку, а на выходе полный текст ссылки, но только часть ее сделана гиперссылкой. Как это исправить? Спасибо! Перевод от 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 Author comment_38047 kgb, не знаю чей перевод, NULL тут скачивал. Спасибо, попробую!
1 августа, 201311 yr comment_38050 spoken, ну вот, можете посмотреть, и русские урлы и транслит обрабатывает __homemasters.ru/forum/topic/23228-obsuzhdenie-novogo-foruma/page-7#entry266331
16 августа, 201311 yr comment_40105 Вот точна такая-же проблема ссылками,попробую выше перечисленные способы,может поможет
16 августа, 201311 yr comment_40197 Вообщем я пришел к окончательному решению этой проблемы! Все дело в том что администратор этого сайта распространяет этим безобразным багом от которого ссылки не правильно вставляются и получается так что пол ссылки кликабельная а дальше она как текст! Что-бы устранить этот баг мне пришлось откопать официальную версию 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 comment_40199 Этот сайт не виноват, это авторы пакета русификации IBR сломали этот файл.
16 августа, 201311 yr comment_40201 Вот сам файл,его подмените на свой и воля (только для IPB 3.4.5) Этот сайт не виноват, это авторы пакета русификации IBR сломали этот файл. Возможно и так Ах да я там выше пост написал по устранению этого бага и ошибся в версиях,в место 3.4.5 я написал 3.4.4 Linkify.php Edited 16 августа, 201311 yr by Solovei
17 августа, 201311 yr comment_40372 Возможно и так Ах да я там выше пост написал по устранению этого бага и ошибся в версиях,в место 3.4.5 я написал 3.4.4 Прикрепленные файлы Вы выложили оригинальный Linkify.php . Но он не устраняет этот баг, если в ссылках используется кирилица, как, например, на этом форуме. Мой вариант работает как с латиницей так и с кирилицей Edited 17 августа, 201311 yr by kgb
17 августа, 201311 yr comment_40378 Вы выложили оригинальный Linkify.php . Но он не устраняет этот баг, если в ссылках используется кирилица, как, например, на этом форуме. Мой вариант работает как с латиницей так и с кирилицей Спасибо, Ваш вариант помог с сылками.
24 августа, 201311 yr comment_41320 Ребят подскажите пожалуйста как в этот код добавить ещё символ "|" без него ссылка перестаёт работать, а после отправки сообщения он меняется на %7C
15 сентября, 201311 yr Author comment_43782 kgb, даже с вашим файлом ссылки типа ipbmafia.ru/topic/test206/ парсятся у меня только до цифр. Задолбала эта проблема.
27 февраля, 201410 yr comment_56861 Ребят, а как запретить автоматическое преобразование ссылок вида __site.ru в активные ссылки? В общем нужно чтобы ссылки добавлялись просто как текст.
3 апреля, 201410 yr comment_60376 Никто не сталкивался проблемой, что ссылки с подчеркиванием типа __some_domain.com/ постятся некорректно? Edited 3 апреля, 201410 yr by joefast
2 февраля, 20159 yr comment_79899 Добрый день. Подскажите пожалуйста. У меня 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.