当前位置: 首页 > 文档资料 > ZTBCMS 中文文档 >

2.2.2 使用方法

优质
小牛编辑
131浏览
2023-12-01

行为管理使用

在使用该功能时,请你认真阅读一遍ThinkPHP - 行为扩展这章节, 需要有了这些预备知识。

CMS中的行为系统改写了ThinkPHP的系统行为实现app/Libs/System/Hook.class.php,与TP的行为管理方式 使用略有差异。

CMS中有部分模块使用到了行为管理进行开发。以Wap模块为例:

使用方法:

  1. 创建 Behavior

一般来说,写在对应模块的下 Behavior/ 下,命名格式遵循 XXXBehavior

图片

主要实现一个 run(&$data) 方法

<?php

namespace Wap\Behavior;

class WapBehavior {

    public function run(&$data) {
        if (MODULE_NAME == 'Content' && CONTROLLER_NAME == 'Index' && $this->isMobile()) {
            $catid = I('catid', 0, 'intval');
            $id = I('id', 0, 'intval');
            $parameter = $_GET;
            if ($catid && $id) {
                $action = 'shows';
            } else if ($catid && $id == 0) {
                $action = 'lists';
            } else {
                $action = 'index';
            }
            unset($parameter[C('VAR_MODULE')], $parameter[C('VAR_CONTROLLER')], $parameter[C('VAR_ACTION')]);
            redirect(U("Wap/Index/{$action}", $parameter));
        }
    }

    //判断是否属手机
    protected function isMobile() {
        ....
        return true;
    }

}
  1. 注册 Behavior 到行为管理

设置->行为管理->选择对应的行为进行编辑,规则参考行为规则使用说明

图片

图片

测试:用手机打开首页时,自动回跳转到Wap首页。(当然,最好打Log了)

如何自定义行为?

上述Wap模块只是使用到了系统默认的行为 app_begin ,那么如何创建自己的行为呢?

1.添加行为到行为系统

设置->行为管理->添加行为

图片

2.行为埋点触发

图片

更多可以参考行为管理最佳实践