昨天升级了一个隐藏的功能,今天就简单的做个说明怎么用,反正也不能浪费不是 那就用内容页面关键词读取相关内容为例吧。

前台是你模型中已经存在keywords字段  关键词支持 空格分割,号分割 那么就开始新功能之旅吧。

我们在 application 目录中新建一个 api目录 api目录再新建一个 index 目录 也就是application\api\index 下面新建一个Keywords.php

<?php
namespace app\api\index;
/**
* 动态获取内容关键词并读取相关内容
* Class Keywords
* @package app\api\index
*/
class Keywords{
public function index($text){
$cfg=unserialize($text['cfg']);
$biao=db($cfg['systype'].'_content')->where('id',$cfg['id'])->find(); // 查找这个内容的所在模型
$tags=db($cfg['systype'].'_content'.$biao['mid'])->where('id',$cfg['id'])->find(); //查找到模型后去模型表读取这个内容的信息
$detail=strpos($tags['keywords'],',')!==false?explode(',',$tags['keywords']):explode(' ',$tags['keywords']); //根据这个信息的 keywords 字段进行拆分检索 keywords 可以是自己定义的任意字段
$where=[];
$where_tit=[];
array_push($where_tit,'like');
$ARR=[];
for($i=0;$i<count($detail);$i++){
array_push($ARR,'%'.$detail[$i].'%');
}
array_push($where_tit,$ARR);
array_push($where_tit,'OR');
$where['title']=$where_tit;
$array=db($cfg['systype'].'_content'.$biao['mid'])->where($where)->order($cfg['order'],$cfg['by'])->limit($cfg['rows'])->select();
foreach($array AS $k=>$rs){
$data[$k]['title']=$rs['title'];
$data[$k]['create_time']=$rs['create_time'];
$data[$k]['picurl']=tempdir($rs['picurl']);
$rs['content']=preg_replace('/<([^<]*)>/is',"",$rs['content']);
$data[$k]['content']=get_word($rs['content'],500);
$data[$k]['url']=url($cfg['systype'].'/content/show',['id'=>$rs['id']],'html',true);
}
return $data;
}
}

临时拼凑的代码bug难免 仅仅是示例。

怎么使用呢?

template\index_style\default\cms\content\pc\_show.htm 强烈建议自己复制default一份再改不然升级会覆盖

在你需要的地方加上

{qb:tag name="pc_show" rows="9" type="cms" union='id' class='app\\api\\index\\Keywords@index'}

{$rs.title}

{$rs.url} 内容网址

{$rs.title} 标题

{$rs.create\_time} 发布时间

{$rs.picurl}  图片

{$rs.content}  内容

{/qb:tag}

rows 调用数量

type 调用的模块 你shop模块就写 =shop

order 排序

复制

是不是很好用 原理是union动态读取内容的id根据内容id查找所在模型和内容并把keywords拆分 用他作为关键词去查找内容。

齐博x1再来个抛砖引玉 内容页根据关键词调用相关内容 新功能哦!的更多相关文章

  1. 齐博x1标签实例:标签的嵌套用法,调用聚合数据

    齐博标签非常强大,可以让不懂程序的你,轻松就能实现所见即所得. 下面跟大家讲解一下,最复杂的运用, 同时使用了union 动态变量参数 与 分页处理标签 比如下面这张图,不仅仅想调用圈子,还想同时调用 ...

  2. 最近无聊搭建一个齐博X1的下载页面

    https://layui.wanxiangsucai.com/ 用layui官方镜像站的模版 改了个齐博X1的下载页面 https://x1.wanxiangsucai.com/ 哈哈哈!!! 还有 ...

  3. 齐博x1齐博首创钩子的使用方法

    齐博X1有两套钩子体系,第一套是基于TP思路设计的.跟外面的大同小异.现在重点讲一下第二套我们首创的使用方法. 首先说一下如何埋钩子,这个跟TP思路的钩子类似,就是在页面的任何地方加入如下代码即可如下 ...

  4. 齐博x1第四季《模块插件的制作》系列21-公共表单器的参数选项(7)

    password 密码类型 和text一样,只不过type类型是password,密码类型输入时,显示星号.即Html中的密码框类型 icon 字体图标类型 和列表页一样,把css的字体图标引入到了表 ...

  5. 齐博x1到底是怎么的存在?

    齐博X1是齐博软件基于thinkphp5开发的内容管理系统,拓展性非常强,后台一键升级,后台提供丰富的频道模块云市插件市场.风格市场.钩子市场,所有都是一键在线安装. 系统已经对接好QQ.微信登录,同 ...

  6. 齐博X1到底是个什么鬼?

    什么是齐博/齐博CMS之X1? 齐博X1是齐博软件基于thinkphp5开发的内容管理系统,拓展性非常强,后台一键升级,后台提供丰富的频道模块云市插件市场.风格市场.钩子市场,所有都是一键在线安装. ...

  7. 齐博x1标签实例:标签如何调用论坛内容

    论坛的内容不像CMS其它模块可以直接用变量 {$rs.content} 因为论坛的内容数据表是放在另一个表的,单独分开的. 当前也是为了考试效率问题而这样设计的. 所以他的调用要用下面的代码 {:fu ...

  8. 齐博x1服务器性能太差,调整系统升级每次校验的文件数

    系统升级需要校验本地的文件是否被修改过,系统默认每次检验1千个文件,一般来说需要分四到五页来处理,如下图所示. 如果你的服务器性能太差的话,就需要手工把数值调小.把下面的代码复制出来.进入后台数据库管 ...

  9. 齐博x1标签实例:调用多个圈子同时调用贴子

    下面讲解,在首页,如何调用圈子的同时也调用他们相关的贴子. 单单调用圈子,就像调用文章一样,很多人都能轻松实现,比如下面的代码 {qb:tag name="xxx" type=&q ...

随机推荐

  1. 倒计时2日!基于 Apache DolphinScheduler&TiDB 的交叉开发实践,从编写到调度让你大幅提升效率

    当大数据挖掘成为企业赖以生存.发展乃至转型的生命,如何找到一款好软件帮助企业满足需求,成为了许多大数据工程师困扰的问题.但在当下高速发展的大数据领域,光是一款好软件似乎都不足以满足所有场景业务需求,许 ...

  2. ceph 006 rbd高级特性 rbd快照 镜像克隆 rbd缓存 rbd增量备份 rbd镜像单向同步

    版本 [root@clienta ~]# ceph -v ceph version 16.2.0-117.el8cp (0e34bb74700060ebfaa22d99b7d2cdc037b28a57 ...

  3. 关于linux的一点好奇心(四):tail -f文件跟踪实现

    关于文件跟踪,我们有很多的实际场景,比如查看某个系统日志的输出,当有变化时立即体现,以便进行问题排查:比如查看文件结尾的内容是啥,总之是刚需了. 1. 自己实现的文件跟踪 我们平时做功能开发时,也会遇 ...

  4. mybatis 14: 多对一关联查询

    业务背景 根据订单id查询订单的信息,以及该订单所属的客户的基本信息(不包括该客户自己的订单信息) 两张数据表 客户表 订单表 实体类 客户实体类:Customer private Integer i ...

  5. openstack 创建虚拟机失败

    虚拟机创建失败    用户创建一台虚拟机,虚拟机使用4个网络平面,所以虚拟机选择了4个不同平面的网络,创建虚拟机一直在孵化的过程中,最后创建虚拟机失败. 失败后返回的报错日志 Build of ins ...

  6. TypeScript 项目报错 Unknown file extension ".ts"

    下图是该问题的详细报错截图,经过多次捣鼓,初步猜测是模块有问题,要用 ES Module 还真是曲折,最不容易出错的就是 CommonJS 模块: 在百度.Bing 上搜索了好久的帖子也都没有相关的解 ...

  7. 「题解报告」CF1067A Array Without Local Maximums

    大佬们的题解都太深奥了,直接把转移方程放出来让其他大佬们感性理解,蒟蒻们很难理解,所以我就写了一篇让像我一样的蒟蒻能看懂的题解 原题传送门 动态规划三部曲:确定状态,转移方程,初始状态和答案. --神 ...

  8. OpenJudge 1.5.39 与7无关的数

    39:与7无关的数 总时间限制: 1000ms 内存限制: 65536kB 描述 一个正整数,如果它能被7整除,或者它的十进制表示法中某一位上的数字为7,则称其为与7相关的数.现求所有小于等于n(n ...

  9. KingbaseES CTID 与 Oracle ROWID

    熟悉oracle的人都知道ROWID可用于快速的数据访问,KingbaseES 由于自身MVCC机制的原因,ctid 作为 oracle rowid 的替代方案不合适,但currtid 还是基本可以满 ...

  10. Docker安装Openresty总结

    1. 启动Docker systemctl start docker 2. 查询有没有openresty镜像 docker search openresty -s 30 -s 30 stars数大于3 ...