Понедельников НЕТ!
Регистрация или вход Регистрация или вход Избранное на этом сайте | Главная | Анкета | Рекомендовать | Обратная связь | В избранное | Сделать домашней
Скачать SSDForums
Скачать SSDForums 1.0.1 Скачать SSDForums 1.0.1
Скачать SSDForums 1.0.1 SP1 Скачать SSDForums 1.0.1 SP1
Скачать SSDForums 1.0.1 SP2 Скачать SSDForums 1.0.1 SP2
SSD Forums 1.0.1 SP3 only Slaed 3.5 Pro SSD Forums 1.0.1 SP3 only Slaed 3.5 Pro
SSD Forums 1.0.1 SP4-beta only Slaed 4.1 Pro SSD Forums 1.0.1 SP4-beta only Slaed 4.1 Pro
Jewelry Сase Team
Скачать Ruby Chat 0.1.1 Скачать Ruby Chat 0.1.1
Меню
Главная
Форум
Магазин цифровых товаров

Новости
Подписка на новости
Темы новостей
Добавить новость

Каталог файлов
Карта файлового архива
Публикации

Опросы
Анкета пользователя
Чат

BestMaker
Викторина
Архив новостей
Карманный оракул
Поиск по сайту с помощью Яндекс
Поиск по сайту с помощью Google
Фото дня
Для души
Погода на 3 дня
IndexCat
IndexTop
Map_Pages
Поиск по сайту









Интересное в сети
  • медицинское оборудование. Interacoustics AD 229e аудиометр для диагностики слуха.
  • Публикации
    BB-редактор
    Вставляем флэш с помощью bb-тегов. Часть 2 - Кнопка «Вставить флэш (swf)»


    Важное замечание: по сути работы ведутся на редакторе от версии Slaed 2.4 Lite. Как его установить читаем тут.

    Для создания новой кнопки работы необходимо проделывать в 3 этапа.
    1. Создание обработчика bb-тегов.
    2. Размещение кнопки на панели редактора.
    3. Создание обработчика нажатия кнопки (файл InsertCode.js)




    Этап 1.
    Мы уже сделали

    Этап 2.
    Немного теории.
    Работы проводятся в function get_code($id) в 2.1 это файл sources.php

    Горизонтальные ряды формируются внутри div'а
    Код
    1
    2
    3
    4
    5
    ."<div class=\"editor\">"

    «кнопки»

    ."</div>"


    Сама кнопка имеет структуру
    Код
    1
    ."<div class=\"editorbutton\" OnClick=\"InsertCode(переменные)\"><картинка></div>"

    Переменных пять штук.
    1 - имя тега (b, php, code и т.п.)
    2 - информация, выводимая при вставке, например URL _JINFO - Введите полный адрес
    3 - информация, выводимая при вставке, например URL _JTYPE - Введите описание
    4 - сообщение об ошибке, выводимая при вставке, например URL _JERROR - Вы не указали адрес!
    5 - id текущего textarea

    Переменные 2, 3 и 4 могут быть пропущены. Пример кода
    Код
    1
    2
    3
    ."<div class=\"editorbutton\" OnClick=\"InsertCode('quote', '', '', '', '".$id."')\"><img title=\""._EQUOTE."\" src=\"images/editor/quote.gif\"></div>"
    ."<div class=\"editorbutton\" OnClick=\"InsertCode('url', '"._JINFO."', '"._JTYPE."', '"._JERROR."', '".$id."')\"><img title=\""._EURL."\" src=\"images/editor/url.gif\"></div>"


    Итак вставляем куда нам надо код
    Код
    1
    ."<div class=\"editorbutton\" OnClick=\"InsertCode('swf', '', '', '', '".$id."')\"><img title=\"Вставить флэш (swf)\" src=\"images/editor/swf.gif\"></div>"
    и закидываем картинку кнопки images/editor/swf.gif
    Переменные 2, 3 и 4 пропущены, поскольку в данном случае их даже не хватает, т.е. для многоязычных сайтов нужно будет расширять список... А пока сформируем всё в самом скрипте.

    Этап 3.
    Правим function InsertCode(code, info, type, error, area) файла InsertCode.js
    Я ее выложу целиком в том виде, в котором она у меня сейчас на сайте. Необходимо отметить следующее, что обработчик тега построен так, что реагирует на введенные данные и выдает ошибку вставки с возможностью корректировки в textarea

    Для тех, кто хочет разобраться что нового - ориентир if (code == 'swf') - встречается два раза - для IE и для FF

    Итак функция. При смене не растеряйте скобки!
    Код
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    function InsertCode(code, info, type, error, area) {
       if ((ClientVer >= 4) && IsIE && IsWin) {
          if (code == 'swf') {
          selection = document.selection.createRange().text;
          if (!selection) {
             var url = prompt('Введите полный адрес банера', 'http://');
             var w = prompt('Введите ширину банера', '');
             var h = prompt('Введите высоту банера', '');
             if (!h || !url || !w) alert('Вы не ввели адрес, ширину или высоту банера - это ОБЯЗАТЕЛЬНЫЕ параметры! Исправьте их в строке!');
             if (!h) var h = 'ШИРИНА';
             if (!w) var w = 'ВЫСОТА';
             if (!url) var url = 'АДРЕС';
                AddIE('[swf w=' +w+ ' h=' +h+ ']' + url + '[/swf]', '\n');   
          } else {
             var w = prompt('Введите ширину банера', '');
             var h = prompt('Введите высоту банера', '');
             if (!h || !w) alert('Вы не ввели ширину или высоту банера - это ОБЯЗАТЕЛЬНЫЕ параметры! Исправьте их в строке!');
             if (!h) var h = 'ШИРИНА';
             if (!w) var w = 'ВЫСОТА';
                AddIE('[swf w=' +w+ ' h=' +h+ ']' + selection + '[/swf]', '\n');
          }
       } else if (code == 'name') {
             AddIE('[b]' + info + '[/b]', ', ');
          } else if (code == 'url' || code == 'mail') {
             if (code == 'url') var url = prompt(info, 'http://');
             if (code == 'mail') var url = prompt(info, '');
             if (!url) return alert(error);
             selection = document.selection.createRange().text;
             if (!selection) {
                var title = prompt(type, type);
                AddIE('[' + code + '=' + url + ']' + title + '[/' + code + ']', '\n');
             } else {
                AddIE('[' + code + '=' + url + ']', '[/' + code + ']');
             }
          } else if (code == 'color' || code == 'family' || code == 'size') {
             AddIE('[' + code + '=' + info + ']', '[/' + code + ']');
          } else if (code == 'li' || code == 'hr') {
             AddIE('[' + code + ']', '');
          } else if (code == 'attach') {
             AddIE('[' + code + '=' + info + ' align=center title=title]', '\n');
          } else {
             var selection = false;
             selection = document.selection.createRange().text;
             if (selection && code == 'quote') {
                AddIE('[' + code + ']' + selection + '[/' + code + ']', '\n');
             } else {
                if (code == 'img' && info) {
                   AddIE('[' + code + '=center alt=title]' + info +'[/' + code + ']', '\n');
                } else if (code == 'img') {
                   AddIE('[' + code + '=center alt=title]', '[/' + code + ']');
                } else {
                   AddIE('[' + code + ']', '[/' + code + ']');
                }
             }
          }
       } else {
          var txtarea = document.getElementById(area);
          if (code == 'swf') {
          if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart <= 0)) {
             var url = prompt('Введите полный адрес банера', 'http://');
             var w = prompt('Введите ширину банера', '');
             var h = prompt('Введите высоту банера', '');
             if (!h || !url || !w) alert('Вы не ввели адрес, ширину или высоту банера.\nЭто ОБЯЗАТЕЛЬНЫЕ параметры!\nИсправьте их в строке!');
             if (!h) var h = 'ШИРИНА';
             if (!w) var w = 'ВЫСОТА';
             if (!url) var url = 'АДРЕС';
                AddMoz(txtarea, '[swf w=' +w+ ' h=' +h+ ']' + url + '[/swf]', '\n');   
          } else {
             var w = prompt('Введите ширину банера', '');
             var h = prompt('Введите высоту банера', '');
             if (!h || !w) alert('Вы не ввели ширину или высоту банера.\nЭто ОБЯЗАТЕЛЬНЫЕ параметры!\nИсправьте их в строке!');
             if (!h) var h = 'ШИРИНА';
             if (!w) var w = 'ВЫСОТА';
                AddMoz(txtarea, '[swf w=' +w+ ' h=' +h+ ']','[/swf]', '\n');
          }
       } else if (code == 'name') {
             AddMoz(txtarea, '[b]' + info + '[/b]', ', ');
          } else if (code == 'url' || code == 'mail') {
             if (code == 'url') var url = prompt(info, 'http://');
             if (code == 'mail') var url = prompt(info, '');
             if (!url) return alert(error);
             if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart <= 0)) {
                var title = prompt(type, type);
                AddMoz(txtarea, '[' + code + '=' + url + ']' + title + '[/' + code + ']', '\n');
             } else {
                AddMoz(txtarea, '[' + code + '=' + url + ']', '[/' + code + ']');
             }
          } else if (code == 'color' || code == 'family' || code == 'size') {
             AddMoz(txtarea, '[' + code + '=' + info + ']', '[/' + code + ']');
          } else if (code == 'li' || code == 'hr' || code == 'br') {
             AddMoz(txtarea, '[' + code + ']', '');
          } else if (code == 'attach') {
             AddMoz(txtarea, '[' + code + '=' + info + ' align=center title=title]', '\n');
          } else {
             if (code == 'img' && info) {
                AddMoz(txtarea, '[' + code + '=center alt=title]' + info +'[/' + code + ']', '\n');
             } else if (code == 'img') {
                AddMoz(txtarea, '[' + code + '=center alt=title]', '[/' + code + ']');
             } else {
                AddMoz(txtarea, '[' + code + ']', '[/' + code + ']');
             }
          }
       }
    }



    Дата публикации: 04.08.2007
    Прочитано: 11545 раз
    [ Назад | Начало | Наверх ]
    Комментарии

    Serg_pnz
    Дата: 13.09.2007 | Комментарий: 10
    Serg_pnzWebber, Возвращаем опцию «Использовать HTML форматирование» в BB-редакторе в Слаед 2.(3|4)

    И просьба: по возможности такие отвлеченные беседы давай будем вести в форуме. (Эту я попозже перенесу)
    Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
    "...даме водки? Это чистый спирт!" © кот Бегемот
    Webber
    Дата: 12.09.2007 | Комментарий: 9
    WebberЯ про код, который позволяет в админке юзать html форматирование.Где он сидит?Я пониятия не имею.((
    Serg_pnz
    Дата: 11.09.2007 | Комментарий: 8
    Serg_pnzWebber, "его" кого?
    тут есть 2.1 http://svyt.net/filescat-9.html
    Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
    "...даме водки? Это чистый спирт!" © кот Бегемот
    Webber
    Дата: 11.09.2007 | Комментарий: 7
    WebberSerg_pnz, ага...понял.Спасибо.И ещё...а ты не знаешь, где его можно глянуть?))
    Serg_pnz
    Дата: 11.09.2007 | Комментарий: 6
    Serg_pnzWebber, тогда тебе надо посмотреть например версию 2.1 и перетянуть к себе код, который позволяет в админке юзать хтмл-форматирование.
    Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
    "...даме водки? Это чистый спирт!" © кот Бегемот
    Webber
    Дата: 08.09.2007 | Комментарий: 5
    WebberSerg_pnz, не, это я понял...но что под каждый сервис по кнопке?Бред)))
    Я б хотел просто зону бб тега, где бы царил и работал обычный html код.Плевать на безопасность.Так вот как всё это описать всё в соурс.пхп?? Права какие записать нужно?
    Serg_pnz
    Дата: 06.09.2007 | Комментарий: 4
    Serg_pnzwebber, для видео надо делать свою кнопку наподобие как сделано для [swf][/swf]
    Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
    "...даме водки? Это чистый спирт!" © кот Бегемот
    webber
    Дата: 06.09.2007 | Комментарий: 3
    webberА какие права нужно записать для кнопки, что б к примеру в тегах [html][/html] отображался тот html, который разпологается в этом теге?Что б я, например, онлайн видео (обычный html-код) впихул между [html][/html] и оно работало, а не выводило сам код, как текст??
    Serg_pnz
    Дата: 06.09.2007 | Комментарий: 2
    Serg_pnzчто бы можно было написать [b]тест[/b] иначе получишь тест
    Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
    "...даме водки? Это чистый спирт!" © кот Бегемот
    Webber
    Дата: 06.09.2007 | Комментарий: 1
    Webber<b>А зачем кнопка "nobb"??</b>
    Вы не можете отправить комментарий анонимно, пожалуйста зарегистрируйтесь.
    Календарь 3 в 1
    - М - Г + Г + М
    Апрель, 2024
    пнвтсрчтптсбвс
    1234567
    891011121314
    15161718192021
    22232425262728
    2930
    Купить.
    Можно в кредит на 90 дней!
    Навигация
    »» RSS
    Главная | Форум | Новости | Подписка на новости | Темы новостей | Добавить новость | Каталог файлов | Карта файлового архива | Публикации | Опросы | Анкета пользователя | Чат | BestMaker | Викторина | Архив новостей | Карманный оракул | Поиск по сайту с помощью Яндекс | Поиск по сайту с помощью Google | Фото дня | Для души | Погода на 3 дня | IndexCat | IndexTop | Map_Pages | Весь Оракул

    Rambler's Top100

    Генерация страницы: 0.279 сек. и 19 запросов к базе данных за 0.026 сек.
    Web site engine code is Copyright © 2006 by SLAED CMS. All rights reserved.