Есть некий хак, позволяющий вставлять в редакторе magnet и dchub ссылки.
Вот его установка:
Файл: */function/sources.php
найти:
ниже добавить:
найти:
ниже добавить:
Файл: */language/lang-russian.php
# Magnet & DCHub Start
define("_MINFO","Введите магнет-ссылку");
define("_MTYPE","Введите описание");
define("_MERROR","Вы не указали магнет-ссылку!");
define("_EMAGNET","Вставить магнет-ссылку");
define("_HINFO","Введите адрес хаба");
define("_HTYPE","Введите описание");
define("_HERROR","Вы не указали адрес хаба!");
define("_EDCHUB","Вставить адрес хаба");
# Magnet & DCHub End
Файл: */ajax/insert_code.js
найти:
заменить на:
найти:
заменить на:
Впринцепи все ясно! Почти все то же, что и для обычного url.
Но у меня возникла проблема:
Сделал все как написано, dchub работает как часы, а вот с magnet проблема. Рассказываю. После всех изменений вообще перестал отображаться текст новостей и текст комментарий к ним. т.е вижу только название новости и все. причину я нашел:
$bb[] = "#\[magnet\](\S+?)\[/magnet\]#is";
$html[] = "<a href=\"\\1\">\\1</a>";
$bb[] = "#\[magnet=([\w]+?:[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[\/magnet\]#is";
$html[] = "<a href=\"\\1\" title=\"\\1\">\\2</a>";
$bb[] = "#\[magnet=([\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/magnet\]#is";
$html[] = "<a href=\"\\1\" title=\"\\1\">\\3</a>";
// $bb[] = "#\[magnet\]([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/magnet\]#is";
$html[] = "<a href=\"\\1\" title=\"\\1\">\\1</a>";
Стоит закоментировать выделенную строку, как все отображается.
Что в ней не так? Нужна ли она?
Вот его установка:
Файл: */function/sources.php
найти:
# Decode BB function bb_decode($sourse, $mod) {
ниже добавить:
# Magnet & DCHub Start $bb[] = "#\[magnet\](\S+?)\[/magnet\]#is"; $html[] = "<a href=\"\\1\">\\1</a>"; $bb[] = "#\[magnet=([\w]+?:[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[\/magnet\]#is"; $html[] = "<a href=\"\\1\" title=\"\\1\">\\2</a>"; $bb[] = "#\[magnet=([\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/magnet\]#is"; $html[] = "<a href=\"\\1\" title=\"\\1\">\\3</a>"; $bb[] = "#\[magnet\]([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/magnet\]#is"; $html[] = "<a href=\"\\1\" title=\"\\1\">\\1</a>"; $bb[] = "#\[dchub\]([\w]+?://([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!dchub=))*?)\[/dchub\]#is"; $html[] = "<a href=\"\\1\" title=\"\\1\">\\1</a>"; $bb[] = "#\[dchub\]((dchub)\.([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/dchub\]#is"; $html[] = "<a href=\"dchub://\\1\" title=\"\\1\">\\1</a>"; $bb[] = "#\[dchub=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/dchub\]#is"; $html[] = "<a href=\"\\1\" title=\"\\1\">\\2</a>"; $bb[] = "#\[dchub=((dchub)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is"; $html[] = "<a href=\"dchub://\\1\" title=\"\\1\">\\3</a>"; # Magnet & DCHub End
найти:
<img src=\"".img_find("editor/img")."\" title=\""._EIMG."\"></div>" ."</div>"
ниже добавить:
."<div class=\"editor\">" ."<div class=\"editorbutton\" OnMouseOver=\"this.className='editorbuttonover';\" OnMouseOut=\"this.className='editorbutton';\" OnClick=\"InsertCode('magnet', '"._MINFO."', '"._MTYPE."', '"._MERROR."', '".$id."')\"><img src=\"".img_find("editor/magnet")."\" title=\""._EMAGNET."\"></div>" ."<div class=\"editorbutton\" OnMouseOver=\"this.className='editorbuttonover';\" OnMouseOut=\"this.className='editorbutton';\" OnClick=\"InsertCode('dchub', '"._HINFO."', '"._HTYPE."', '"._HERROR."', '".$id."')\"><img src=\"".img_find("editor/dchub")."\" title=\""._EDCHUB."\"></div>" ."</div>" ."</div>"
Файл: */language/lang-russian.php
# Magnet & DCHub Start
define("_MINFO","Введите магнет-ссылку");
define("_MTYPE","Введите описание");
define("_MERROR","Вы не указали магнет-ссылку!");
define("_EMAGNET","Вставить магнет-ссылку");
define("_HINFO","Введите адрес хаба");
define("_HTYPE","Введите описание");
define("_HERROR","Вы не указали адрес хаба!");
define("_EDCHUB","Вставить адрес хаба");
# Magnet & DCHub End
Файл: */ajax/insert_code.js
найти:
function InsertCode(code, info, type, error, area) { if ((ClientVer >= 4) && IsIE && IsWin) { if (code == 'name') { AddIE('' + info + '', ', '); } else if (code == 'url' || code == 'mail') { if (code == 'url') var url = prompt(info, 'http://'); if (code == 'mail') var url = prompt(info, '');
заменить на:
function InsertCode(code, info, type, error, area) { if ((ClientVer >= 4) && IsIE && IsWin) { if (code == 'name') { AddIE('' + info + '', ', '); } else if (code == 'url' || code == 'mail' || code == 'magnet' || code == 'dchub') { if (code == 'url') var url = prompt(info, 'http://'); if (code == 'mail') var url = prompt(info, ''); if (code == 'magnet') var url = prompt(info, 'Магнет-ссылка'); if (code == 'dchub') var url = prompt(info, 'dchub://');
найти:
} else { var txtarea = document.getElementById(area); if (code == 'name') { AddMoz(txtarea, '' + info + '', ', '); } else if (code == 'url' || code == 'mail') { if (code == 'url') var url = prompt(info, 'http://'); if (code == 'mail') var url = prompt(info, '');
заменить на:
} else { var txtarea = document.getElementById(area); if (code == 'name') { AddMoz(txtarea, '' + info + '', ', '); } else if (code == 'url' || code == 'mail' || code == 'magnet' || code == 'dchub') { if (code == 'url') var url = prompt(info, 'http://'); if (code == 'mail') var url = prompt(info, ''); if (code == 'magnet') var url = prompt(info, 'Магнет-ссылка'); if (code == 'dchub') var url = prompt(info, 'dchub://');
Впринцепи все ясно! Почти все то же, что и для обычного url.
Но у меня возникла проблема:
Сделал все как написано, dchub работает как часы, а вот с magnet проблема. Рассказываю. После всех изменений вообще перестал отображаться текст новостей и текст комментарий к ним. т.е вижу только название новости и все. причину я нашел:
$bb[] = "#\[magnet\](\S+?)\[/magnet\]#is";
$html[] = "<a href=\"\\1\">\\1</a>";
$bb[] = "#\[magnet=([\w]+?:[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[\/magnet\]#is";
$html[] = "<a href=\"\\1\" title=\"\\1\">\\2</a>";
$bb[] = "#\[magnet=([\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/magnet\]#is";
$html[] = "<a href=\"\\1\" title=\"\\1\">\\3</a>";
// $bb[] = "#\[magnet\]([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/magnet\]#is";
$html[] = "<a href=\"\\1\" title=\"\\1\">\\1</a>";
Стоит закоментировать выделенную строку, как все отображается.
Что в ней не так? Нужна ли она?