Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Gokus

Протокол ссылки

Рекомендованные сообщения

Как добавить еще один протокол ссылки?например file://

По дефолту ipb просто заменяет его на null

версия 3.4.5

Поделиться сообщением


Ссылка на сообщение

\admin\sources\base\core.php

 

^(http|https|news|ftp)://

 

^(http|https|news|ftp|file)://

Поделиться сообщением


Ссылка на сообщение

К сожелению не помогло(

Поделиться сообщением


Ссылка на сообщение

Проверил на 3.4.2 - работает.

Правда, браузер все равно не открывает эти адреса из гиперссылки..

Поделиться сообщением


Ссылка на сообщение

Это смотря какой браузер и как настроен. Опера или ФФ некоторые нестандартные протоколы открывают из коробки, "magnet://", например. И откроют (сохранят) вообще что угодно, если сопоставить протоколу или mime-типу приложение (действие) соответствующее. Парсинг ed2k:// я таким образом делал.

 

Gokus:

В файле \admin\sources\base\core.php в двух местах такие регулярки. И при вставке такой ссылки нужно выбирать протокол "other" в редакторе. Чтобы они автоматически парсились нужно реплейсы ещё в паре файлов поправить.

\admin\sources\classes\bbcode\core.php и \admin\sources\classes\bbcode\custom\defaults.php в 3.2.х-3.3.х, если правильно помню. В новых версиях еще возможно \admin\sources\classes\text\parser.php и \admin\sources\classes\text\parser\bbcode.php, не проверял.

Поделиться сообщением


Ссылка на сообщение

В файле \admin\sources\base\core.php в двух местах такие регулярки.

На самом деле там куда сложнее. Все тянется с classPost.php (formatPost) к composite.php (process), далее к \ips_kernel\HTMLPurifier\HTMLPurifier.php (purify) и доходит до http://htmlpurifier.org/live/configdoc/plain.html#URI.AllowedSchemes

 

Вобщем после двух часов дебагинга, выяснялось что нужно добавить схему для библиотеки HTMLPurifier.

 

1. Открыть \admin\sources\classes\editor\composite.php

 

Найти

		$config->set( 'CSS.Trusted'       , false );

Ниже добавить

		$config->set( 'URI.AllowedSchemes', array_merge( $config->def->defaults['URI.AllowedSchemes'], array( 'file' => true ) ) );

2. В методе _denyLinkify этого же файла найти и заменить http| на http|file| (встречается 2 раза)

3. Сделать правку в core.php

 

И то, это только для поддержке в ббкоде. Без ббкода ссылка просто будет удалятся. Кому нужно, может копать дальше - истина где-то рядом в composite.php :)

  • Upvote 3

Поделиться сообщением


Ссылка на сообщение

В новых версиях, видимо сложнее, безопасность их шибко озаботила... На 3.2.3 мне для этого достаточно было правки реплейсов.

Поделиться сообщением


Ссылка на сообщение

Всем спасибо за ответы,буду пробывать)

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...