Перейти к контенту
  • 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;

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

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

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

Гость
Ответить на вопрос...

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

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

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

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

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

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

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

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