doyocms二次开发简单标签功能

在这里为doyocms文章添加简单的标签功能,主要修改的文件为/source/article.php,再就是/template/你的风格文件夹/article/下的两个文件list.html和article.html,同时再添加一个list_tag.html文件到article文件夹下,下面我们来操作下。

首先在后台栏目分类里面添加个一个字段,vchar型,255个字节。这个字段标识为tag

首先在文章的控制器article.php文件内添加一个方法,如下:

function listtag(){
$tag=$this->syArgs('tag',1);
if($tag){
$w=" where tag like '%".$tag."%' ";
}
$order=' order by orders desc,addtime desc,id desc';
$sql='select id,tid,title,style,trait,gourl,addtime,hits,litpic,orders,price,mrank,mgold,isshow,htmlurl,htmlfile,description,user,body,tag from '.$this->db.' a left join '.$this->db.'_field b on (a.id=b.aid)'.$w.$order;
$total_page=total_page($this->db."_field".$w);
$this->lists = $this->Class->syPager($this->syArgs('page',0,1),7,$total_page)->findSql($sql);
$pages=$this->Class->syPager()->getPager();
$this->pages=pagetxt($pages);
$list_c=$this->lists;
foreach($list_c as $k=>$v){
$list_c[$k]['tag']=str_ireplace($this->syArgs('tag',1),'<i>'.$this->syArgs('tag',1).'</i>',$v['tag']);
$list_c[$k]['url']=html_url('article',$v);
}
$this->lists=$list_c;
$this->positions='<a href="'.$GLOBALS["WWW"].'">首页</a>  &gt; '.$this->syArgs('tag',1);
$this->display('article/list_tag.html');
}
}

然后回到文章列表页list.html,再列表页添加{$v[tag']}既为调用了标签,如果你后台添加的标签自定义字段填写的时候是这样的写的“xx,xx,xx”,前台调用这样可能出现的会是“xx,xx,xx”,和后台一样的,这里需要处理下。

将{$v[tag']}换成以下代码:(我的标签是用一个空格隔开的,如果你们是用英文逗号隔开的话下面红色的地方要自己改下)

<?php
$t=explode(" ",$v['tag']);
foreach($t as $value){
echo "<span><a href='/index.php?c=article&a=listtag&tag=".$value."' target='_blank'>".$value."</a></span>";
}
?>

如果是内容页调用则是:

<?php
$t=explode(" ",$article['tag']);
foreach($t as $value){
echo "<span><a href='/index.php?c=article&a=listtag&tag=".$value."' target='_blank'>".$value."</a></span>";
}
?>

下面我们来修改添加的标签列表页list_tag.html,这个页面也普通列表页写法就是一样的啦!


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/73.html