推广 热搜: 公司  快速  中国  上海  未来    企业  政策  教师  系统 

易优cms如何从文章内容中搜索关键字?改造过程

   日期:2024-10-31     作者:caijiyuan    caijiyuan   评论:0    移动:http://kaire.xrbh.cn/news/5600.html
核心提示:易优官方默认的搜索都是从标题检索,这样速度快,效果也不错。但是也有一些用户想要从文章内容中搜索关键词,那么如何处理呢?我

易优官方默认的搜索都是从标题检索,这样速度快,效果也不错。但是也有一些用户想要从文章内容中搜索关键词,那么如何处理呢?

易优cms如何从文章内容中搜索关键字?改造过程

我在问答栏目搜索了半天,没有一个满意的答案,无奈只好自己动手,记录自己的改造过程。

第一步,确定思路。易优有一个sql标签,可以从数据库调用内容展示在前台。我们可以利用这一点,达到自己的目的。

image.png

已知易优的文章内容存放在ey_article_content表里面,我们可以根据传入的关键词搜索就行了,思路如下:

{eyou:sql sql="select * from ey_article_content where content like '%关键词%'" empty='没有找到想要的结果'}

{$field.content}

{/eyou:sql}

其中,%关键词%里面的关键词为变量,可以用$eyou.field.keywords替换,但是实际过程中出现搜索不出结果或者提示“sql属性值不能为空”的错误提示,可以用易优的定义变量标签解决。{eyou:assign name="keywords" value="$eyou.field.keywords"},然后sql标签里面引用%$keywords%即可正确展示预期结果。

不过ey_article_content表里面只有aid,content,add_time,update_time这几个字段,没有我们想要的title字段,所以还要想办法从其他表查询,也就是ey_archives表里面。

但是还可以借用arcview单条文档标签,传入aid变量,就可以快速生成文档列表,代码如下

{eyou:arcview aid="$field.aid" id="field2"}

<a href=https://www.eyoucms.com/ask/list_1_10/"{$field2.arcurl}" title="{$field2.title}">【{$field2.title}】</a>

<div>{$field.content,$keywords|diy_replace}</div>

<span>{$field.add_time|MyDate='Y-m-d',###}</span>

</li>

{/eyou:arcview}

到这里基本就完成了内容的展示,但是细心的小伙伴会发现$field.content调出来是带标签的纯文本格式,这就需要我们格式化内容,并加工成自己想要的形式。

需要我们自己写一个函数进行格式处理,不过也可以用官方自带的html_msubstr函数截取字符串处理。

打开extend文件夹function.php,最下方写入自己的函数:

function diy_replace($content,$keywords){

$a=['&lt;','&gt;'];

$b=['<','>'];

$content=str_replace($a,$b,$content); 

$content=str_replace("  ","",$content);

$content=strip_tags($content);

$content=str_replace("$keywords","<font color=red>$keywords</font>",$content);

$content=mb_substr($content,0,255);

return $content;


}

这个函数首先是把数据库存储的&lt;  &gt;  替换成<  >,构造html标签,接着替换形成的空格,然后过滤掉html标签,提取纯文本,再然后将关键词替换成红色字体,截取0-255个字符(一个汉字占3个字符),最后返回处理好的内容,展示在前台。

本文地址:http://syank.xrbh.cn/news/5600.html    迅博思语资讯 http://syank.xrbh.cn/ , 查看更多
 
 
更多>同类资讯
0相关评论

新闻列表
企业新闻
推荐企业新闻
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号