Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы Не работает в комментах некоторые bb теги

Не работает в комментах некоторые bb теги


     22.07.2014    Общие вопросы    1502

вопрос
Я всё мучаюсь с BB тегами Простого списка [list] и Нумерованного списка [ol], решу одну загвоздку, тут другая. Короче, у меня они не работают в сообщениях (в добавление новостей работает). Вот что выдаёт:
Не работает в комментах некоторые bb теги

Ответа пока нет


Комментарии пользователей (8)

FastFud
50

1599 | 588

FastFud - 22 июля 2014 20:29 - Юзер

Ну я так думаю, за этим стоит ваш код )) который вы изна******** ))
Этот код одно единое:
function tag_list(a) {
    list_open_tag = "ol" == a ? "[ol=1]\n" : "[list]\n";
    list_close_tag = "ol" == a ? "[/ol]" : "[/list]";
    listitems = "";
    (a = get_sel(eval("fombj." + selField))) || (a = "");
    insert_list(a)
}

function insert_list(a) {
    DLEprompt(text_enter_list, a, dle_prompt, function (a) {
        "" != a ? (listitems += "[*]" + a + "\n", insert_list("")) : listitems && (doInsert(list_open_tag + listitems + list_close_tag, "", !1), ie_range_cache = null)
    }, !0)
}
А вы из него даже не знаю что сделали вот по этому и не работает.

P.S - Попробуйте так (сам не пробовал):
function tag_list(a) {
    list_open_tag = "ol" == a ? "[ol=1]\n" : "[list]\n";
    list_close_tag = "ol" == a ? "[/ol]" : "[/list]";
    listitems = "";
    (a = get_sel(eval("fombj." + selField))) || (a = "");
    insert_list(a)
}

function insert_list(a) {
    DLEprompt9(text_enter_list, a, dle_prompt, function (a) {
        "" != a ? (listitems += "[*]" + a + "\n", insert_list("")) : listitems && (doInsert(list_open_tag + listitems + list_close_tag, "", !1), ie_range_cache = null)
    }, !0)
}

function tag_list2(a) {
    list_open_tag2 = "list" == a ? "[list]\n" : "[ol=1]\n";
    list_close_tag2 = "list" == a ? "[/list]" : "[/ol]";
    listitems2 = "";
    (a = get_sel(eval("fombj." + selField))) || (a = "");
    insert_list2(a)
}

function insert_list2(a) {
    DLEprompt10(text_enter_list2, a, dle_prompt, function (a) {
        "" != a ? (listitems2 += "[*]" + a + "\n", insert_list2("")) : listitems2 && (doInsert(list_open_tag2 + listitems2 + list_close_tag2, "", !1), ie_range_cache = null)
    }, !0)
}

Sotnik
47 | 1

Sotnik - 22 июля 2014 20:52 - Юзер

Не. Тоже самое и с Вашим кодом и с изначальным. Мой изнасилованный код доведён до кондиции, и работает отлично. :D
Тут не думаю, что дело в нём. Я подозреваю что давным давно я где-то сделал обрезание. Хотелось бы знать, какая функция отвечает за преобразование этих тегов в список, и где она лежит?

п.с. мой же ж новый рабочий доведённый до ума код выглядит так

Sotnik
47 | 1

Sotnik - 23 июля 2014 10:26 - Юзер

Вот в полной новости всё работает, а в комментах не пашет.
parse.class.php никогда не трогал...

Sotnik
47 | 1

Sotnik - 24 июля 2014 22:10 - Юзер

Что же это за хворь может быть?.. Хм...

Sotnik
47 | 1

Sotnik - 29 июля 2014 12:46 - Юзер

Помогите, кто-нибудь! =(

Sotnik
47 | 1

Sotnik - 29 июля 2014 17:02 - Юзер

Тут кстати тоже не работает ))

[list]
[*]спароапр
[*]варва
[*]рвар
[/list]
[ol=1]
[*]ывапывп
[*]пывапывп
[*]пывап
[/ol]

Sotnik
47 | 1

Sotnik - 30 июля 2014 20:30 - Юзер

Я так понял что по умолчанию, список отключен в сообщениях. Как "включить"?

Sotnik
47 | 1

Sotnik - 31 июля 2014 19:01 - Юзер

Короче, отвечаю сам себе.
В parse.class.php найти строчки

$source = preg_replace_callback( "#\[ol=([^\]]+)\]\[\*\]#is", array( &$this, 'build_list'), $source );
$source = preg_replace_callback( "#\[ol=([^\]]+)\](.+?)\[\*\]#is", array( &$this, 'build_list'), $source );
$source = str_ireplace("[list][*]", "<!--dle_list--><ul><li>", $source);
$source = preg_replace( "#\[list\](.+?)\[\*\]#is", "<!--dle_list--><ul><li>", $source );
$source = str_replace("[*]", "</li><!--dle_li--><li>", $source);
$source = str_ireplace("[/list]", "</li></ul><!--dle_list_end-->", $source);
$source = str_ireplace("[/ol]", "</li></ol><!--dle_list_end-->", $source);

Вырезать их.
Там же найти строчку

if( ! $this->safe_mode ) {

И вставить вырезанное выше этой строчки.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы