2.Х.Х Чтоб автоссылки открывались в новой вкладке

2567
Привет Инстантеры! Мой первый блог и подарок Вам! Ребята с сайта http://exticms.com/ поделились двумя файликами, была у нас проблема это когда из личной переписки, при переходе по внешней ссылке, эта внешняя ссылка открывалась не в новом окне, а в текущем, разработчики сказали что это автоссылки, но я не понимаю чем автоссылки отличаются от неавтоссылок. В общем кому надо, чтоб автоссылки (внешние ссылки) открвыались в переписке в новой вкладке налетай.


Изменения коснулись двух файлов

html_filter.php строка 64 приобретает вид $jevix->cfgAllowTagParams('a', array('target'=>array('_blank'),'href', 'name' => '#text'));

jevix.class.php строка 1442 приобретает вид $text.= $this->makeTag('a' , array('target'=>'_blank','href' => $href), $url, false);

Этот фикс будет работать только для новых сообщений.

Кому лень править качаем и заливаем файлы
это в /system/libs
https://kiberkompas.com/podarki/1.zip

это в /system/controllers/typograph/hooks
https://kiberkompas.com/podarki/2.zip

Ещё ребята написали так:
Может это можно было сделать без правки jevix класса у меня нет времени искать где собака зарыта, но и это решение правильное и безопасное.

В общем какбы там нибыло, всё работает dance

Пользуясь случаем, хочу спросить, как сделать чтоб внешние ссылки указанные в профилях открывались в новой вкладке? Вот смотрите https://kiberkompas.com/users/56 нажал на личный сайт пользователя и закрылся сайт, а надо чтоб открывалась новая вкладка.
2.Х.Х Правило удаления типов контента
Комментарии (27)
ph3no 11 апреля 2015 в 15:43 0
В ICMS все внешние ссылки не только не открываются в новом окне, так еще они еще и прямые. И это не только в переписке. Весь этот ужас решают ваши файлы?
Колян 11 апреля 2015 в 20:06 0
В ICMS все внешние ссылки не только не открываются в новом окне, так еще они еще и прямые. И это не только в переписке. Весь этот ужас решают ваши файлы?
Скорее всего не все проблемы вот ещё по этой теме топик http://instantcms.ru/forum/thread21279-1.html#203174 но после обновы это решение в переписке перестало работать, вероятно решает похожую проблему, гдето в другом месте smile
ph3no 11 апреля 2015 в 23:05 0
Версия 2.2.1, прямые внешние ссылки отдаются комментариях, в блогах, в личных сообщениях.
Я удивляюсь, почему еще из ICMS2 еще не сделали линкопомойки?
Evanescence 11 апреля 2015 в 15:52 +3
Николай Валентинович Сазоненко:
Пользуясь случаем, хочу спросить, как сделать чтоб внешние ссылки указанные в профилях открывались в новой вкладке?
Файл \system\fields\url.php строку 37
Код PHP:
  1. return '<a href="'.htmlspecialchars($href).'">'.$value.'</a>';
заменить на
Код PHP:
  1. return '<a href="'.htmlspecialchars($href).'" target="_blank">'.$value.'</a>';
Колян 12 апреля 2015 в 00:42 0
Спасибо братское сердце, работает! dance
PIN 11 апреля 2015 в 20:11 +1
С дебютом)
Старый балбес 11 апреля 2015 в 21:21 +1
Пожалуй за пару плюсов стоит нанять новых разработчиков.

Так для страховки
""
Изображение уменьшено. Щелкните, чтобы увидеть оригинал.

Разработчики знают азы HTML?
Старый балбес 11 апреля 2015 в 21:23 0
+ Но разработчиков на увольнение!
Старый балбес 11 апреля 2015 в 21:36 0
Если ВЫ делаете изменения в поточном системном классе ( классе который отвечает за фильтрацию), кто отвечать за проблемы будет, ВЫ как автор темы , или уволенные разработчики,
Если Ваше решение обоснованно , то выложите аргументы для дополнения-изменения метода .
Как код разработчика в трекер !
Оформить как конфигурацию системы вывод ссылок ( стандарт -ваше решение),
ВЫ все равно - переложили Ваше решение на плечи пользователя.
r2 11 апреля 2015 в 21:32 +1
Все круто, только непонятно зачем.
В 2.2.1 и так эти ссылки открываются в новом окне.
Колян 11 апреля 2015 в 22:33 0
Не открываются внешние ссылки в переписке в новом окне, только что проверил тут http://www.icms2add.ru PIN обновился до 2.2.1 и у нас не открывались до этих правок, тоже обновились до 2.2.1
Kreator 11 апреля 2015 в 23:00 0
В полях тоже в новом окне не открываются, хоть на обновленной последней версии, хоть на чистой установке.
r2 11 апреля 2015 в 23:24 0
В полях и не должны.
Kreator 11 апреля 2015 в 23:46 +3
Почему то я думаю, что все внешние ссылки на сайте должны открываться в новой вкладке?
Что со мной не так?
r2 12 апреля 2015 в 00:16 +1
Пользователь сам способен решить где ему открыть ссылку. Принудительно заставлять его плодить вкладки допустимо лишь тогда, когда уход со страницы сбрасывает ее состояние (в посте речь об этом случае).
Колян 12 апреля 2015 в 00:28 0
А как этот вопрос выбора решается например в планшете, андроиде, эпле, ну там где пальцем нажимаешь на экране?
r2 12 апреля 2015 в 00:42 +1
Палец держится на ссылке на полсекунды дольше, появляется контекстное меню, выбирается "Открыть в новой вкладке". Да и кнопку "Назад" там никто не отменял, нажать на которую на мобильном устройстве гораздо проще, чем переключаться между вкладками.
ph3no 12 апреля 2015 в 01:41 0
Если сделаете такое решение, обязательно поделитесь, молю.
ph3no 12 апреля 2015 в 02:29 +1
Это твой сайт и твой посетитель и ты решаешь отдавать его на другой сайт или у себя оставлять.
О пользователе думать хорошо, но и о сайте тоже подумать нужно. Все следят за ссылками, за отказами, отслеживают поведенческий фактор, а тут прям какой-то подарок - прямые внешние ссылки можно навтыкать куда угодно, да еще и переходить по ним в текущем окне схватывая сразу отказ.
Колян 12 апреля 2015 в 02:42 0
Всецело и полностью поддерживаю т.к. незачем переходить от вкладки к вкладке, когда доп. вкладку открытую по внешней ссылке можно просто закрыть, чтоб не моячила и продолжить читать с того места где остановился (не факт что браузер вернёт юзера к тому месту в тексте/ветке комментариев откуда он перешёл по внешней ссылке)
r2 12 апреля 2015 в 16:27 +1
Вы руководствуетесь только некими собственными соображениями (истинность которых нельзя ни подтвердить ни опровергнуть), тогда как веб-дизайн - это целая наука, сформированная годами и имеющая целый набор устоявшихся правил и принципов. Один из основных принципов это предсказуемость. И насильное открытие ссылок в новом окне как раз нарушает этот принцип. В качестве дополнительного материала можно почитать, например, вот это.
r2 12 апреля 2015 в 15:54 +1
Так и решайте на своем сайте, никто же не против. Но по-умолчанию в движке ссылке будут открываться в том же окне (кроме случая с личными сообщениями). Это предсказуемое поведение ссылок и нарушать его без явной необходимости нельзя.
Колян 12 апреля 2015 в 23:23 0
Дак и решаем, победим со временем всё, главное чтоб интерес к теме не пропал и скидывали варианты как там сям внешние ссылки поправить на открывание в новом окне smile Вон Вы хоть и привели статью чтоб мы понимали что к чему

Последний случай — единственный, по мнению автора, легитимный способ использования новых окон. Но предупреждение о том, что ссылка будет открыта в новом окне, обязательно. Потому что насильственная выдача информации без запроса со стороны пользователя называется спам.


А тут в комментариях по Вашей ссылке внешней, левый сайт открылся в новом окне и удобно ведь scratch

В общем мы жуткие спамщики получаемся...

А вот по совету из статьи насчёт всплывающего окна при нажатии внешней ссылки, можноб было соорудить дополнение/компонент платный, чтоб окошко спрашивало как перейти открыв новую вкладку или в текущем окне и выдавало сообщение мол вы пытаетесь перейти к нехорошему сайту, и вести базу ссылок этих сайтов или ещё круче, как в вк сделано, если внешний сайт внесён в базу плохих сайтов, то и копирование и вставка этой ссылки в строку браузера не даёт перейти к сайту, только ручками набирать smile
ph3no 13 апреля 2015 в 09:28 0
>>В качестве дополнительного материала можно почитать, например, вот это.
>>А тут в комментариях по Вашей ссылке внешней, левый сайт открылся в новом окне и удобно ведь.

R2, у вас в комментарии выше ссылка не прямая,а через редирект, открывается ссылка в новом окне. Ну о чем разговор.
ph3no 13 апреля 2015 в 09:31 0
А я, новый пользователь instantcms2 сейчас должен перерывать сходу файлы чтоб повторить то же самое. при всем моем уважении, вы делаете большую ошибку.
Колян 13 апреля 2015 в 00:22 0
Или ещё круче, создаёте брендовый компонент, с общей базой плохих сайтов, а у тех Двоишников у которых стоит этот компонент, где нибудь в футере, Лого крутое, мол данный сайт заботится о чистоте информационного пространства, типа даже деткам безопасно тут находиться.
Колян 19 апреля 2015 в 02:25 0
Вот придумал, всплывает окно в нём сообщение Администрация не знакома с содержанием данного сайта и две кнопки Открыть в новом окне или в текущем. А если в базе компонента есть инфа по главному урлу, тогда комментарий соответствующий всплывает, заранее подготовленный и также две кнопки открыть в новом окне или в текущем.