表情发动机挂钩

时间:2012-03-19 22:46:45

标签: expressionengine

我有一个提交条目的安全表格。表单由title,url_title和description组成。我想创建一个扩展挂钩,如果它们存在于条目的title中,则会过滤掉某些单词。

我已经有一个负责清洁的功能function clean(){....}。我知道我们需要使用扩展挂钩,以便我们可以在保存条目时清除标题。

我需要使用什么扩展钩子。你能给我一个扩展钩子的完整例子吗?我非常擅长PHP,但仍然是钩子以及它们应该如何实现的新手。我已经阅读了EE文档,但仍然发现了如何使用钩子的混淆

1 个答案:

答案 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);
}