Но тут возникает проблема, если стили визуального редактора отличаются от стилей сайта, а контент вставляется в разные части страницы, то нужно как-то однозначно определить место вставки текста из редактора.
Для решения этой проблемы я решил обернуть весь текст из визуального редактора в div с определенным классом и все стили наследовать от него.
Т.е. в файле стилей нам можно будет прописать оформление для всех элементов наследников этого класса. Тогда оформление будет выглядеть одинаково как в самом визуальном редакторе, так и в любой части страницы, т.к. весь код будет обернут в этот div.
Остается только вставлять этот див автоматически в визуальный редактор.
Для этого в init.php добавляем обработчик события подключения визуального редактора и при его инициализации создаем div в который поместим весь контент.
<?php //событие подключения визуального редактора AddEventHandler("fileman", "OnIncludeHTMLEditorScript", array("MyHandlers", "OnIncludeHTMLEditorScript")); class MyHandlers { public static function OnIncludeHTMLEditorScript() { ?> <script type="text/javascript"> //получаем указатель на полотно визуального редактора BXHTMLEditor.prototype.SetView_ = BXHTMLEditor.prototype.SetView; BXHTMLEditor.prototype.SetView = function (sType) { var result = this.SetView_(sType); var html = undefined; if(BX.browser.IsIE()) { try { html = this.pEditorDocument.body; } catch (e) { // } } else { try { html = this.pEditorWindow.document.body; } catch (e) { // } } if( sType == "html" && html ) { //обертываем в DIV, если его еще нет if( html.innerHTML.indexOf('<div class="content">') == -1 ) { html.innerHTML = '<div class="content">'+html.innerHTML+'</div>'; } } return result; }; </script> <? } } ?>
Комментариев нет:
Отправить комментарий