我正在尝试制作一个组件,我需要添加已经安装的 Joomla 的 Tinymce 编辑器!在那个组件中。
我在互联网上查看,但没有找到任何示例。到目前为止,我唯一能做的就是下载 tinymce 的 js 文件并将其安装到我的组件中。
但我知道 Joomla 已经为 tinymce 构建了文件。那么如何在我的组件代码中使用它而无需再次下载文件呢?
您不需要向组件中添加任何 tinymce 文件;在您的模板中,添加以下行:
$value = 'your desired text content';
$editor = JFactory::getEditor();
echo $editor->display('editorName', $value, '550', '400', '60', '20', false);
要从输入中检索文本而不将其剥离,请使用以下方法之一:
$postData = JRequest::get('POST', JREQUEST_NOTRIM | JREQUEST_ALLOWRAW);
$text = $postData['editorName'];
或者
$text = JRequest::getVar( 'editorName', 'defaultValue', 'post', 'string', JREQUEST_ALLOWRAW );
或者,从 1.6 开始,上述方法似乎已被弃用(请参见此处,以及以下代码的源代码),新方法将是:
$jinput = JFactory::getApplication()->input;
// Then use JInput's get() method with the filter you need:
$description = $jinput->get('editorName', 'defaultValue', 'HTML');
在我的代码中,就在提交表单之前,我还调用了JEditor::save
; 我不知道这是否真的有必要;经过一些研究,我并没有真正找到它的用途,所以如果没有它对你有用,我会把它排除在外。
有一些类似的问题(例如这个)和论坛帖子(例如这个),但据我所知没有全面的答案,我也曾一度为此苦苦挣扎,这就是为什么我的答案变得相当长的原因。
$editor =& JFactory::getEditor();
$editor_tiny = $editor->display('product_section_table[]',$setiontable[$i] ,'95%', '550', '75', '20', false);
echo $editor_tiny;
您也可以使用此代码