Главное на форуме - это его темы и сообщения, и все они создаются через SCEditor. Он легко модифицируется и расширяется, благодаря чему можно сделать немало полезных функций, делающие написание сообщений удобным.
Что можно сделать? Можно реализовать шаблоны сообщений для модеров и админов, новые BB-коды, формочки отправки документов и прочее.
Из уже готовых решений можно посмотреть:
Все разнообразные дополнения к редактору сообщений выполняются через скрипты. Абсолютно правильной и безопасной основой для скрипта будет вот такая структурка:
Все свои коды будем писать, начиная с этой структуры и располагая туда свои функции.
Вот простейшие команды, с помощью которых можно создать новые кнопки, мини-панельки и выпадающие менюшки:
Вставка новой группы кнопок в редактор
Вставка кнопки в конец последней группы
К этой кнопке надо будет сделать иконку размером в 16х16 пикселей, загрузить её куда-нибудь и назначить через CSS:
Вставка кнопки в начало последней группы
Чтобы вставить кнопку в начало группы кнопок, достаточно заменить appendTo на prependTo. Код уже будет таким:
Создание кнопки с простым выпадающим меню
Основные команды для редактора
Вставка своего текста
Обрамление в свой BB-код
Заменить содержимое
Примеры (собираем воедино)
Создание кнопки - вставки админского предупреждения:
Выпадающее меню с несколькими шаблонами:
Не забывайте, что этим примерам нужны ещё стили CSS
(с) Your Roll. Туториал предоставлен блоггером и кибермагом Космо Мизраил Горынычем. Любая публикация данного материала без его разрешения запрещена.
Что можно сделать? Можно реализовать шаблоны сообщений для модеров и админов, новые BB-коды, формочки отправки документов и прочее.
Из уже готовых решений можно посмотреть:
- Отправку сообщений через Ctrl+Enter
- Разворачивание редактора на весь экран
- Стикеры в сообщениях - как в вк!
Все разнообразные дополнения к редактору сообщений выполняются через скрипты. Абсолютно правильной и безопасной основой для скрипта будет вот такая структурка:
- Код:
$(function () {$(function () {if ($.sceditor) {
...
}});});
Все свои коды будем писать, начиная с этой структуры и располагая туда свои функции.
Вот простейшие команды, с помощью которых можно создать новые кнопки, мини-панельки и выпадающие менюшки:
Вставка новой группы кнопок в редактор
- Код:
$('.sceditor-toolbar').append('<div class="sceditor-group"></div>');
Вставка кнопки в конец последней группы
- Код:
$('<a class="sceditor-button sceditor-button-ИМЯ" unselectable="on" title="ОПИСАНИЕ"><div>ОПИСАНИЕ</div></a>').appendTo($('.sceditor-toolbar .sceditor-group:last')).click(function () {
...
});
К этой кнопке надо будет сделать иконку размером в 16х16 пикселей, загрузить её куда-нибудь и назначить через CSS:
- Код:
.sceditor-button-ИМЯ div {
background: url(ССЫЛКА) !important;
}
Вставка кнопки в начало последней группы
Чтобы вставить кнопку в начало группы кнопок, достаточно заменить appendTo на prependTo. Код уже будет таким:
- Код:
$('<a class="sceditor-button sceditor-button-ИМЯ" unselectable="on" title="ОПИСАНИЕ"><div>ОПИСАНИЕ</div></a>').prependTo($('.sceditor-toolbar .sceditor-group:last')).click(function () {
...
});
Создание кнопки с простым выпадающим меню
- Код:
var q = $('<a class="sceditor-button sceditor-button-ИМЯ" unselectable="on" title="ОПИСАНИЕ"><div>ОПИСАНИЕ</div></a>').appendTo($('.sceditor-toolbar .sceditor-group:last'));
q.click(function () {
if ($('.sceditor-ИМЯ').length == 0) {
$('#text_editor_textarea').sceditor('instance').createDropDown(q, 'ИМЯ', 'КОНТЕНТ', true);
return false;
}
});
- Код:
.sceditor-ИМЯ {
height: 300px;
overflow: auto;
width: 200px;
}
Основные команды для редактора
Вставка своего текста
- Код:
$('#text_editor_textarea').sceditor('instance').insert('BB-код');
Обрамление в свой BB-код
- Код:
$('#text_editor_textarea').sceditor('instance').insert('начало','конец');
Заменить содержимое
- Код:
$('#text_editor_textarea').sceditor('instance').val('новое содержимое');
- Код:
$('#text_editor_textarea').sceditor('instance').val($('#text_editor_textarea').sceditor('instance').val() + 'КОД');
- Код:
$('#text_editor_textarea').sceditor('instance').val('КОД' + $('#text_editor_textarea').sceditor('instance').val());
- Код:
$('#text_editor_textarea').sceditor('instance').val('КОД' + $('#text_editor_textarea').sceditor('instance').val() + 'КОД');
- Код:
$('form[action="/post"]:eq(0) input[type="submit"][name="post"]').click();
Примеры (собираем воедино)
Создание кнопки - вставки админского предупреждения:
- Код:
$(function () {$(function () {if ($.sceditor) {
$('<a class="sceditor-button sceditor-button-warning" unselectable="on" title="Предупреждение"><div>Предупреждение</div></a>').appendTo($('.sceditor-toolbar .sceditor-group:last')).click(function () {
$('#text_editor_textarea').sceditor('instance').insert('[table border="0"][tr][td][img]http://i39.servimg.com/u/f39/16/50/61/52/warnin10.png[/img][/td][td][b]Предупреждение администратора:[/b] ваш текст...[/td][/tr][/table]');
});
}});});
Выпадающее меню с несколькими шаблонами:
- Код:
$(function () {$(function () {if ($.sceditor) {
function draft_1() {
$('#text_editor_textarea').sceditor('instance').insert('Первый шаблон');
return false;
}
function draft_2() {
$('#text_editor_textarea').sceditor('instance').insert('Второй шаблон');
return false;
}
function draft_3() {
$('#text_editor_textarea').sceditor('instance').insert('Третий шаблон');
return false;
}
var q = $('<a class="sceditor-button sceditor-button-drafts" unselectable="on" title="Шаблоны"><div>Шаблоны</div></a>').appendTo($('.sceditor-toolbar .sceditor-group:last'));
q.click(function () {
if ($('.sceditor-drafts').length == 0) {
$('#text_editor_textarea').sceditor('instance').createDropDown(q, 'drafts', '<a href="javascript: void(0);" onclick="draft_1();">Шаблон 1</a><br /><a href="javascript: void(0);" onclick="draft_2();">Шаблон 2</a><br /><a href="javascript: void(0);" onclick="draft_3();">Шаблон 3</a>', true);
return false;
}
});
}});});
Не забывайте, что этим примерам нужны ещё стили CSS
(с) Your Roll. Туториал предоставлен блоггером и кибермагом Космо Мизраил Горынычем. Любая публикация данного материала без его разрешения запрещена.