第一步:后台需要开启伪静态
第二步:执行SQL语句,创建tag标签 id表
mysql语句
CREATE TABLE `ay_tag_ex` (`id` int(11) NOT NULL AUTO_INCREMENT,`tag` varchar(255) COLLATE utf8_unicode_ci NOT NULL,PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
sqlite语句
create table ay_tag_ex ([id] integer PRIMARY KEY autoincrement, -- 设置主键[tag] varchar (50));
第三步:在模型添加保存数据的方法
找到 /apps/admin/model/content/TagsModel.php
文件,在文件最后一个{
前面增加如下代码
// <!-- tag修改 -->public function getTagId($tag){$one = parent::table('ay_tag_ex')->where("tag='{$tag}'")->find();if ($one){$tag = $one->id;}return $tag;}public function getTagName($id){$tag = '';$one = parent::table('ay_tag_ex')->where("id={$id}")->find();if ($one){$tag = $one->tag;}return $tag;}public function saveTagEx($tags){$tags_arr = explode(',',$tags);foreach ($tags_arr as $tag) {$one = parent::table('ay_tag_ex')->where("tag='{$tag}'")->find();if (empty($one)){$add = ['tag'=>$tag];parent::table('ay_tag_ex')->insert($add);}}}public function saveAllTagEx(){$contents = parent::table('ay_content')->select();foreach ($contents as $content) {$this->saveTagEx($content->tags);}return true;}
第四步:修改文章内容新增和修改保存逻辑
打开文件 /apps/admin/controller/content/ContentController.php
,找到如下代码
namespace appdmincontrollercontent;
在下方添加
use appdminmodelcontentTagsModel;
继续找到
if (! ! $id = $this->model->addContent($data)) {
在下方添加
// <!-- tag修改 -->$tgMd = new TagsModel();$tgMd->saveTagEx($tags);$tgMd->saveAllTagEx();
继续找到
if ($this->model->modContent($id, $data)) {
在下方添加
// <!-- tag修改 -->$tgMd = new TagsModel();$tgMd->saveTagEx($tags);$tgMd->saveAllTagEx();
完成上面几步,添加和修改文章,就会有映射了,也就是说 ay_tag_ex
表会有id和标签名的对应关系了。
第五步:修改前端访问tag的逻辑
打开文件 /apps/home/controller/ParserController.php
, 找到如下代码
namespace apphomecontroller;
在下方添加
use appdminmodelcontentTagsModel;
继续找到如下代码
if ($fuzzy) {$where2[] = "a.tags like '%" . $get_tag . "%'";} else {$where2[] = "a.tags='" . $get_tag . "'";}
替换成
// <!-- tag修改 -->list($tid,$tml) = explode('.',$get_tag);$tgMd = new TagsModel();$tag_name =$tgMd->getTagName($tid);if ($fuzzy) {$where2[] = "a.tags like '%" . $tag_name . "%'";} else {$where2[] = "a.tags='" . $tag_name . "'";}
继续搜索找到如下代码(大概1840行
)
$url_rule_type = $this->config('url_rule_type') ?: 3;
在下方添加
// <!-- tag修改 -->$tagMd = new TagsModel();$id = $tagMd->getTagId($value['tags']);$idTag = $id.".html";
并将 urlencode($value['tags'])
修改成 $idTag
继续找到
$link = $link . '?tag=' . $idTag;
修改成
// <!-- tag修改 -->$link = $link . 'tag/' . $idTag;
第六步:修改TagController.php文件
打开 /apps/home/controller/TagController.php
文件,找到如下代码(大概33行
)
if (defined('RVAR')) {$_GET@['tag'] = RVAR;}
在下方添加
// <!-- tag修改 -->$tag_arr = explode('.',$_GET@['tag']);list($id,$p) = explode('_', $tag_arr[0]);$_GET@['tag'] = $id.".html";$_GET@['page'] = $p ? $p : 1;$tagMd = new ppdminmodelcontentTagsModel();$name = $tagMd->getTagName($id);$_GET@['tag_name'] = $name;
第七步:修改 coreiewPaging.php
文件(处理分页)
找到
if ($page == 1) {if ($qs) {return $this->getPreUrl() . '?' . $qs;} else {return $this->getPreUrl();}} else {if ($qs) {return $this->getPreUrl() . '?' . $qs . '&page=' . $page;} else {return $this->getPreUrl() . '?page=' . $page;}}
替换成
if ($page == 1) {if ($qs) {return $this->getPreUrl() . '?' . $qs;} else {if(strpos($this->getPreUrl(),'/tag/') !== false){ //判断是否tag页面$pattern="/(_d+)/i";$r="";$a = preg_replace($pattern,$r,$this->getPreUrl());$a = str_replace(".html", "", $a) . '.html';return $a;}else{return $this->getPreUrl();}}} else {if ($qs) {return $this->getPreUrl() . '?' . $qs . '&page=' . $page;} else {if(strpos($this->getPreUrl(),'/tag/') !== false){$pattern="/(_d+)/i";$r="";$a = preg_replace($pattern,$r,$this->getPreUrl());$a = str_replace(".html", "", $a) . '_' . $page.'.html';return $a;}else{return $this->getPreUrl() . '?page=' . $page;}}}
第八步:修改IndexController.php
打开 ppshomecontrollerIndexController.php
,找到
if ($url_rule_type == 2 && stripos(URL, $_SERVER['SCRIPT_NAME']) !== false) { // 禁止伪静态时带index.php访问_404('您访问的内容不存在,请核对后重试!');}$path = P;
修改成
if (stripos(URL, '/tag/') !== false){$arr = explode('/',URL);$p = $arr[0].$arr[1];$path = "/".$p."/";foreach ($arr as $k=>$val) {if ($val=='tag'){break;}}$tag_v = $arr[++$k];$parr = explode('_',rtrim($tag_v,'.html'));if (!strpos(URL,'.html')){$url = ((int)$_SERVER['SERVER_PORT'] == 80 ? 'http://' : 'https://') . $_SERVER['HTTP_HOST'];$url = $url.rtrim(URL,'/');//替换if (isset($parr[1])){$path2 = "/".$p."_".$parr[1]."/";$url = str_replace($path,$path2,$url);}else{//获取当前类目$sort = $this->model->getSort($p);if (!$sort){//去掉$p2 = strstr($p,"_",true);$path2 = "/".$p2."/";$url = str_replace($path,$path2,$url);}}$url = str_replace($tag_v,$parr[0] .'.html',$url);header('Location: '.$url);}$_GET@['page'] = $parr[1] ? $parr[1] : 1;$_GET@['tag'] =$parr[0] .'.html';$tagMd = new ppdminmodelcontentTagsModel();$name = $tagMd->getTagName($parr[0]);$_GET@['tag_name'] = $name;}else{if ($url_rule_type == 2 && stripos(URL, $_SERVER['SCRIPT_NAME']) !== false) { // 禁止伪静态时带index.php访问_404('您访问的内容不存在,请核对后重试!');}$path = P;}
tag列表调佣tag标签名称
{$get.tag_name}
完成。
相关知识点: pbootcms pbootcms标签伪静态 tags伪静态- 1PbootCMS内容轮播多图增加标题和描述
- 2蓝天采集器工具里面能否增加一项,把采集到的数据转换为时间戳
- 3蓝天采集器请问什么时候支持多页采集?
- 4蓝天采集器后台更新系统失败
- 5蓝天采集器发布数据库
- 6蓝天采集器js分页怎么解决
- 7蓝天采集器如何将采集到的文章发布到米拓的新闻资讯里
- 8蓝天采集器采集到的磁力链接前面有固定网址怎么去除?!
- 9pbootcms栏目内容-详情页设置输出html
- 10蓝天采集器wordpress发布到网站数据库需怎样设置入库规则?
- 11如何添加阿里云服务器安全组规则
- 12手把手教你做PbootCMS自动替换图片地址为七牛云cdn镜像链接操作教程
- 13蓝天采集器在测试爬取字段的时候,一直在转圈
- 14蓝天采集器BUG反馈:标题排重无法正常使用
- 15蓝天采集器开启自动采集设置PHP-CLI(命令行)教程
- 16163K网站系统登录滑动验证-阿里人机验证配置教程
- 17Xpath不固定元素列表规则写法
- 18蓝天采集器又有新的问题!版主来哈。关于采集的
- 19蓝天采集器是否可以利用火车头的免登录发布程序发布数据呢?
- 20宝塔控制面板php.ini文件在那个文件目录里面
-
阿里云linux系统服务器CentO···
相信许多的站长朋友们刚接触服务器的时候都会在操作系统上面纠结,linux系统占用内存小运行速度快,但是都是使用快捷命令来操作的,刚开始肯定是看不懂的。今天呢就跟着我们一步一步来操作,首先在阿里云购买服务器操作系统选择linux系统,环境选择···
-
{pboot@sql sql="语句···
PbootCMS V3.0.4 build 2021-02-14版本新增了{pboot@sql sql="语句"}[sql:字段]{/pboot@sql}万能循环标签。实测支持多表联合查询,速度OK,下面来看下群友分享的使用代码:{pboo···
-
蓝天采集器采集微信公众号操作教程
微信公众号是一个活跃量非常高的信息流平台,许多的站长都有自己的公众号,在上面发布了许多的信息,由于平台没有导出的功能,发布的信息比较多,手动复制也不太现实,所以呢我们就需要用一些工具到进行导出到我们需要的平台上面。微信公众号的内容有2个途径···
-
163K系统S2版升级S3前注意事项···
1、登录网站后台,备份所有广告位(图片,链接等),保存到本地。2、自动升级开始前,备份数据库默认是勾选的,请不要取消勾选。3、自动升级前,稳妥起见,建议您先在网站后台手动备份下数据库,若备份成功,登录服务器,在网站根目录的bak下确保.ba···
-
蓝天采集器能不能采集内容分页呀。我看···
能不能采集内容分页呀。我看了好像不行!!!!!! 内容分页正在开发中,下个版本加入 admin 发表于 2018-3-22 11:47 内容分页正在开发中,下个版本加入 下一个版本大概什么时候会出来呀