Панель BBCode тест

Тема закрыта
4.13K
.
# venom (26.02.2014 / 00:05)
Щас не до этой загрузке , работаю на данный момент с самой явой по части фокуса, как написал Рамзес , да и сам я убедился на эмуляторе что теги кидает в конец строки..
покажи код внедрения тегов в саму строку?
.
# ramzes (26.02.2014 / 00:07)
отдельная таблица под файлы, выгреб по ид из текста постов (парсинг постов до принта, сбор нужных ид, подцепка соответствующих паренту записей к массивам постов, цикл на принт постов с выводом файло
.
(\/)____o_O____(\/)
# ramzes (26.02.2014 / 00:07)
отдельная таблица под файлы, выгреб по ид из текста постов (парсинг постов до принта, сбор нужных ид, подцепка соответствующих паренту записей к массивам постов, цикл на принт постов с выводом файло
зачем таблица, я кинул уже код, по задумке все в папке, картинки в теги имг, файлы в теги файл
.

Koenig, вот увидишь, ты сам захочешь иметь таблицу с ключами файл <=> пост\тема\автор

.
venom
Люди берегите воду - пейте пиво...
# ramzes (26.02.2014 / 00:16)
вот увидишь, ты сам захочешь иметь таблицу с ключами файл <=> пост\тема\автор
Об этом я думал и это самое верное решение , дабы все скопом не было в одной папке ..
.
Люди берегите воду - пейте пиво...
# ramzes (26.02.2014 / 00:08)
покажи код внедрения тегов в саму строку?
ADD (+/-)
add: function (str, str_cl) {
        editor_bb.dump = {};
        str = str || '';
        str_cl = str_cl || '';
        var obj = $$(editor_bb.editor_id);
        if ($$().selection) {
            obj.focus();
            var s = $$().selection.createRange();
            if (str == '') {
                return {start_d: '', end_d: '', s_d: s};
            }
            if (s.text) {
                if (str_cl !== '') {
                    var x = s.text;
                    x = x.replace(/\n/gm, "\n[*]");
                    s.text = str + x + str_cl;
                }
                else {
                    s.text = '[' + str + ']' + s.text + '[/' + str + ']';
                }
            }
            else {
                if (str_cl != '') {
                    obj.value = obj.value + str + str_cl;
                }
                else {
                    obj.value = obj.value + '[' + str + ']' + '[/' + str + ']';
                }
            }
        }
        else if (typeof(obj.selectionStart) === "number") {
            obj.focus();
            if (obj.selectionStart !== obj.selectionEnd) {
                var start = obj.selectionStart;
                var end = obj.selectionEnd;
                s = obj.value.substr(start, end - start);
                if (str == '') {
                    return {start_d: start, end_d: end, s_d: s};
                }
                if (str_cl !== '') {
                    var x = s;
                    x = x.replace(/\n/gm, "\n[*]");
                    obj.value = obj.value.substr(0, start) + str + x + str_cl + obj.value.substr(end);
                }
                else {
                    obj.value = obj.value.substr(0, start) + '[' + str + ']' + s + '[/' + str + ']' + obj.value.substr(end);
                }
            }
            else {
                if (str === '') {
                    return {start_d: '', end_d: '', s_d: ''};
                }
                if (str_cl !== '') {
                    obj.value = obj.value + str + str_cl;
                }
                else {
                    obj.value = obj.value + '[' + str + ']' + '[/' + str + ']';
                }
            }
        }
    }
.
ramzes

venom, без шторма конечно трудновато отследить нужный момент
но походу косяк есть вот тут

if (obj.selectionStart !== obj.selectionEnd) {
                var start = obj.selectionStart;

сама логика не верна, если ни чего не выделено, то селекшнстарт не отправляется в старт (может где не углядел)
ошибка в том, что если у тебя курсор не в начале текста, то селекшнстарт не нулевой, просто без выделения он равняется селекшнэнд, что как раз и не вписывается в условие obj.selectionStart !== obj.selectionEnd
но, тогда я не понимаю как это вообще работает с компа) видимо все таки где то упустил
посмотрю еще
хотя...
в }else{ вот есть как раз
obj.value = obj.value + str + str_cl;

что даст нужный эффект, вставит в конец строки
очень сложно с непривычки отследить уровни вложенности условий без скобок IDE (((
.
Люди берегите воду - пейте пиво...

Одна голова хорошо - две лучше , я сам еще не вникал сюда , потому что на Хроме и так работала, если бы ты не написал что на андрюше не пашет, я и сейчас бы не знал....

.
(\/)____o_O____(\/)

venom, вот сейчас с компа выделенный текст обварачивает

.

проверил с компа, да, все верно, та же проблема, если текст не выделен то вставляет не по коретке, а тупо в конец текста

Всего: 128