TinyMCE - подключаем BBCode
1. Для начала подключаем TinyMCE
2. Желательно обновить его до последней версии об этом тут
3. Подключаем модуль обработки BBcode в TinyMCE, меня конфигурация такая
В файл: \templates\skin\new\actions\ActionTopic\add.tpl
И для коментария в plugins\cmtedit\templates\skin\default\cmtedit_form.tpl, если стоит плагин от Ajaxy
Теперь, как бы все хорошо, TinyMCE умеет переделывать внутри себя BBCode в HTML. Но при сохранении все равно выдается BBCode.
Пишем функцию патча.
Для этого в тех же файлах.
перед tinyMCE.init({
Вставляем следующую функцию:
После этого в конец функции tinyMCE.init({
Добавляем вызов
tinyMCE.init({
…
save_callback: «mybbcode2html»
})
Радуемся жизни :) после этого весь BBcode будет сохранет как HTML — и вся информация будет отображаться корректно.
2. Желательно обновить его до последней версии об этом тут
3. Подключаем модуль обработки BBcode в TinyMCE, меня конфигурация такая
В файл: \templates\skin\new\actions\ActionTopic\add.tpl
tinyMCE.init({
...
plugins : "lseditor,safari,inlinepopups,media,pagebreak,emotions,fullscreen,advhr,bbcode",
...
})
И для коментария в plugins\cmtedit\templates\skin\default\cmtedit_form.tpl, если стоит плагин от Ajaxy
Теперь, как бы все хорошо, TinyMCE умеет переделывать внутри себя BBCode в HTML. Но при сохранении все равно выдается BBCode.
Пишем функцию патча.
Для этого в тех же файлах.
перед tinyMCE.init({
Вставляем следующую функцию:
function mybbcode2html(element_id, html, body) {
// example: [b] to <strong>
html = html.replace(/\n/gi,"<br />");
html = html.replace(/\[b\]/gi,"<strong>");
html = html.replace(/\[\/b\]/gi,"</strong>");
html = html.replace(/\[i\]/gi,"<em>");
html = html.replace(/\[\/i\]/gi,"</em>");
html = html.replace(/\[u\]/gi,"<u>");
html = html.replace(/\[\/u\]/gi,"</u>");
html = html.replace(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,"<a href=\"$1\">$2</a>");
html = html.replace(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>");
html = html.replace(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");
html = html.replace(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<font color=\"$1\">$2</font>");
html = html.replace(/\[code\](.*?)\[\/code\]/gi,"<span class=\"codeStyle\">$1</span> ");
html = html.replace(/\[quote.*?\](.*?)\[\/quote\]/gi,"<span class=\"quoteStyle\">$1</span> ");
return html;
}
После этого в конец функции tinyMCE.init({
Добавляем вызов
tinyMCE.init({
…
save_callback: «mybbcode2html»
})
Радуемся жизни :) после этого весь BBcode будет сохранет как HTML — и вся информация будет отображаться корректно.
1 комментарий