Jump to content

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


Gokus
 Share

Recommended Posts

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

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

версия 3.4.5

Link to comment
Share on other sites

Это смотря какой браузер и как настроен. Опера или ФФ некоторые нестандартные протоколы открывают из коробки, "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, не проверял.

Link to comment
Share on other sites

В файле \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
Link to comment
Share on other sites

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

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...