在这里为doyocms文章添加简单的标签功能,主要修改的文件为/source/article.php,再就是/template/你的风格文件夹/article/下的两个文件list.html和article.html,同时再添加一个list_tag.html文件到article文件夹下,下面我们来操作下。
首先在后台栏目分类里面添加个一个字段,vchar型,255个字节。这个字段标识为tag
首先在文章的控制器article.php文件内添加一个方法,如下:
01.function listtag(){02.$tag=$this->syArgs('tag',1);03.if($tag){04.$w=" where tag like '%".$tag."%' ";05.}06.$order=' order by orders desc,addtime desc,id desc';07.$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;08.$total_page=total_page($this->db."_field".$w);09.$this->lists = $this->Class->syPager($this->syArgs('page',0,1),7,$total_page)->findSql($sql);10.$pages=$this->Class->syPager()->getPager();11.$this->pages=pagetxt($pages);12.$list_c=$this->lists;13.foreach($list_c as $k=>$v){14.$list_c[$k]['tag']=str_ireplace($this->syArgs('tag',1),'<i>'.$this->syArgs('tag',1).'</i>',$v['tag']);15.$list_c[$k]['url']=html_url('article',$v);16.}17.$this->lists=$list_c;18.$this->positions='<a href="'.$GLOBALS["WWW"].'">首页</a> > '.$this->syArgs('tag',1);19.$this->display('article/list_tag.html');20.}21.}
然后回到文章列表页list.html,再列表页添加{$v[tag']}既为调用了标签,如果你后台添加的标签自定义字段填写的时候是这样的写的“xx,xx,xx”,前台调用这样可能出现的会是“xx,xx,xx”,和后台一样的,这里需要处理下。
将{$v[tag']}换成以下代码:(我的标签是用一个空格隔开的,如果你们是用英文逗号隔开的话下面红色的地方要自己改下)
01.<?php02.$t=explode(" ",$v['tag']);03.foreach($t as $value){04.echo "<span><a href='/index.php?c=article&a=listtag&tag=".$value."' target='_blank'>".$value."</a></span>";05.}06.?>
如果是内容页调用则是:
01.<?php02.$t=explode(" ",$article['tag']);03.foreach($t as $value){04.echo "<span><a href='/index.php?c=article&a=listtag&tag=".$value."' target='_blank'>".$value."</a></span>";05.}06.?>
下面我们来修改添加的标签列表页list_tag.html,这个页面也普通列表页写法就是一样的啦!
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://sulao.cn/post/72
评论列表