Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Gokus

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

Recommended Posts

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

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

версия 3.4.5

Share this post


Link to post
Share on other sites

\admin\sources\base\core.php

 

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
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, не проверял.

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
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
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...