trk / processwire-event-loader
ProcessWire CMS/CMF 的事件加载模块,由 ALTI VE BIR 提供。
dev-main
2023-01-04 23:36 UTC
Requires
- php: >=7.0
- hari/pw-module: ~1.0
This package is auto-updated.
Last update: 2024-09-05 03:22:05 UTC
README
EventLoader 模块允许您从事件文件中加载事件。
要求
- ProcessWire
3.0或更高版本 - PHP
7.0或更高版本
安装
从模块目录安装模块
通过 Composer
composer require trk/processwire-event-loader
通过 git clone
cd your-processwire-project-folder/
cd site/modules/
git clone https://github.com/trk/EventLoader.git
- 模块将检查以下文件夹以查找事件
/site/templates/events
/site/templates/configs/events
/site/modules/*/events
/site/modules/*/configs/events
- 从
site/ready.php文件加载事件
<?php namespace ProcessWire; if(!defined("PROCESSWIRE")) die(); EventLoader::load(__DIR__ . '/templates', 'ready.');
- 事件文件:
site/templates/configs/events/ready.hello-world.php
<?php namespace ProcessWire; class HelloController { public function greeting() { echo 'Hello World !'; exit; } } return [ // 'run' => true, // Also you can pass run option for this file 'events' => [ '/hello-world' => [HelloController::class, 'greeting'], 'Page::private' => [ 'run' => wire()->user->isLoggedin() 'type' => 'method', 'fn' => function (HookEvent $e) { $e->return = 'This will run, if user logged in'; } ], 'Page::hello' => [ 'type' => 'method', 'fn' => function (HookEvent $e) { $message = is_string($e->arguments(0)) ? $e->arguments(0) : ''; $e->return = $message; } ] ] ];
- 用法
<?php echo $page->hello('World');