我有一个安全盗窃器表单,可以提交一个条目。表单由标题、url_title和description组成。我想创建一个扩展钩子,如果某些单词存在于条目的title中,它会将它们过滤掉。
我已经有了一个负责清理function clean(){....}的函数。我知道我们需要使用扩展钩子,这样我们就可以在保存条目时清除标题。
为此,我需要使用什么扩展钩子。你能给我一个完整的扩展钩子的例子吗?我对PHP很在行,但对钩子和它们应该如何实现来说还是个新手。我已经阅读了EE文档,但仍然对如何使用钩子感到困惑
发布于 2012-03-20 09:37:25
首先访问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);
}https://stackoverflow.com/questions/9779055
复制相似问题