钩子简单制作-tag加连接解说版

2020-03-20 186 次

钩子是贯穿X1的血管 他连通了X1全部脉络 插件和钩子组合就可以做出模块一样的东东了 一般我们做插件就把钩子一起做到一起了 但是有时候功能很小 插件有需要写很多文件怎么办 没事 钩子来帮忙 他是单文件 仅仅一个文件就可以实现你想要的小功能

下面我说个场景 我后台加了一个keyword 字段 作为内容关键字 关键字1,关键字2,关键词3  这样存储的 我想把他放到内容页底部当TAG用可以吗  答案是可以的 一个文件就足够 下面跟着我一步一步来实现这个小功能

application\common\hook  这个是钩子的目录 在这里我们创建一个 Keyword.php 

<?php
namespace app\common\hook;
class Keyword{ //钩子类名也就是文件名
	public $info=[
		//归属接口,必填 此钩子可以查看后台获得
		'hook_key'=>'cms_content_show', 
		//归属插件,可为空
		'plugin_key'=>'',
		//开发者
		'author'=>'suifeng',
		//开发者网站
		'author_url'=>'http://www.qibo168.com',
		//功能描述
		'about'=>'TAG搜索 手工创建一个keyword字段 以,或者空格 分割词 需安装搜索模块 内容页面 {$info.keyword} 调用'
	];
	public function run(&$data){
		// 这个钩子是内容页面内容字段还没显示之前的调用 $data 返给我们全部的数据了
		// 我们已经在模型中创建了 keyword 字段 是以,号或者空格风格分割这个字段的内容
		$detail = strpos($data['keyword'], ',') !== false ? explode(',', $data['keyword']) : explode(' ', $data['keyword']);
		//分割后给他加上搜索的连接
		foreach($detail AS $key=>$value){
			$url=url('search/index/lists',['keyword'=>$value]);
			$array[]="<a class=\"button3 white\" href=\"$url\" target=\"_blank\">$value</a>";
		}
		//加完连接我们把他转为字符串重新输出
		$data['keyword']=implode(" ",$array);
		return;
	}
}

模板中我们就可以用 {$info.keyword} 默认模板不需要加会自动加载 你会发现他已经有连接了

小文件实现大功能 


标签
声明:
1.本站的资源收集于互联网,仅供大家学习交流,请勿用于非法用途,否则后果自负!
2.如转载本站的原创文章,请勿必注明文章来源,对于不尊重原创的行为我们将追究责任