Некликабельная ссылка.

Разнообразная белиберда
Закрыто
kl-13
Advanced Member
Сообщения: 373
Зарегистрирован: 02.01.2008,09:33
Откуда: Санкт-Петербург

Некликабельная ссылка.

Сообщение kl-13 » 14.09.2014,21:11

Не знаю может где и писали (а спец темы я не нашёл), очень часто при добавлении от 2 до 3+ ссылок в строчку, последняя почему-то не активная как текст, приходится пользоваться тегом URL. Было как и в ЛС так и на самом форуме.
Гениальность и безумие, это две крайности одной сущности. (Ранее носил здесь ник Killerlot)

Аватара пользователя
uav1606
Advanced Member
Сообщения: 5969
Зарегистрирован: 16.01.2008,22:04
Откуда: Енакиево
Контактная информация:

Вклад в сообщество

Сообщение uav1606 » 14.09.2014,21:50

На замечал.

Вот для пробы четыре ссылки подряд:
http://dgmag.in/forum/
http://forum.old-dos.ru/index.php
http://nostalgy.net.ru/forum/
http://iforum.pro/

Нормально показывает.

kl-13, а можно пример сообщения, где есть проблемы с ссылками? Может, они какие-нибудь нестандартные? Раньше, к примеру, как текст отображались ссылки на ftp и https, сейчас вроде бы они нормально отображаются:
https://www.google.com.ua/search?q=ustivirigoldik
ftp://mail.primetime.com.ua/
https://www.google.com.ua/search?q=ferrogringo
https://www.google.com.ua/search?q=krivohvoster

kl-13
Advanced Member
Сообщения: 373
Зарегистрирован: 02.01.2008,09:33
Откуда: Санкт-Петербург

Сообщение kl-13 » 14.09.2014,22:52

http://upload.akusherstvo.ru/image677872.jpg http://upload.akusherstvo.ru/image677873.jpg

Я написал что в строчку, в столбик работает. Вот пример, даже в предпросмотре сразу не работает. Ещё в паре сообщения до этого у меня было так-же. Притом не работает всегда последняя.
Гениальность и безумие, это две крайности одной сущности. (Ранее носил здесь ник Killerlot)

Аватара пользователя
uav1606
Advanced Member
Сообщения: 5969
Зарегистрирован: 16.01.2008,22:04
Откуда: Енакиево
Контактная информация:

Вклад в сообщество

Сообщение uav1606 » 15.09.2014,13:43

Возможно, какой-то недочёт движка. Надо будет покопаться...

kl-13
Advanced Member
Сообщения: 373
Зарегистрирован: 02.01.2008,09:33
Откуда: Санкт-Петербург

Сообщение kl-13 » 15.09.2014,13:54

Ну в движках форумов я 0, но знаю что с определённого времени форумы стали распознавать точки и запятые после ссылки, не считая их её частью (и делая их соответственно не кликабельными). Возможно форум считает последнюю ссылку чем-то подобным, хотя тогда не понятно почему пробел любой длинны не влияет, и почему только последняя. Всё равно спасибо за внимание к проблеме, мне тегом URL попользоваться то не сложно, или в столбик ссылки вставить, просто когда забываю бесит :tongue: .

P.S. Кстати движок призраков точку в конце от ссылки не отделяет ).
Гениальность и безумие, это две крайности одной сущности. (Ранее носил здесь ник Killerlot)

Аватара пользователя
uav1606
Advanced Member
Сообщения: 5969
Зарегистрирован: 16.01.2008,22:04
Откуда: Енакиево
Контактная информация:

Вклад в сообщество

Сообщение uav1606 » 16.09.2014,17:52

Исследования показали, что в ссылках в один ряд тэгом <a href> автоматом не обрамляются чётные ссылки, т.е. 2-я, 4-я и т.п.:
http://link.com http://link2.com http://link3.com http://link3.com http://link3.com http://link3.com http://link3.com

Добавлено:


Глюк присутствует и в оригинальном движке, без модификаций - только что проверил. Предположительно, собака зарыта вот в этих строках в parser.php движка:

Код: Выделить всё

$text = preg_replace("/(\s+)(http:\/\/[^\s\"'\[,!]+)([\s\"'\[,!]+)/is","$1 <a href=\"$2\" rel=\"nofollow\" target=_blank>$2</a> $3",$text);
$text = preg_replace("/(\s+)(https:\/\/[^\s\"'\[,!]+)([\s\"'\[,!]+)/is","$1 <a href=\"$2\" rel=\"nofollow\" target=_blank>$2</a> $3",$text);
$text = preg_replace("/(\s+)(ftp:\/\/[^\s\"'\[,!]+)([\s\"'\[,!]+)/is","$1 <a href=\"$2\" rel=\"nofollow\" target=_blank>$2</a> $3",$text);
(Имеется в виду модифицированная версия, в обычной только первая строка.)

Нужно, предположительно, заменить на:

Код: Выделить всё

$text = preg_replace("/(\s*)(http:\/\/[^\s\"'\[,!]+)([\s\"'\[,!]+)/is","$1 <a href=\"$2\" rel=\"nofollow\" target=_blank>$2</a> $3",$text);
$text = preg_replace("/(\s*)(https:\/\/[^\s\"'\[,!]+)([\s\"'\[,!]+)/is","$1 <a href=\"$2\" rel=\"nofollow\" target=_blank>$2</a> $3",$text);
$text = preg_replace("/(\s*)(ftp:\/\/[^\s\"'\[,!]+)([\s\"'\[,!]+)/is","$1 <a href=\"$2\" rel=\"nofollow\" target=_blank>$2</a> $3",$text);
Пока тестирую...

Upd: вариант не работает...

MM
Advanced Member
Сообщения: 5894
Зарегистрирован: 02.08.2013,22:13
Откуда: Павловский Посад Мск.обл.
Контактная информация:

Вклад в сообщество

Сообщение MM » 18.09.2014,01:03

С этим вопросом не все просто.
Главный фактор - откуда были вставлены ссылки, т.к. вставляются не только видимые на экране символы, но и др. инфа ( скрытая ), содержащаяся в символьной строке. Например, на этот форум практически бесполезно копировать ссылки ( особенно фотки с превьюшками ) с
http://forum.ixbt.com/ - ввиду разности движков.
Как вариант - можно попытаться добавлять/убирать пробелы перед ссылкой или сразу после неё, но это - не выход.
Еще вариант - набирать текст через сторонний текстовый редактор, который, по возможности, не поддерживает W-формат текста - для исключения невидимой информации в ссылке ( т.е. только текст ).
Коллекционирование радиодеталей : http://collectingrd.kxk.ru/

Аватара пользователя
uav1606
Advanced Member
Сообщения: 5969
Зарегистрирован: 16.01.2008,22:04
Откуда: Енакиево
Контактная информация:

Вклад в сообщество

Сообщение uav1606 » 18.09.2014,10:52

MM, да нет, тот, кто редактирует сообщение, видит ссылку полностью. Никакой скрытой информации там нет. Просто процедура "обрамления" ссылок тэгом <a href=...> в движке не совсем корректно прописана.

Аватара пользователя
uav1606
Advanced Member
Сообщения: 5969
Зарегистрирован: 16.01.2008,22:04
Откуда: Енакиево
Контактная информация:

Вклад в сообщество

Сообщение uav1606 » 03.10.2014,23:45

В общем, упомянутый выше вариант не подошёл, он нарушает работу других функций форума, вместо этого надо заменить в parser.php (в корне движка):

Код: Выделить всё

$text = preg_replace("/(\s+)(http:\/\/[^\s\"'\[,!]+)([\s\"'\[,!]+)/is","$1 <a href=\"$2\" rel=\"nofollow\" target=_blank>$2</a> $3",$text);
$text = preg_replace("/(\s+)(https:\/\/[^\s\"'\[,!]+)([\s\"'\[,!]+)/is","$1 <a href=\"$2\" rel=\"nofollow\" target=_blank>$2</a> $3",$text);
$text = preg_replace("/(\s+)(ftp:\/\/[^\s\"'\[,!]+)([\s\"'\[,!]+)/is","$1 <a href=\"$2\" rel=\"nofollow\" target=_blank>$2</a> $3",$text);
на:

Код: Выделить всё

$text = preg_replace("/ /","  ",$text);
$text = preg_replace("/(\s+)(http:\/\/[^\s\"'\[,!]+)([\s\"'\[,!]{1})/is","$1 <a href=\"$2\" rel=\"nofollow\" target=_blank>$2</a> $3",$text);
$text = preg_replace("/(\s+)(https:\/\/[^\s\"'\[,!]+)([\s\"'\[,!]{1})/is","$1 <a href=\"$2\" rel=\"nofollow\" target=_blank>$2</a> $3",$text);
$text = preg_replace("/(\s+)(ftp:\/\/[^\s\"'\[,!]+)([\s\"'\[,!]{1})/is","$1 <a href=\"$2\" rel=\"nofollow\" target=_blank>$2</a> $3",$text);
В результате вышеописанный глюк исчезает.
Вот пример тестового сообщения со ссылками:
http://someforum.e3w.ru/forum/index.php?t=4

Закрыто