Понедельников НЕТ!
Регистрация или вход Регистрация или вход Избранное на этом сайте | Главная | Анкета | Рекомендовать | Обратная связь | В избранное | Сделать домашней
Скачать 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
Поиск по сайту









Интересное в сети

Sape — это система купли-продажи ссылок
с главных и внутренних страниц сайтов
Публикации
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
Прочитано: 11457 раз
[ Назад | Начало | Наверх ]
Комментарии

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
пнвтсрчтптсбвс
123
45678910
11121314151617
18192021222324
25262728293031
Купить.
Можно в кредит на 90 дней!
Навигация
»» RSS
Главная | Форум | Новости | Подписка на новости | Темы новостей | Добавить новость | Каталог файлов | Карта файлового архива | Публикации | Опросы | Анкета пользователя | Чат | BestMaker | Викторина | Архив новостей | Карманный оракул | Поиск по сайту с помощью Яндекс | Поиск по сайту с помощью Google | Фото дня | Для души | Погода на 3 дня | IndexCat | IndexTop | Map_Pages | Весь Оракул

Rambler's Top100

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