如何使Joomla 3.0富文本编辑器允许HTML?

时间:2013-03-29 05:12:04

标签: php joomla tinymce joomla2.5 joomla3.0

在Joomla 2.5中我使用下面的代码生成一个富文本编辑器,它允许我输入HTML并将其保存在数据库中。代码如下。

<?php 
$editor = & JFactory::getEditor();
$params = array('smilies'=> '0' ,'style'  => '0' ,'layer'  => '0' ,'table'  => '0' ,'clear_entities'=>'0');
echo $editor->display('description',$description  , 550, 400, 60, 20, false, $params); 
?>

但在Joomla 3.0中,我使用相同的代码,但富文本编辑器不允许我输入HTML。 Article Manager富文本编辑器中的编辑器允许我输入HTML。为什么这个编辑器没有?

我该如何解决这个问题?应该传递哪些额外参数以允许富文本编辑器允许HTML?

4 个答案:

答案 0 :(得分:4)

你的JModel提示:

请注意,默认情况下,JRequest :: GET会将所有HTML代码过滤为纯文本,这在使用编辑器时可能不是很有用。要在模型类中存储HTML代码,您必须明确地从JRequest-Object请求HTML代码,否则将剥离所有HTML。

JRequest::getVar( 'yourfieldname', '', 'post', 'string', JREQUEST_ALLOWHTML );

JREQUEST_ALLOWHTML是要记住的关键点。鉴于此

  • JREQUEST_NOTRIM - 防止修剪空白
  • JREQUEST_ALLOWRAW - 绕过过滤
  • JREQUEST_ALLOWHTML - 允许大多数HTML。如果未传入此内容,则默认情况下会删除HTML。

答案 1 :(得分:2)

JFactory::getEditor()已弃用。您应该从12.3开始使用JEditor::getInstance()

答案 2 :(得分:1)

当您使用XML表单结构时,您可以使用“编辑器”表单字段类型。在这种情况下,为了允许HTML标记,您必须使用属性“ filter ='safehtml'”来允许使用html标记保存内容。

例如:

<field
                name="event_desc"
                type="editor"
                editor="tinymce"
                width="400"
                height="100"
                label="COM_YOURCOMPONENT_FIELD_LABEL"
                description="COM_YOURCOMPONENT_FIELD_DESC"
                cols="30"
                rows="5"
                class=""
                default=""
                filter="safehtml"
                />

希望这会节省一些时间。 :) 快乐的编码!

答案 3 :(得分:0)

在Joomla 3.6中我收到此错误

使用未定义的常量JREQUEST_ALLOWHTML - 假设为'JREQUEST_ALLOWHTML'。

我得出的结论是,在Joomla中检索html格式文本的最佳方法是:

$html = JComponentHelper::filterText(JFactory::getApplication()->input->post->get($var_name, $default_value, 'raw'));

希望这有帮助