如何在自定义组件视图中添加 joomla 编辑器但不使用 XML 表单字段?
Posted
技术标签:
【中文标题】如何在自定义组件视图中添加 joomla 编辑器但不使用 XML 表单字段?【英文标题】:How to add joomla editor in custom component view but without using XML form fields? 【发布时间】:2013-10-04 13:47:04 【问题描述】:我正在开发一个自定义 joomla 组件。我想在我的一个组件视图中添加一个 joomla 编辑器字段。我知道如何使用 XML 表单文件 (models/forms/myview.xml) 添加编辑器,但我想在视图文件 (myview/tmpl/default.php) 中执行相同操作,而不使用 xml 文件字段。 可能吗 ?如果是那怎么办?
请帮忙
【问题讨论】:
【参考方案1】:我知道这是一个老问题,但我想我会展示如何在全局设置中而不是由用户设置默认编辑器。通常,用户没有设置默认编辑器,返回的值是“JEditor”,这将导致编辑器根本无法加载。如果您愿意,可以将两者结合起来,首先检查用户编辑器,如果值为 JEditor,则回退到全局编辑器。
这是一个例子:
// IMPORT EDITOR CLASS
jimport( 'joomla.html.editor' );
// GET EDITOR SELECTED IN GLOBAL SETTINGS
$config = JFactory::getConfig();
$global_editor = $config->get( 'editor' );
// GET USER'S DEFAULT EDITOR
$user_editor = JFactory::getUser()->getParam("editor");
if($user_editor && $user_editor !== 'JEditor')
$selected_editor = $user_editor;
else
$selected_editor = $global_editor;
// INSTANTIATE THE EDITOR
$editor = JEditor::getInstance($selected_editor);
// SET EDITOR PARAMS
$params = array( 'smilies'=> '0' ,
'style' => '1' ,
'layer' => '0' ,
'table' => '0' ,
'clear_entities'=>'0'
);
// DISPLAY THE EDITOR (name, html, width, height, columns, rows, bottom buttons, id, asset, author, params)
echo $editor->display('email', '', '400', '400', '20', '20', true, null, null, null, $params);
【讨论】:
【参考方案2】:试试这个,
$editor = JFactory::getEditor();
echo $editor->display('content', $this->content, '550', '400', '60', '20', false);
为more
在最新的 Joomla 版本中 J3.x [UPDATE]
你可以使用类似下面的东西,
jimport( 'joomla.html.editor' );
$editor = JEditor::getInstance(JFactory::getUser()->getParam("editor"));
echo $editor->display('content', $this->content, '550', '400', '60', '20', false);
for more
【讨论】:
如果您使用的是 J!3.3+,这将被贬值!您应该直接使用 JEditor。比如:jimport( 'joomla.html.editor' ); $editor = \JEditor::getInstance();
实际上,当使用\JEditor::getInstance()
时,您应该指定您想要的编辑器,否则您将获得一个“无”编辑器——这是一个简单的文本区域。例如 \JEditor::getInstance('jce')
会给你 JCE 编辑器。但是,为了确保您不会硬编码某人可能没有安装的编辑器(如 JCE)的名称,我会使用如下内容:$editor = \JEditor::getInstance(\JFactory::getUser()->getParam("editor"));
【参考方案3】:
Joomla 3.x
$editor = JFactory::getEditor();
$editor = $editor->display('mce', $yourContent, '550', '400', '60', '20', false);
www.joomla-wiki.de/dokumentation/JFactory/getEditor
【讨论】:
以上是关于如何在自定义组件视图中添加 joomla 编辑器但不使用 XML 表单字段?的主要内容,如果未能解决你的问题,请参考以下文章
如何在自定义模块(Joomla 1.7)中使用自定义组件中的函数?