[Show Local Url Titles] - преобразование внутренних ссылок в названия

Автор Жека, 15 января 2013, 12:28:12

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Жека

http://custom.simplemachines.org/mods/index.php?mod=1293
Обсуждение на оф.сайте
Исправленная русифицированная версия

Mod Name:    Show Local Url Titles
Created By:    Nathaniel
Type:    New Feature
First Created:    July 12, 2008, 09:01:44 AM
Last Modified:    June 21, 2011, 06:59:35 AM
Latest Version:    2.0.1
Compatible With:    1.1.5, 2.0 Beta 3.1 Public, 2.0 RC4, 2.0
Total Downloads:    31717

Преобразует плоские ссылки на посты, темы, раздели и профили пользователей в ссылки с названием темы, раздела, именем пользователя.

Кто-нибудь себе ставил?
Работает без багов?


karavan


Жека

Цитата: digger от 15 января 2013, 13:10:47Вернее сам он работает, но при этом ломает бб-коды типа img в которых есть ссылки.
Спасибо что подсказал, так сразу и не заметил.

Это единственный баг?
Подправить его пробовали?

Цитата: karavan от 15 января 2013, 13:15:21У меня стоит Titled Links
Мне нужно только для внутренних, для внешних, наоборот, не нужно.
В вашем моде можно отключить, чтобы внешние не преобразовывались?


karavan

Цитата: Жека от 15 января 2013, 13:43:29В вашем моде можно отключить, чтобы внешние не преобразовывались?
Вроде нет.

Жека

#6
Почитал ветку на оф.сайте.


Там проблема более общая, что ни один из тэгов внутри [ url ] [/ url ] не обрабатывается.
Просто на  [ url ] [ img ] [/ img ] [/ url ]  это заметнее всего, потому что часто используется (превьюшки картинок с фотохостингов).
Например, еще текст ссылки другим цветом или жирным не сделаешь :)


В коде за обработку неплоских ссылок отвечает кусочек, начинающийся с
Цитировать
         // Second tag type for urls can have a url value and a separate title.
         elseif ($tag['type'] == 'unparsed_equals_content')
         {

Что самое интересное, в v1.0 этого мода был тот же самый баг, который был исправлен в версии 1.1 вставкой подобного кода:
Цитировать
            //   Okay, if we haven't changed anything, then we will need to do some special junk.
            //   Mostly because we have to be able to have other bbc within the  tags.
            if($temp == $data[0])
            {
               $open_tags[] = $tag;
               $code = strtr($tag['before'], array('$1' => $data[1]));
               $message = substr($message, 0, $pos) . "\n" . $code . "\n" . substr($message, $pos2 + 1);
            }
            //   Otherwise treat this as a normal 'unparsed_equals_content' tag.
            else
            {
               $code = strtr($tag['content'], array('$1' => $data[0], '$2' => $data[1]));
               $message = substr($message, 0, $pos) . "\n" . $code . "\n" . substr($message, $pos3 + 3 + strlen($tag['tag']));
            }

Перебросив этот кусок в 2.0, толку нет, т.к.
- все ссылки с анкерами перестают бысть ссылками, а получаются просто текстом
- вместо  [ url ] [ img ] [/ img ] [/ url ] выводится просто [ img ] [/ img ]


Имхо, это костыль, и как он мог работать правильно в SMF 1.х не знаю.


Там проблема в том, что автор посчитал, что внутри тэгов никаких других тэгов быть не может и сделал это как:

unparsed_equals_content: [tag=...]unparsed content[/tag]


Естественно, как видно из описания, внутри тэгов ничего и не будет парсится.


По идее, нужно использовать:
unparsed_equals: [tag=xyz]parsed content[/tag]


Оно так и есть в оригинале движка.
Пока не понятно зачем надо было менять и почему так, как есть, не получилось.

Жека

Удалил кусок кода с unparsed_equals_content из мода.

Все ссылки вида:
http://localhost/smf/index.php?board=8.0
[url]http://localhost/smf/index.php?board=8.0[/url]
[url=http://localhost/smf/index.php?board=8.0]http://localhost/smf/index.php?board=8.0[/url]
[url=http://localhost/smf/index.php?board=8.0][b]Жирная ссылка[/b][/url]
[url=http://localhost/smf/index.php?board=8.0][img]http://localhost/smf/Smileys/perfect_smileys/cool.gif[/img][/url]

нормально преобразуются, тэги внутри url обрабатываются.

Какой функционал при этом отвалился, так и не понял.
Погоняйте, плиз.

P.S. Русский перевод интегрирован :)

Aptemuda.ru

Цитата: Жека от 15 января 2013, 22:42:03
Удалил кусок кода с unparsed_equals_content из мода.

Все ссылки вида:
http://localhost/smf/index.php?board=8.0
[url]http://localhost/smf/index.php?board=8.0[/url]
[url=http://localhost/smf/index.php?board=8.0]http://localhost/smf/index.php?board=8.0[/url]
[url=http://localhost/smf/index.php?board=8.0][b]Жирная ссылка[/b][/url]
[url=http://localhost/smf/index.php?board=8.0][img]http://localhost/smf/Smileys/perfect_smileys/cool.gif[/img][/url]

нормально преобразуются, тэги внутри url обрабатываются.

Какой функционал при этом отвалился, так и не понял.
Погоняйте, плиз.

P.S. Русский перевод интегрирован :)


Собрался ставить этот мод на 2.0.9, подскажите как сейчас ситуация с мод'ом?
Как я понял Вы удалили строки:
  // Second tag type for urls can have a url value and a separate title.
         elseif ($tag['type'] == 'unparsed_equals_content')
         {
Женский портал АРТЕМИДА
"Всe о роддомах и врачах роддомов Ростова-на-Дону"
http://aptemuda.ru

Жека


Aptemuda.ru

Цитата: Жека от 27 октября 2014, 12:52:40
У меня всё работает :)
А не подскажите, что нужно удалить, что бы не было трудностей с мод'ом.
Женский портал АРТЕМИДА
"Всe о роддомах и врачах роддомов Ростова-на-Дону"
http://aptemuda.ru

Жека


Aptemuda.ru

Цитата: Жека от 28 октября 2014, 14:52:05
Я ж приложил к сообщению http://www.simplemachines.ru/index.php?topic=15676.msg123123#msg123123 zip-файл уже исправленный.
Ой, извини за невнимательность :)
Просто мало кто выкладывает готовое решение, обычно просто пишут код, который подправляет мод.
Спасибо, скачал.
Буду пробовать!
Женский портал АРТЕМИДА
"Всe о роддомах и врачах роддомов Ростова-на-Дону"
http://aptemuda.ru

Aptemuda.ru

Женский портал АРТЕМИДА
"Всe о роддомах и врачах роддомов Ростова-на-Дону"
http://aptemuda.ru

Жека

Попробуйте поставить мод на пустом (без модов) форуме.
Возможно конфликт с каким-то другим модом.


valdnieks

Registered Linux user #325316
Последняя версия SMF: SMF 2.0.15
Версия GD: bundled (2.1.0 compatible)
Версия MySQL: 5.5.23
PHP: 5.6.30
Версия Web сервера: Apache/2.4.25 (Win64) PHP/5.6.30

GeorG

Файл .russian.php в кодировке utf8.
Просто в нотопаде++ сделайте преобразование в ANSI.
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru


valdnieks

При отправлении сообщения ошибки:






Впопыхах немножко прочитал, причина неисправности в PHP?
Это так или что-то другое, например, конфликт с другим модом?
Registered Linux user #325316
Последняя версия SMF: SMF 2.0.15
Версия GD: bundled (2.1.0 compatible)
Версия MySQL: 5.5.23
PHP: 5.6.30
Версия Web сервера: Apache/2.4.25 (Win64) PHP/5.6.30

digger®

Цитата: valdnieks от 15 ноября 2016, 19:25:51При отправлении сообщения ошибки:






Впопыхах немножко прочитал, причина неисправности в PHP?
Это так или что-то другое, например, конфликт с другим модом?

Какая версия PHP?


valdnieks

Registered Linux user #325316
Последняя версия SMF: SMF 2.0.15
Версия GD: bundled (2.1.0 compatible)
Версия MySQL: 5.5.23
PHP: 5.6.30
Версия Web сервера: Apache/2.4.25 (Win64) PHP/5.6.30