2012-03-19 110 views
4

我有一個提交條目的破拆表單。該表格由標題,url_title和說明組成。我想創建一個擴展鉤子,如果它們存在於條目的title中,則會過濾掉某些詞。表達式引擎掛鉤

我已經有一個功能,照顧清洗function clean(){....}。我知道我們需要使用擴展鉤,因此我們可以在保存條目時清除標題。

我需要使用什麼擴展鉤。你能給我一個完整的擴展鉤子的例子嗎?我對PHP非常好,但對於鉤子以及它們應該如何實現還是新的。我已經閱讀了EE文檔,但仍然發現如何使用掛鉤的一些混淆

回答

5

首先轉到http://pkg.io/並獲取您的基本擴展名文件。

如果輸入不乾淨的單詞,您可能會想要使用'safecracker_submit_entry_start'鉤子來引發錯誤。擴展的最重要的部分是註冊你想使用的方法和鉤子,否則沒有代碼會運行。

您的代碼應該是這個樣子:

public function activate_extension() 
{ 
    // Setup custom settings in this array. 
    $this->settings = array(); 

    $data = array(
     'class'  => __CLASS__, 
     'method' => 'clean', // point to the method that should run 
     'hook'  => 'safecracker_submit_entry_end', // point to the hook you want to use to trigger the above method. 
     'settings' => serialize($this->settings), 
     'version' => $this->version, 
     'enabled' => 'y' 
    ); 

    $this->EE->db->insert('extensions', $data);   

} 

一旦方法被調用,你就可以開始你的清潔。在定義它時,確保將safecracker對象傳遞給乾淨的方法。例如:

public function clean($sc){ 
    print_r($sc); 
} 
+0

謝謝@philip。這真的很有幫助。感謝您的鏈接。我唯一的問題是我如何告訴clean函數清理$ _POST ['title'],因爲我想清除提交的條目的標題。在乾淨的功能裏面我應該有一些像$ _POST ['title'] = clean($ _ POST ['title']);.我希望標題在發送到數據庫之前進行清理。 – Pinkie 2012-03-21 02:39:46

+0

您可以在掛鉤調用的方法內部執行此操作。你想要它真的清潔它嗎?或拒絕某些關鍵字的標題? – 2012-03-21 16:57:04

+0

您可能還在尋找:$ this-> EE-> output-> show_user_error(「FooBar」) – 2012-03-21 17:00:29