簡體   English   中英

如何使Joomla 3.0富文本編輯器允許HTML?

[英]How to make Joomla 3.0 rich text editor allow HTML?

在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?

您的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。

不推薦使用JFactory::getEditor() 你應該從12.3開始使用JEditor::getInstance()

當您使用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"
                />

希望這會節省一些時間。 :)快樂的編碼!

在Joomla 3.6中我收到此錯誤

使用未定義的常量JREQUEST_ALLOWHTML - 假設為'JREQUEST_ALLOWHTML'。

我得出的結論是,在Joomla中檢索html格式文本的最佳方法是:

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

希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM