4

在 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。文章管理器富文本编辑器中的编辑器允许我输入 HTML。为什么这个编辑器没有?

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

4

4 回答 4

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。
于 2013-03-29T10:25:12.593 回答
2

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

于 2013-03-29T09:57:10.417 回答
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"
                />

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

于 2014-08-22T05:46:44.340 回答
0

在 Joomla 3.6 我得到这个错误

使用未定义的常量 JREQUEST_ALLOWHTML - 假定为“JREQUEST_ALLOWHTML”。

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

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

希望这可以帮助

于 2016-07-29T08:43:09.380 回答