Перейти к контенту
  • 0

magnet


AIexpert

Вопрос

вопрос такой:

как сделать элемент чтобы можно было добавить ссылку типа - magnet:?xt=urn:tree:tiger:WYAC4APQHWIZ66JAF.....JA&xl=131812312&dn=10-oW+(%D1%81%%B1%D1%82%D0%B8%D1%82%D1%80%D1%8B).avi

 

стандартный элемент автоматом приписывает "http://", даже если его удаляешь в форме

Ссылка на комментарий
Поделиться на других сайтах

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

  • 0

Попробую более полно раскрыть проблему.

 

При вставлении подобной ссылки в сообщение через тэг , перед самой ссылкой автоматически прописывается условие "http://", от которого невозможно избавиться. При правке сообщения и удалении "http://" оно снова вставляется автоматически при сохранении.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Попробую более полно раскрыть проблему.

 

При вставлении подобной ссылки в сообщение через тэг , перед самой ссылкой автоматически прописывается условие "http://", от которого невозможно избавиться. При правке сообщения и удалении "http://" оно снова вставляется автоматически при сохранении.

 

нашел подобие ответа

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Там все подробно описано, но под версию 1.2.х. Нам же необходима поправка под версию 2.2.х

 

Большая просьба к знающим людям: подправьте пожалуйста вот это под нужную версию. Первая проблема, с которой пришлось столкнуться - 3. Добавить файл ed2k.gif с рисунком кнопки в папку /folder_rte_images/ в папке изображений каждого установленного скина. Такой папки просто не существует в нашей версии.

 

Итак, попробую собрать всё вместе:

 

1. В файл ipb_editor_std.js найти функцию function tag_url(), после неё добавить:

 

function tag_ed2k()
{
var FoundErrors = '';

//----------------------------------------
// Do we have ranged text?
//----------------------------------------

if ( check_range() )
{
	//----------------------------------------
	// Yes, just ask for the URL and wrap
	//----------------------------------------

	var entered2k = prompt(text_enter_url, "ed2k://");

	if ( ! entered2k)
	{
		alert(error_no_url);
		return;
	}

	wrap_tags( "[ed2k="+entered2k+"]", "[/ed2k]", "" );
}
else
{
	var entered2k	= prompt(text_enter_url, "ed2k://");
	var enterTITLE  = prompt(text_enter_url_name, jsfile_myweb_lang );

	if ( ! entered2k)
	{
		FoundErrors += " " + error_no_url;
	}
	if ( ! enterTITLE)
	{
		FoundErrors += " " + error_no_title;
	}

	if ( FoundErrors )
	{
		alert( jsfile_error_lang +FoundErrors);
		return;
	}

	wrap_tags("[ed2k="+entered2k+"]"+enterTITLE+"[/ed2k]", "");
}
}

 

2. В шаблоне skin_editors->editor_std найти

 

<td><div><img class="rteimage" src="{ipb.vars['img_url']}/folder_rte_images/hyperlink.gif" width="25" height="24" alt="{ipb.lang['js_tt_link']}" title="{ipb.lang['js_tt_link']}" onclick="tag_url()"></div></td>

и добавить после:

 

<td><div><img class="rteimage" src="{ipb.vars['img_url']}/folder_rte_images/ed2k.gif" width="25" height="24" alt="{ipb.lang['js_tt_ed2k']}" title="{ipb.lang['js_tt_ed2k']}" onclick="tag_ed2k()"></div></td>

 

3. Добавить файл ed2k.gif с рисунком кнопки в папку /folder_rte_images/ в папке изображений каждого установленного скина.

 

4. В файле lang_editors.php найти:

 

'js_tt_link'		  => "Вставить ссылку",

и добавить после:

 

'js_tt_ed2k'		  => "Вставить ed2k ссылку",

P.Sы. Если что забыл - дополню.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

во вы хренью то страдаете... нафига стока мучений?

 

ACP -> MANAGEMENT -> Custom BBcode -> add new BBcode

 

1) Ссылки вида dchub://тут_адрес.вашего.хаба

 

Custom BBCode Title - DC Hub Links

Custom BBCode Example - [dchub=links]Description[/dchub]

Custom BBCode Tag - dchub

Custom BBCode Replacement - <a href='dchub://{option}'>{content}</a>

Insert into the editor's 'Insert Special' menu? - Yes

Enter 'option' dialogue text - Введите адрес хаба (без dchub://)

Enter 'content' dialogue text - Введите название хаба

 

1) Ссылки вида magnet:?xt=urn:tree:tiger:********************&xl=1720168&dn=EditPlus.v2.30.zip

 

Custom BBCode Title - Magnet-Links

Custom BBCode Example - [magnet=links]Description[/magnet]

Custom BBCode Tag - magnet

Custom BBCode Replacement - <a href='{option}'>{content}</a>

Insert into the editor's 'Insert Special' menu? - Yes

Enter 'option' dialogue text - Введите magnet ссылку

Enter 'content' dialogue text - Введите название файла

 

и всего делов то, а вы сразу код портить... ;-)

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Все это конечно просто и быстро, но.. Есть одна небольшая погрешность на чайниковость и неопытность юзверей, которые не станут копаться в меню дополнительных BB кодов пока их туда не ткнешь носом. Тот вариант очень понравился тем, что при создании сообщения можно просто нажать на кнопку и вставить нужную ссылку.

 

Спасибо за ответ. Пока пользуемся данным способом.

 

Но все же хотелось попортить код :D

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Файл ./sources/class/bbcode/class_bbcode_core.php, найти код:

if ( ! preg_match("#^(http|news|https|ftp|aim)://#", $url['html'] ) )

Заменить на:

if ( ! preg_match("#^(http|news|https|ftp|aim)://#", $url['html'] ) && !preg_match("/^magnet\:\?xt=/", $url['html'] ))

Найти код:

if ( ! preg_match( "/^(http|ftp|https|news):\/\//i", $url['show'] )) $skip_it = 1;

Заменить на:

if ( ! preg_match( "/^(http|ftp|https|news):\/\//i", $url['show'] ) && !preg_match("/^magnet\:\?xt=/", $url['html']) ) $skip_it = 1;

Сохранить.

 

А так работает? :D

 

Я, к сожалению, не знаком со структурой magnet-ссылок и не знаю, какие в них параметры являются постоянными, какие параметры не изменяемы и т.п. — поэтому могу представить только такое регулярное выражение.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Я, к сожалению, не знаком со структурой magnet-ссылок и не знаю, какие в них параметры являются постоянными, какие параметры не изменяемы и т.п. — поэтому могу представить только такое регулярное выражение.

 

1) Ссылки вида magnet:?xt=urn:tree:tiger:********************&xl=1720168&dn=EditPlus.v2.30.zip

 

******************** - хеш файла вида: BLABLABLA1234567890BLABLABLA

 

 

а еще переделка моего же мода для 2.1.x, висит на изе: http://mods.invisionize.com/db/index.php/f/7254

 

Просто сразу кидать ссылку на него не стал, ибо вариант с BBCode вполне приемлимый

Ссылка на комментарий
Поделиться на других сайтах

  • 0
во вы хренью то страдаете... нафига стока мучений?

 

ACP -> MANAGEMENT -> Custom BBcode -> add new BBcode

 

1) Ссылки вида dchub://тут_адрес.вашего.хаба

 

Custom BBCode Title - DC Hub Links

Custom BBCode Example - [dchub=links]Description[/dchub]

Custom BBCode Tag - dchub

Custom BBCode Replacement - <a href='dchub://{option}'>{content}</a>

Insert into the editor's 'Insert Special' menu? - Yes

Enter 'option' dialogue text - Введите адрес хаба (без dchub://)

Enter 'content' dialogue text - Введите название хаба

 

1) Ссылки вида magnet:?xt=urn:tree:tiger:********************&xl=1720168&dn=EditPlus.v2.30.zip

 

Custom BBCode Title - Magnet-Links

Custom BBCode Example - [magnet=links]Description[/magnet]

Custom BBCode Tag - magnet

Custom BBCode Replacement - <a href='{option}'>{content}</a>

Insert into the editor's 'Insert Special' menu? - Yes

Enter 'option' dialogue text - Введите magnet ссылку

Enter 'content' dialogue text - Введите название файла

 

и всего делов то, а вы сразу код портить... ;-)

 

 

 

Ни одно из двух примеров не работает!

Ссылка на комментарий
Поделиться на других сайтах

  • 0
во вы хренью то страдаете... нафига стока мучений?

 

ACP -> MANAGEMENT -> Custom BBcode -> add new BBcode

 

1) Ссылки вида dchub://тут_адрес.вашего.хаба

 

Custom BBCode Title - DC Hub Links

Custom BBCode Example - [dchub=links]Description[/dchub]

Custom BBCode Tag - dchub

Custom BBCode Replacement - <a href='dchub://{option}'>{content}</a>

Insert into the editor's 'Insert Special' menu? - Yes

Enter 'option' dialogue text - Введите адрес хаба (без dchub://)

Enter 'content' dialogue text - Введите название хаба

 

1) Ссылки вида magnet:?xt=urn:tree:tiger:********************&xl=1720168&dn=EditPlus.v2.30.zip

 

Custom BBCode Title - Magnet-Links

Custom BBCode Example - [magnet=links]Description[/magnet]

Custom BBCode Tag - magnet

Custom BBCode Replacement - <a href='{option}'>{content}</a>

Insert into the editor's 'Insert Special' menu? - Yes

Enter 'option' dialogue text - Введите magnet ссылку

Enter 'content' dialogue text - Введите название файла

 

и всего делов то, а вы сразу код портить... ;-)

Действительно не работает!

нужно что бы магнет открывался через DC клиент, а не как ссылка на страницу ххх

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Как подсказал sM1Le работает, но ссыка открывается в новом окне браузера и в DC клиенте одновременно. Можно ли сделать чтобы магнет открывался только в DC клиенте?
Ссылка на комментарий
Поделиться на других сайтах

  • 0

MicROs,

 

Файл ./sources/class/bbcode/class_bbcode_core.php, найти код (в функции «regex_build_url»):

return ( isset($url['st']) ? $url['st'] : '' ) . "<a href=\"".$url['html']."\" target=\"_blank\">".$show."</a>" . $url['end'];

Заменить на:

return ( isset($url['st']) ? $url['st'] : '' ) . "<a href=\"".$url['html']."\">".$show."</a>" . $url['end'];

Хочу заметить, за счет этого изменения все ссылки, опубликованные в сообщениях, будут открывать в текущем окне, а не в новом.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Еще раз огромное спасибо мастеру theIggs!

 

Кто еще не знает что анимешники - народ суровый? Так вот, они всегда и везде сумеют найти проблему! :D

 

Возникла следующая проблема: при имени файла с количеством символов больше 61 (вроде бы такое число фигурировало) ссылки получались в виде:

 

Code Geass Hangyaku no Lelouch R2 .. 01_of_25.avi (310.90 MБ)://Code Geass Hangyaku no Lelouch R2 ....avi (310.90 MБ)://Code Geass Hangyaku no Lelouch R2 ....avi (310.90 MБ)://Code Geass Hangyaku no Lelouch R2 ....avi (310.90 MБ)://Code Geass Hangyaku no Lelouch R2 ....avi (310.90 MБ)://Code Geass Hangyaku no Lelouch R2 ....avi (310.90 MБ)://Code Geass Hangyaku no Lelouch R2 ....avi (310.90 MБ)://Code Geass Hangyaku no Lelouch R2 ....avi (310.90 MБ)

 

т.е. три строки повторяющегося текста и редактирование не спасало, кроме уменьшения числа символов.

 

Итак, рад Вам сообщить что theIggs нашел лекарство и от этого, за что ему огромное спасибо от меня лично и от всех анимешников нашего царства ;)

 

Итак, берем за исходник модификацию от sM1Le:

Файл ./sources/class/bbcode/class_bbcode_core.php, найти код:

if ( ! preg_match("#^(http|news|https|ftp|aim)://#", $url['html'] ) )

Заменить на:

if ( ! preg_match("#^(http|news|https|ftp|aim)://#", $url['html'] ) && !preg_match("/^magnet\:\?xt=/", $url['html'] ))

Найти код:

if ( ! preg_match( "/^(http|ftp|https|news):\/\//i", $url['show'] )) $skip_it = 1;

Заменить на:

if ( ! preg_match( "/^(http|ftp|https|news):\/\//i", $url['show'] ) && !preg_match("/^magnet\:\?xt=/", $url['html']) ) $skip_it = 1;

Сохранить.

 

Но не торопитесь выполнять второе действие и сохранять! Поправка от theIggs:

 

В предложенном sM1Le варианте вместо:

if ( ! preg_match( "/^(http|ftp|https|news):\/\//i", $url['show'] ) && !preg_match("/^magnet\:\?xt=/", $url['html']) ) $skip_it = 1;

следует писать

if ( ! preg_match( "/^(http|ftp|https|news):\/\//i", $url['show'] ) && !preg_match("/^magnet\:\?xt=/", $url['show']) ) $skip_it = 1;

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.