如何是dedecms tags标签静态化
打开tag.lib.php文件
<?php
//function GetTags($num,$ltype=’new’,$InnerText=”)
* TAG调用标签
* @version $Id: tag.lib.php 1 9:29 2010年7月6日Z tianya $
* @package DedeCMS.Taglib
* @copyright Copyright (c) 2007 – 2010, DesDev, Inc.
* @license
* @link
/*>>dede>>
<name>TAG调用</name>
<type>全局标记</type>
<for>V55,V56,V57</for>
<description>TAG调用标签</description>
<demo>
{dede:tag sort=’new’ getall=’0′}
<a href='[field:link/]’>[field:tag /]</a>
{/dede:tag}
</demo>
<attributes>
<iterm>row:调用条数</iterm>
<iterm>sort:排序方式 month,rand,week</iterm>
<iterm>getall:获取类型 0 为当前内容页TAG标记,1为获取全部TAG标记</iterm>
</attributes>
>>dede>>*/
function lib_tag(&$ctag,&$refObj)
global $dsql,$envs,$cfg_cmsurl;
//属性处理
$attlist=”row|30,sort|new,getall|0,typeid|0″;
FillAttsDefault($ctag->CAttribute->Items,$attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);
$InnerText = $ctag->GetInnerText();
if(trim($InnerText)==”) $InnerText = GetSysTemplets(‘tag_one.htm’);
$revalue = ”;
$ltype = $sort;
$num = $row;
$addsql = ”;
if($getall==0 && isset($refObj->Fields[‘tags’]) && !empty($refObj->Fields[‘aid’]))
$dsql->SetQuery(“SELECT tid FROM `#@__taglist` WHERE aid = ‘{$refObj->
Fields[‘aid’]}’ “);
$dsql->Execute();
$ids = ”;
while($row = $dsql->GetArray())
$ids .= ( $ids==” ? $row[‘tid’] : ‘,’.$row[‘tid’] );
if($ids != ”)
$addsql = ” WHERE id IN($ids) “;
if($addsql==”) return ”;
else
if(!empty($typeid))
$addsql = ” WHERE typeid=’$typeid’ “;
if($ltype==’rand’) $orderby = ‘rand() ‘;
else if($ltype==’week’) $orderby=’ weekcc DESC ‘;
else if($ltype==’month’) $orderby=’ monthcc DESC ‘;
else if($ltype==’hot’) $orderby=’ count DESC ‘;
else if($ltype==’total’) $orderby=’ total DESC ‘;
else $orderby = ‘addtime DESC ‘;
$dsql->SetQuery(“SELECT * FROM `#@__tagindex` $addsql ORDER BY
$orderby LIMIT 0,$num”);
$dsql->Execute();
$ctp = new DedeTagParse();
$ctp->SetNameSpace(‘field’,'[‘,’]’);
$ctp->LoadSource($InnerText);
while($row = $dsql->GetArray())
$row[‘keyword’] = $row[‘tag’];
$row[‘tag’] = htmlspecialchars($row[‘tag’]);
$row[‘link’] = $cfg_cmsurl.”/tags.php?/”.urlencode($row[‘keyword’]).”/”;
$row[‘highlight’] = 0;
if($row[‘monthcc’]>1000 || $row[‘weekcc’]>300 )
$row[‘highlight’] = mt_rand(3,4);
else if($row[‘count’]>3000)
$row[‘highlight’] = mt_rand(5,6);
else
$row[‘highlight’] = mt_rand(1,2);
foreach($ctp->CTags as $tagid=>$ctag)
if(isset($row[$ctag->GetName()]))
$ctp->Assign($tagid,$row[$ctag->GetName()]);
$revalue .= $ctp->GetResult();
return $revalue;
找到代码 $row[‘link’] = $cfg_cmsurl.”/tags.php?/”.urlencode($row[‘keyword’]).”/”;
将此代码替换为如下代码
$row[‘link’] = $cfg_cmsurl.”/tags/”.urlencode($row[‘keyword’]).”.html”;
接下来在templets/default/taglist.htm中找到
<strong>当前位置:</strong>:<a href=”{dede:global.cfg_cmsurl/}/”>主页</a> >
<a href=’tags.php’>TAG标签</a> > {dede:field.title /}
将其修改为:
<strong>当前位置:</strong>:<a href=”{dede:global.cfg_cmsurl/}/”>主页</a> >
<a href=’/tags.html’>TAG标签</a> > {dede:field.title /}
改完这些 我们就来书写伪静态规则:
【1】linux+apache 环境下
在网站根目录下 新建
加入如下代码:RewriteRule ^(.*)/tags\\.html $1/tags.php;
RewriteRule ^(.*)/tags/(.*).html $1/tags.php?/$2;
【2】基于Linux+Nginx服务器搭建的环境,则静态化规则改为:
rewrite ^(.*)/tags\\.html $1/tags.php;
rewrite ^(.*)/tags/(.*).html $1/tags.php?/$2;
本文来源:[url=]