我有一个提交条目的安全表格。表单由title,url_title和description组成。我想创建一个扩展挂钩,如果它们存在于条目的title
中,则会过滤掉某些单词。
我已经有一个负责清洁的功能function clean(){....}
。我知道我们需要使用扩展挂钩,以便我们可以在保存条目时清除标题。
我需要使用什么扩展钩子。你能给我一个扩展钩子的完整例子吗?我非常擅长PHP,但仍然是钩子以及它们应该如何实现的新手。我已经阅读了EE文档,但仍然发现了如何使用钩子的混淆
答案 0 :(得分: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对象时将其传递给clean方法。例如:
public function clean($sc){
print_r($sc);
}