Не нравятся результаты поиска? Попробуйте другой поиск!

Разделить две строчки JS


     19.07.2014    Общие вопросы по вёрстке    1128

вопрос
Здравия желаю всем!
В файле /engine/classes/js/bbcodes.js есть две функции:

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)}


Это функции bbcode кнопок "Вставить список" и "Вставить нумерованный список" и они сплетены между собой.
Как их разделить, чтобы они небыли связанны между собой?

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


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

FastFud
50

1599 | 588

FastFud - 19 июля 2014 10:14 - Юзер

Так ?
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)
}

Sotnik
47 | 1

Sotnik - 19 июля 2014 11:26 - Юзер

Не. Дело в том, что эти две кнопки используют один и тот же шаблон ajax окна (у меня это DLEprompt9), из-за этого когда меняю что-то в шаблоне DLEprompt9, например заголовок, то у них у обоих один и тот же заголовок. Мне надо чтобы к примеру function tag_list использовал шаблон DLEprompt9, а function insert_list шаблон DLEprompt10.
п.с. Шаблоны уже прописаны в dle_js.js ... ;)

FastFud
50

1599 | 588

FastFud - 19 июля 2014 11:47 - Юзер

попробуйте так:
function tag_list(a) {
  DLEprompt9(a, dle_prompt, function (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)
    }, !0);
}

function insert_list(a) {
    DLEprompt10(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)
}

Sotnik
47 | 1

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

Не пошло. Кнопки перестали работать..

Sotnik
47 | 1

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

Друг, я решил эту загвоздку, но с небольшим косяком. Короче, когда вставляешь список например, создаю первый список с текстом 1 и 2 (сам текст не имеет смысла какой):
[ol=1]
[*]1
[*]2
[/ol]

Вот, первый раз всё правильно. Но если создаю сразу повторно другой список с текстом 4 и 5, то получаю дублирование первого списка с запихом его во второй:
[ol=1]
[*]1
[*]2
[*]3
[*]4
[/ol]

и так дальше по нарастающей:
[ol=1]
[*]1
[*]2
[*]3
[*]4
[*]5
[*]6
[/ol]


Вот собственно, как я изнасиловал js код:
function tag_list(a){
list_open_tag="list"==!a?"":"[list]\n";
list_close_tag="list"==!a?"":"[/list]";
(a=get_sel(eval("fombj."+selField)))||(a="");
DLEprompt9(text_enter_list,a,dle_prompt,function(a){""!=a?(listitems+="[*]"+a+"\n",tag_list("")):listitems&&(doInsert(list_open_tag+listitems+list_close_tag,"",!1),ie_range_cache=null)},!0)}

function insert_list(a){
list_open_tag="ol"==!a?"":"[ol=1]\n";
list_close_tag="ol"==!a?"":"[/ol]";
(a=get_sel(eval("fombj."+selField)))||(a="");
DLEprompt10(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)}


ФастФудушка, помоги поправить косяк, а то я ж всё это делал методом тыка..))

Sotnik
47 | 1

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

Целый день убил, толком ничего не получалось..

FastFud
50

1599 | 588

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

Пиши в skype: maximus5999 так как это дело надо затестить ))

Sotnik
47 | 1

Sotnik - 22 июля 2014 18:41 - Юзер

Сделал, поизвращаться пришлось не мало, но теперь без косяков работает =)
Код:
function tag_list(a){
list_open_tag=a=="list"?"[list]\n":"[ol=1";
list_close_tag=a=="list"?"[/list]\n":"[/ol\n";
listitems="";
(a=get_sel(eval("fombj."+selField)))||(a="");
list(a)}
function list(a){DLEprompt9(text_enter_list,a,dle_prompt,function(a){a!=""?(listitems+="[*]"+a+"\n",list("")):listitems&&(doInsert(list_open_tag+listitems+list_close_tag,"",!1),ie_range_cache=null)},!0)}

function insert_list(a){
list_open_tag=a=="ol"?"[ol=1]\n":"[list]\n";
list_close_tag=a=="ol"?"[/ol]\n":"[/list]\n";
listitems="";
(a=get_sel(eval("fombj."+selField)))||(a="");
ins_list(a)}
function ins_list(a){DLEprompt10(text_enter_list,a,dle_prompt,function(a){a!=""?(listitems+="[*]"+a+"\n",ins_list("")):listitems&&(doInsert(list_open_tag+listitems+list_close_tag,"",!1),ie_range_cache=null)},!0)}

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

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