加入收藏 | 设为首页 | 会员中心 | 我要投稿 大连站长网 (https://www.0411zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 经验 > 正文

Phpcms V9 栏目列表数据调用之文章标签Tag调用办法

发布时间:2021-12-18 12:12:19 所属栏目:经验 来源:互联网
导读:早在今年三月份的时候,与大家在Phpcms V9 栏目列表调用文章点击量及评论数量方法文章中分享了PC V9在频道页、列表页、文章页面取得文章点击量及评论数量的调用方法,今天CMSYOU在这里,继续说列表页数据调用的问题. 先分享一段最新在客户定制中的一个例子: Ph
早在今年三月份的时候,与大家在Phpcms V9 栏目列表调用文章点击量及评论数量方法文章中分享了PC V9在频道页、列表页、文章页面取得文章点击量及评论数量的调用方法,今天CMSYOU在这里,继续说列表页数据调用的问题.
 
先分享一段最新在客户定制中的一个例子:
 
 
 
Phpcms V9 栏目列表数据调用之文章标签Tag调用方法
 
可以看到,这个列表中,每篇文章的数据由标题、发布时间、阅读数、评论数、缩略图、摘要、文章关键词标签Tag组成.
 
那么具体怎么做到呢?直接分享调用代码:
 
{pc:content action="lists" catid="$catid" num="10" order="id DESC" page="$page"}
{loop $data $r}
{php $db = pc_base::load_model('hits_model');   $_r = $db->get_one(array('hitsid'=>'c-'.$modelid.'-'.$r[id])); $views = $_r[views]; }
{php $comment_tag = pc_base::load_app_class("comment_tag", "comment"); $comment_total = $comment_tag->count(array('commentid'=>'content_'.$catid.'-'.$r[id].'-'.$modelid));}
    <div class="cmsyouunit">
        <h1><a href="{$r[url]}" target="_blank" title="{$r[title]}">{$r[title]}</a></h1>
        <h4>发表于<span class="ago">{date('Y-m-d H:i:s',$r[inputtime])}</span>|<span class="view_time">{if $views}{$views}次阅读{else}哇,这是崭新的文章!{/if}</span>|<span class="num_recom">{if $comment_total}{$comment_total}{else}0{/if}条评论</span></h4>
        <dl>  
            <dt>{if $r[thumb]}<a href="{$r[url]}" target="_blank"><img src="{thumb($r[thumb],200,135)}" alt="{$r[title]}" /></a>{/if}</dt>
            <dd>{str_cut(strip_tags($r[description]), 398)}</dd>
        </dl>
        <div class="tag">
{php $keywords = explode(' ',$r[keywords]);}
{loop $keywords $keyword}
<a href="{APP_PATH}index.php?m=content&c=tag&catid={$catid}&tag={urlencode($keyword)}" target="_blank">{$keyword}</a>
{/loop}
        </div>
</div>
{/loop}
<div id="pages" class="text-c">{$pages}</div>
{/pc}
大家对着图看代码就会明白了吧?也就是说,这一段起到了调用文章标签Tag的作用:
{php $keywords = explode(' ',$r[keywords]);}
{loop $keywords $keyword}
<a href="{APP_PATH}index.php?m=content&c=tag&catid={$catid}&tag={urlencode($keyword)}" target="_blank">{$keyword}</a>
{/loop} //Cuoxin.com
中间用了{urlencode($keyword)}这种urlencode路径格式,避免一些浏览器不支持中文,当然浏览器支持中文的将直接显示中文.
 
大家都知道,Phpcms V9默认的标签Tag的路径URL是:http://www.cmsyou.com/index.php?m=content&c=tag&catid=10&tag=cmsyou
 
这样的方式是动态的,怎么静态化?让URL变得更短?
 
修改办法:
 
1、修改程序文件,做到从源头支持伪静态,找到文件:/phpcms/modules/content/tag.php
 
查找:
 
//查找
$page = $_GET['page'];
$datas = $infos = array();
$infos = $this->db->listinfo("`keywords` LIKE '%$tag%'",'id DESC',$page,20);
$total = $this->db->number;
if($total>0) {
$pages = $this->db->pages;
foreach($infos as $_v) {
if(strpos($_v['url'],'://')===false) $_v['url'] = $siteurl.$_v['url'];
$datas[] = $_v;
}
}
//修改为:
 
$page = isset($_GET['page'])?$_GET['page']:1;
$datas = $infos = array();
$tag = iconv("utf-8","gb2312",$tag); //CMSYOU转编码
$infos = $this->db->listinfo("`keywords` LIKE '%$tag%'",'id DESC',$page,10);
$total = $this->db->number;
define('URLRULE',$siteurl.'/tags/'.$tag.'/'.$catid.'-{$page}.html');//伪静态后的翻页修正
if($total>0) {
$pages = pages($total,$page,10,URLRULE,array(),10) ;
foreach($infos as $_v) {
if(strpos($_v['url'],'://')===false) $_v['url'] = $siteurl.$_v['url'];
$datas[] = $_v;
}
}
2、修改伪静态规则,下面以.htaccess文件为例说说伪静态规则.
 
RewriteRule ^tags/(.*)/([0-9]+)-([0-9]+).html$ index.php?m=content&c=tag&catid=$2&tag=$1&page=$3
 
添加上面这条伪静态规则,这样就修改后,程序上支持伪静态了.
 
你的域名/tags/cmsyou标签名/10-1.html
 
3、在模板前端显示中,具体修改打开内容页模版:content/show.html找到.
 
<a href="{APP_PATH}index.php?m=content&c=tag&a=lists&tag={urlencode($keyword)}" class="blue">{$keyword}</a>
 
修改为:
 
<a href="{APP_PATH}tags/{$keyword}/{$catid}-1.html" class="cmsyou">{$keyword}</a>
 
这样,就三步搞定PC V9关键词标签Tag的伪静态,URL更短,更便于优化.
 
 

(编辑:大连站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!