Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2010-01-30 15:26:13

mittus
Участник
Зарегистрирован: 2010-01-24
Сообщений: 155
Рейтинг :   

Патч для форм редактирования на bb кодах

Описание
Вызов любых тегов используя комбинации клавиш на вашей клавиатуре. Например, если вам не нравится работать в режиме автоформатирования, то вы сможете сделать так, чтобы при нажатии клавиши Enter вставлялся тег [br], я приложу инструкцию по установке и настройке патча, но придумывать сочетания клавиш вам придется самостоятельно в зависимости от предпочтений.

Мы будем использовать библиотеку shortcut.js, она прикреплена к этому сообщению.

Проверял лично в IE7 и FireFox, всё работает, но если у кого будут проблемы, пишите.

1. Кладем библиотеку shortcut.js в каталог .../engine/includes/js/

2. Открываем файл .../engine/skins/default/index.php
Найдите строчку

<script type="text/javascript" src="$config[admin_url]/includes/js/functions.js"></script>

Вставьте следом

<script type="text/javascript" src="$config[admin_url]/includes/js/shortcut.js"></script>

3. Открываем файл .../engine/skins/default/tpl/qt_news.tpl
В самом верху вставляем скрипт:

<script type="text/javascript">
shortcut.add("Enter",function() {
insertext('[br]\n', '', {area});
});
shortcut.add("Ctrl+Shift+P",function() {
insertext('[p]','[/p]', {area});
});
shortcut.add("Ctrl+B",function() {
insertext('[b]','[/b]', {area});
});
</script>

Это всё, что требуется.
Теперь подробнее о настройке.

shortcut.add("Enter",function() {
insertext('[br]\n', '', {area});
});

На месте "Enter" может быть сочетание любых поддерживаемых клавиш с символами. Я советую использовать комбинации не более, чем из трех клавиш.

Поддерживаемые клавиши (кроме латиницы)

* Tab    * Space    * Return    * Enter    * Backspace    * Scroll_lock    * Caps_lock    * Num_lock    * Pause    * Insert    * Home    * Delete    * End    * Page_up    * Page_down    * Left    * Up    * Right    * Down    * F1    * F2    * F3   * F4    * F5    * F6    * F7    * F8    * F9    * F10    * F11    * F12

insertext('[br]\n', '', {area});

Здесь мы задаем то, что будет выводиться в поле редактора.
Внимательно!
"\n" - это перевод курсора на следующую строчку после добавленного тега!
('первый', 'второй', {area}) - если вам нужно вставить два тега, то заполняем обе части "первый" и "второй", не забываем перед вторым тегом ставить слэш, закрывающий первый тег. Если вам нужно вставить один тег, то вместо 'второй' оставляем ''!
Список поддерживаемых тегов BB кода:


[code*] ..[/code*]
=> <pre> .. </pre>
[quote]..[/quote]
=> <blockquote> .. </blockquote>
[quote=ТЕКСТ]..[/quote]
[acronym] .. [/acronym] => <acronym> .. </acronym>
[acronym=ТЕКСТ] .. [/acronym] => <acronym title="ТЕКСТ"> .. </acronym>
[email]ДАННЫЕ[/email] => <a href="mailto:ДАННЫЕ"> ДАННЫЕ </a>
[s] .. [/s] => <s> .. </s>
[b] .. [/b] => <b> .. </b>
[i] .. [/i] => <i> .. </i>
[u] .. [/u] => <u> .. </u>
[p] .. [/p] => <p> .. </p>
[ul] .. [/ul] => <ul> .. </ul>
[li] .. [/li] => <li> .. </li>
[ol] .. [/ol] => <ol> .. </ol>
[left] .. [/left] => <p style="text-align: left"> .. </p>
[right] .. [/right] => <p style="text-align: right"> .. </p>
[center] .. [/center] => <p style="text-align: center"> .. </p>
[justify] .. [/justify] => <p style="text-align: justify"> .. </p>
[color=ЦВЕТ] .. [/color] => <span style="color: ЦВЕТ"> .. </span>
[spoiler] .. [/spoiler]
[spoiler="ТЕКСТ"] .. [/spoiler] (вариант будет доступен в RC #03 и выше)
[br] => <br />

Возможные варианты использования тега [img]:
[img URL ФЛАГИ]ОПИСАНИЕ[/img]
[img=URL ФЛАГИ]ОПИСАНИЕ[/img]
[img ФЛАГИ]URL[/img]
где:
URL - адрес картинки
ФЛАГИ - доп. флаги, пишутся в формате ФЛАГ="ЗНАЧЕНИЕ":
* width - ширина в пикселях
* height - высота в пикселях
* border - граница в пикселях
* align - расположение ( left / right / center )
* class - любой текст


Возможные варианты использования тега [url]:
[url URL ФЛАГИ]ОПИСАНИЕ[/url]
[url=URL ФЛАГИ]ОПИСАНИЕ[/url]
[url ФЛАГИ]URL[/url]

Внимание!!
Если вам нужно добавить новый тег, то 1. что вам понадобится, это настроить его в файле  .../engine/includes/classes/parse.class.php
, где по образу и подобию строки $content    =    preg_replace("#\[justify\](.*?)\[/justify\]#is","<p style=\"text-align: justify\">$1</p>", $content); после нее добавляем новую, потом новый тег можно добавить в файл .../engine/skins/default/tpl/qt_news.tpl либо кнопочкой, либо быстрыми клавишами, как вам будет удобнее.

.../engine/skins/default/tpl/qt_news.tpl - форма добвления/редактирования новостей
.../engine/skins/default/tpl/qt_editcom.tpl - форма редактирования комментариев
.../engine/skins/default/tpl/qt_static.tpl - форма добавления/редактирования статических страничек
.../engine/skins/default/tpl/qt_pmmes.tpl - форма отправки личных сообщений

Вы можете патчить вышеописанным методом любую из этих форм.

Не в сети

#2 2010-04-29 13:49:23

FlatFX
Участник
Откуда SPB
Зарегистрирован: 2010-04-27
Сообщений: 39
Рейтинг :   
Сайт

Re: Патч для форм редактирования на bb кодах

этот инсерт текст глупая затея вообще, иннер хтмл работает везде, но ещё одна глупая затея везде ставить айди "content", пришлось все формы менять на content5 например, и туда уже делать иннерхтмл...
почему? да потому что в опере работает, в мозиле кое как, а в хроме отваливается.

Не в сети

Подвал раздела

Работает на FluxBB