在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
历史资源提醒--必看
该页面资源/教程来自原魔趣吧历史资源转移,因发布历史久远,部分资源/教程可能已失效或无法在最新版程序中安装使用!DZ资源建议在Discuz3.4及以下版本使用,PHP版本建议5.6。资源仅提供做代码研究学习使用!
因改版,部分贴内链接将无法正常跳转,如链接失效或未正常跳转,请利用站内搜索功能搜索资源名称获取对应资源!