在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?
答案 0 :(得分:4)
你的JModel提示:
请注意,默认情况下,JRequest :: GET会将所有HTML代码过滤为纯文本,这在使用编辑器时可能不是很有用。要在模型类中存储HTML代码,您必须明确地从JRequest-Object请求HTML代码,否则将剥离所有HTML。
JRequest::getVar( 'yourfieldname', '', 'post', 'string', JREQUEST_ALLOWHTML );
JREQUEST_ALLOWHTML
是要记住的关键点。鉴于此
答案 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'));
希望这有帮助