Экспрессинженерные крючки - PullRequest
4 голосов
/ 20 марта 2012

У меня есть форма безопасного взломщика, которая отправляет запись. Форма состоит из заголовка, url_title и описания. Я хочу создать ловушку расширения, которая отфильтровывает определенные слова, если они существуют в title записи.

У меня уже есть функция, которая позаботится об очистке function clean(){....}. Я понимаю, что нам нужно использовать хук расширения, чтобы мы могли очистить заголовок после сохранения записи.

Какой дополнительный крюк мне нужно использовать для этого. Можете ли вы дать мне полный пример крючка расширения. Я очень хорошо разбираюсь в PHP, но все еще плохо знаком с хуками и тем, как их следует реализовывать. Я уже прочитал документацию по EE, но все еще не совсем понимаю, как используется ловушка

1 Ответ

5 голосов
/ 20 марта 2012

Сначала зайдите на 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);         

}

Onceметод был вызван, вы можете начать уборку.Убедитесь, что вы передаете объект safecracker своему чистому методу при его определении.Например:

public function clean($sc){
    print_r($sc);
}
...