TinyMCE - подключаем BBCode

1. Для начала подключаем TinyMCE
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 комментарий

avatar
Прсотите можно вопросик? Можете для Версии 1.0.1 сделать файлики, что именно где прописать? Очень требуется код поддержки ББ кода, помогите очень прошу!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.