原始HTML CCK字段(Drupal的6) - 沒有過濾器,格式或編輯
簡單的解決!只需使用純文本格式處理未過濾的HTML。然後在構建節點時將其轉換回字段.tpl中的html。
CCK字段上的純文本格式會將HTML標記轉換爲實體特殊字符(這會使它看起來像頁面上的代碼而不是實際的html標記)。它將使用php的htmlspecialchars($ text,ENT_QUOTES,'UTF-8')編碼的字符串存儲在drupal的check_plain()函數中。
解碼它的最簡單的方法是在字段tpl文件。這避免了鉤子,鉤子順序問題,循環錯誤和性能問題。這是通過將tpl文件添加到基本主題完成的:hq_base,odyssey_base和odyssey_admin。下面是drupal如何在cck節點編輯表單上解碼純文本:print html_entity_decode(strip_tags($ text),ENT_QUOTES);注 - html_entity_decode在解碼回html時將php標籤轉換爲html註釋。以下是帶有正確命名約定的示例文件,用於對字段進行php控制:
•content-field.tpl。PHP
•內容的現場[your_field_name] .tpl.php
內容field.tpl.php從CCK的contrib進入主題文件夾的副本,這是一個的contrib覆蓋使其在主題中可用,並且不應該修改(除非您想更改主題中的所有字段)。字段特定文件也是tpl的副本,一旦覆蓋文件存在,它就會工作。然後在字段tpl文件中解碼爲html:
•// print $ item ['view'];
•print html_entity_decode(strip_tags($ item ['view']),ENT_QUOTES);
Drupal的版本注: 第三方物流文件是在Drupal 7和Drupal 8.但html_entity_decode(略有不同)是一個PHP函數,將不是每個Drupal的版本改變。
安全說明: 這種獲取原始HTML的解碼技巧與Drupal構建文本格式安全性的方式背道而馳。這意味着任何具有編輯頁面權限的人都有權編輯html結構,並在頁面上添加腳本標記。這可能會破壞佈局,並可能是危險的。您在這裏依靠編輯安全權限,而不是Drupal的常規每個角色格式安全性。
謝謝你的迴應,但問題? 主題功能在哪裏? – Romelus96 2010-04-06 04:14:27