在HYBBS1.4.0.18中加入了 新的插件机制
该机制优先级要高于 hook机制 说太多废话没啥用 直接用例子去说明 这是什么鬼
看这个文章前你必须知道之前的hook机制 以及之前的插件机制 , 否则你不知道这篇文章说什么鬼 首先你先必须创建一个插件. 这些步骤请到之前的 插件制作教程中查看, 如果你没看过 下面的东西你是完全看不懂的
首先创建一个插件, 已知插件名: hy_xxx 那么请在hy_xxx目录下创建文件 re.php 内容写入 <?php
return array(
'Action/Index.php'=>array(
're/a1'=>'re/b1'
)
); 可见 array 索引中写入了 'Action/Index.php'=>array( 're/a1'=>'re/b1' ) 这是什么鬼意思呢 ? 我他妈都忘记是什么鬼意思了
开个小玩耍 开个小玩耍 <?php
return array(
'Action/Index.php'=>array(
'目录名/关键字文件名'=>'目录名/替换值文件名'
)
); <?php
return array(
'Action/Index.php'=>array(
're/a1'=>'re/b1'
)
); Action/Index.php 需要修改的文件, 找到需要修改的部分 以下是论坛Action/Index.php的部分代码 <?php
namespace Action;
use HY\Action;
!defined('HY_PATH') && exit('HY_PATH not defined.');
class IndexAction extends HYBBS {
public function __construct(){
parent::__construct();
//{hook a_index_init}
}
public function Index(){
//{hook a_index_index_1}
$this->v('title',$this->conf['title']); //--------------这句
$pageid=intval(X('get.pageid')) or $pageid=1;
$type = X('get.type') or $type='New';
if($type != 'New' && $type != 'Btime')
$type='';
$this->v("type",strtolower($type));
...
...
...
..省略
比如我想替换 代码中 标注的那句 $this->v('title',$this->conf['title']);
替换为 (注意 必须保留原句) $this->v('title',$this->conf['title']);
echo 'test';
那如何做到呢 ? 再看一下 re.php 的内容 <?php
return array(
'Action/Index.php'=>array(
're/a1'=>'re/b1'
)
); 可见'Action/Index.php' 中的 're/a1'=>'re/b1' 是什么鬼呢? re/a1指的是 hy_xxx/re 目录下的 a1 文件 re/b1则是 hy_xxx/re 目录下的 b1文件 当然 re目录是可以自己定义名字的 (最好保留英文名) 最终的意思是指 查找 a1文件的内容 替换为 b1的文件的内容 所以我们需要在在a1文件中写入 $this->v('title',$this->conf['title']); 而 b1中写入 $this->v('title',$this->conf['title']);
echo 'test'; 这样就实现了 在Action/Index.php查找 a1文件的内容的关键字 替换为 a2文件里的内容
更多写法
<?php
return array(
'Action/Index.php'=>array(
're/a1'=>'re/b1',
're/a2'=>'re/b2'
),
'View/hy_boss/h.html'=>array(
're/h1'=>'re/j1',
're/h2'=>'re/j2'
),
目前支持修改的类型有 Action Model View
|