2013-03-13 34 views
0

這個問題可能有點特別。我正在使用這個Joomla 2.5擴展來賦予作者在文章中添加附件的能力:Joomla AttachmentsJoomla組件「附件」允許html中輸入

該擴展在後端表單中呈現一個名爲「description」的輸入字段,以爲所提供的文件插入文件描述。不幸的是,它沒有采用我需要的HTML標籤。通過保存表單,它似乎是一個strip_tags()或preg_replace()或類似的東西來清理輸入。我梳理了附件擴展的代碼,但找不到輸入被清理或保存的地方。

懷着希望留在#2的問題+答案規則:

有哪些擴展與Joomla!核心繼承保存表單數據到數據庫表(這也可能是負責清潔和驗證類用戶輸入)?

感謝您的任何想法,

託尼

回答

0

你應該怎麼看場首先定義:

1表單定義

的面貌邁向

administrator/component/yourcomponent/models/forms/somename.xml 

那裏你可以fi nd一個表單定義,如果是的話,它也將指定字段類型:根據類型,有幾個可用的過濾器;例如默認的textarea會去掉html,並且您需要設置

filter="raw" 

爲了啓用它。請參閱http://docs.joomla.org/Standard_form_field_and_parameter_types以獲取字段列表,單擊,然後您可以找到可用的格式選項。

2.模型

如果模型從JModelAdmin或JModelForm或其他JModel繼承*它會自動處理形式的數據到數據庫的結合,尋找其應該得到的形式$保存功能數據。

3.更多 至少有十幾種可能性。如果上面的內容沒有幫助,請嘗試查找表單:可能只需查看標記即可找到它。一旦你的表格,檢查以下字段:

  • 選項
  • 任務
  • 視圖

這會幫助你發現是基於窗體調用PHP代碼:

  • 如果設置了視圖,可以在./views/someview/view.html.php中找到保存邏輯。
  • 如果任務已設置,請在./controller.php中查找同名的函數。
  • 如果任務包含「。」,請查找控制器中的。/控制器/文件夾。
  • 如果選擇是不是你的組件的名稱,你的組件發送數據到另一個部件保存,而且極有可能設置一個返回URL
+0

裏卡多嗨,你的詳細解答謝謝。 Form definition filter =「」不會改變任何東西,但我發現了兩件事。表單隱藏了帶有選項和任務的輸入字段: 和控制器(controller/params.php)似乎從表單中獲取數據:$ data = JRequest :: getVar('jform',array(),'post','array',JREQUEST_ALLOWHTML);我想我可以添加JREQUEST_ALLOWHTML到它,不幸的是這也不會改變什麼?關於這兩件事情的任何想法? – 2013-03-14 09:39:37

+0

是是是!感謝它!如果(!$ attachment-> bind(JRequest :: get('post',JREQUEST_ALLOWRAW))控制器綁定Formdata,通過添加allow raw – 2013-03-14 10:07:41