帖子菜单

HYBBS 新插件机制开发教程

admin 2016-10-5

在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


ins

# 1楼 2016-10-5 点评

大概了解..感谢大神更新分享!

intern

# 2楼 2016-10-5 点评

 666,简直屌炸天d(ŐдŐ)

mingzi

# 3楼 2017-5-22 点评

 

@intern同感!!!

 

踩 (1)
赞 (4)
查看 (11299)
登陆后才可发表内容