海豚CMS中的鉤子功能在Ci基礎(chǔ)上得到了功能增強(qiáng),使得您可以在不修改系統(tǒng)核心文件的基礎(chǔ)上來改變或增加系統(tǒng)的核心運(yùn)行功能。 當(dāng)CMS運(yùn)行后,它會產(chǎn)生出一個特殊的進(jìn)程。 當(dāng)然,您可以自定義一些動作來替代程序運(yùn)行過程中的某些階段。例如,您可以在控制器剛剛載入前或剛剛載入后來運(yùn)行特定的腳本,或者在其他時刻來觸發(fā)您的腳本。
一、掛鉤點(diǎn)
掛鉤點(diǎn)就是【鉤子名稱】分類列出的鉤子動作,鉤子名稱就是掛鉤點(diǎn)的名稱。
二、定義鉤子配置
建議將鉤子配置在config/my_hooks.php中,打開這個文件如下圖所示:
<?php /** * 我的鉤子定義配置 */ defined('BASEPATH') OR exit('No direct script access allowed'); /* $hook['鉤子名稱'][] = array( 'class' => '類名稱', 'function' => '方法名稱', 'filename' => '鉤子文件.php', 'filepath' => 'hooks', ); */
參數(shù) | 介紹 |
---|---|
class | 就是類的名稱 |
function | 方法名稱 |
filename | 鉤子文件的php文件名稱 |
filepath | 鉤子路徑,默認(rèn)相對于dayrui/目錄,支持絕對目錄 |
同一掛鉤點(diǎn)的多次引用
本例以【會員注冊之前】鉤子為例
$hook['member_register_before'][] = array( 'class' => 'my_hooks', 'function' => 'reg', 'filename' => 'my_hooks.php', 'filepath' => 'hooks', );
將以上代碼放到my_hooks.php中
三、鉤子運(yùn)行程序
上面配置好了鉤子文件,這里就改寫鉤子的運(yùn)行程序了
按上面的配置創(chuàng)建文件/dayrui/hooks/my_hooks.php。
<?php /** * Created by PhpStorm. * User: chunjie * Date: 14-6-23 * Time: 17:11 */ class my_hooks { public $ci; /** * 構(gòu)造函數(shù) */ function __construct() { $this->ci = &get_instance(); } function reg($data) { if ($data['username'] == 'admin') { $this->ci->member_msg('親,admin名稱不允許注冊哦'); } } }
上面的以上就是用戶輸入“admin”提交注冊時,會返回上段代碼的提示,這就是鉤子的優(yōu)勢,不需要修改程序源代碼。
文檔最后更新時間:2014-06-27 15:52:02