如何在自定义组件视图中添加Joomla编辑器,但不使用XML表单字段?

3
我正在开发一个自定义的joomla组件。我想在我的其中一个组件视图中添加joomla编辑器字段。我知道如何使用XML表单文件(models/forms/myview.xml)添加编辑器,但我想在视图文件(myview/tmpl/default.php)中不使用XML文件字段来完成同样的功能。是否可以实现?如果可以,请告诉我怎么做。
请帮个忙。
3个回答

7
我知道这是一个老问题,但是我认为我可以展示如何获取全局设置中的默认编辑器而不是用户设置的编辑器。通常情况下,用户没有设置默认编辑器,返回的值将是“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);

4

试试这个:

     $editor = JFactory::getEditor();
     echo $editor->display('content', $this->content, '550', '400', '60', '20', false);

在最新版本的Joomla中,即J3.x [更新],您可以使用以下类似内容:

更多信息请参阅此链接

jimport( 'joomla.html.editor' );
$editor = JEditor::getInstance(JFactory::getUser()->getParam("editor"));
echo $editor->display('content', $this->content, '550', '400', '60', '20', false);

for more


1
如果您使用的是J!3.3+,那么这个功能已经被弃用了!您应该直接使用JEditor。类似这样: jimport('joomla.html.editor'); $editor = \ JEditor :: getInstance(); - jakabadambalazs
1
实际上,在使用\JEditor::getInstance()时,您应该指定您想要的编辑器,否则您将得到一个“无”编辑器 - 这是一个简单的文本区域。例如,\JEditor::getInstance('jce')会给您提供JCE编辑器。但是,为了确保您不会硬编码某个可能没有安装的编辑器的名称(如JCE),我建议使用类似于这样的代码:$editor = \JEditor::getInstance(\JFactory::getUser()->getParam("editor")); - jakabadambalazs

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接