Редактор Joomla JCE не загружается на странице, загруженной Ajax - PullRequest
1 голос
/ 01 июля 2011

У меня есть компонент Joomla 1.5, который использует вызов класса editor для отображения редактора JCE для Joomla вместо текстового поля.Этот код является частью 4-х шаговой формы, где каждый шаг загружается с использованием Ajax.Последний шаг содержит поле сообщения, в котором пользователи могут писать свободный текст, и я вызываю его, используя следующий код:

$editor =& JFactory::getEditor();
echo $editor->display('description', $description, '100%', '150', '40', '30');

Когда отображается этот шаг, он показывает только простое текстовое поле без кнопок для форматированиятекст и т. д. Я понимаю, что это должно быть проблемой с javascript, но мне трудно найти, как я могу запустить правильный код для текстового поля для правильного форматирования.поле выглядит так.Description field loaded via Ajax

А вот HTML-код, сгенерированный из Firebug:

<!-- Start Editor --><label aria-visible="false" style="display:none;" for="description">description_textarea</label><textarea wrap="off" class="wfEditor source" style="width:100%;height:150px;" rows="30" cols="40" name="description" id="description"></textarea><input type="hidden" value="1" name="wf3fadc9c48cabc28750287fe69c3d08c4" id="wf_description_token">
<div id="editor-xtd-buttons">
<div class="button2-left"><div class="image"><a rel="{handler: 'iframe', size: {x: 570, y: 400}}" onclick="IeCursorFix(); return false;" href="http://localhost/ugparl/site/index.php?option=com_media&amp;view=images&amp;tmpl=component&amp;e_name=description" title="Image" class="modal-button">Image</a></div></div>
<div class="button2-left"><div class="pagebreak"><a rel="{handler: 'iframe', size: {x: 400, y: 85}}" onclick="IeCursorFix(); return false;" href="http://localhost/ugparl/site/index.php?option=com_content&amp;task=ins_pagebreak&amp;tmpl=component&amp;e_name=description" title="Pagebreak" class="modal-button">Pagebreak</a></div></div>
<div class="button2-left"><div class="readmore"><a rel="" onclick="insertReadmore('description');return false;" href="http://localhost/ugparl/site/#" title="Read more">Read more</a></div></div>
</div>
<!-- End Editor -->

Заранее благодарим вас за любую помощь, которую вы можете предоставить.

1 Ответ

1 голос
/ 12 июля 2011

Это не столько решение, сколько обходной путь.Из-за очистки заголовков перед отображением страницы код, сгенерированный JCE, теряется.Добавив следующий код на страницу, вызываемую ajax, я могу запустить инициализатор JCE и правильно отобразить редактор.

$document =& JFactory::getDocument();
echo "<script type='text/javascript'>
function loadJCE() {";
echo $document->_script["text/javascript"];
echo "}
</script>";

Затем я просто вызвал loadJCE из функции завершения загрузки.1005 * Опять же, это не лучший способ сделать это, но мне это удалось.

...