1、如何實現織夢Dedecms的tag標簽靜態化方法
用dedecms系統做網站的朋友特別多,dedecms功能強大,除了安全是一個問題外,tags標簽靜態化問題困擾很多朋友,湖哥為了解決一個網站的tags標簽靜態化問題找了很多文章,也試了很多次,終於在今天解決了這個問題:1.dedecms版本5.7sp1GBK2.伺服器:windows2008iis7話不多說,開始!目標:我們要使原來tags.php?/3qshop/變動為/tags/3qshop.html並且為偽靜態,為什麼要為偽靜態?因為我們的關鍵詞(tags)太多,比真正靜態節省空間。那麼我們要做如下工作,記得一步一步來哦!第1步:首先找到/include/taglib/tag.lib.php中,在87行找到$row['link']=$cfg_cmsurl."/tags?".urlencode($row['keyword']);將其修改為:$row['link']=$cfg_cmsurl."/tags/".urlencode($row['keyword']).".html";第2步:修改分頁代碼部分修改include/arc.taglist.class.php,找到分頁函數,將其更換為:注意:從429行---->541行用以下內容替換!(提示:網上有文章中講的以下代碼中的"pageinfo"是錯誤的,應該為\"pageinfo\",不然會有錯誤提示哦!已經代碼測試OK!)/***獲取動態的分頁列表**@accesspublic*@paramint$list_len列表寬度*@paramstring$listitem列表樣式*@returnstring*/functionGetPageListDM($list_len,$listitem="info,index,end,pre,next,pageno"){$prepage="";$nextpage="";$prepagenum=$this->PageNo-1;$nextpagenum=$this->PageNo+1;if($list_len==""||preg_match("/[^0-9]/",$list_len)){$list_len=3;}$totalpage=$this->TotalPage;if($totalpageTotalResult>0){return"共1頁/".$this->TotalResult."條";}if($this->TotalResult==0){return"共0頁/".$this->TotalResult."條";}$maininfo="共{$totalpage}頁/".$this->TotalResult."條rn";$purl=$this->GetCurUrl();$basename=basename($purl);$tmpname=explode('.',$basename);$purl=str_replace($basename,'',$purl).urlencode($this->Tag);//var_mp($purl);exit;//$purl.="?/".urlencode($this->Tag);//獲得上一頁和下一頁的鏈接if($this->PageNo!=1){$prepage.="上一頁rn";$indexpage="首頁rn";}else{$indexpage="首頁rn";}if($this->PageNo!=$totalpage&&$totalpage>1){$nextpage.="下一頁rn";$endpage="末頁rn";}else{$endpage="末頁rn";}//獲得數字鏈接$listdd="";$total_list=$list_len*2+1;if($this->PageNo>=$total_list){$j=$this->PageNo-$list_len;$total_list=$this->PageNo+$list_len;if($total_list>$totalpage){$total_list=$totalpage;}}else{$j=1;if($total_list>$totalpage){$total_list=$totalpage;}}for($j;$jPageNo){$listdd.="$jrn";}else{$listdd.="".$j."rn";}}$plist='';if(preg_match('/info/i',$listitem)){$plist.=$maininfo.'';}if(preg_match('/index/i',$listitem)){$plist.=$indexpage.'';}if(preg_match('/pre/i',$listitem)){$plist.=$prepage.'';}if(preg_match('/pageno/i',$listitem)){$plist.=$listdd.'';}if(preg_match('/next/i',$listitem)){$plist.=$nextpage.'';}if(preg_match('/end/i',$listitem)){$plist.=$endpage.'';}return$plist;}第3步:設置偽靜態規則:把以上內容保存為:web.config放到網站根目錄!第4步:生成文章,瀏覽!大功告成?錯,有可能你會出現以下錯誤!系統無此標簽,可能已經移除!你還可以嘗試通過搜索程序去搜索這個關鍵字:前往搜索>>如果你的瀏覽器沒反應,請點擊這里解決法如下:在網站根目錄下找到tags.php此文件,將以下代碼替換掉:$tag=trim($_SERVER['QUERY_STRING']);換成$tag=strtolower(trim($_SERVER['QUERY_STRING']));出現這個問題的原因是IIS偽靜態中文轉碼為UTF8,解決方法就是在tags.php中加入判斷UTF8編碼的語句,如果是則轉換為GBK,這樣就可以解決了方法:1.把以下代碼加入到根目錄下tags.php中的18行下面,也就是if(isset($tags[2]))$PageNo=intval($tags[2]);下面哦:functionis_utf8($tag){if(preg_match("/^([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}/",$tag)==true||preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}$/",$tag)==true||preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){2,}/",$tag)==true){returntrue;}else{returnfalse;}}2.在第25行上面加入以下語句,也就是在$tag=FilterSearch(urldecode($tag));上面加入,記得這里是上面哦!if(is_utf8($tag)==1){$tag=iconv("utf-8","gbk",$tag);}這個作用就是調用上面的函數判斷編碼如果是utf8則轉為gbk;到此,tags偽靜態問題全面完美解決!http://www.dede58.com/a/mengjiaocheng/dedefault/3069.html
2、織夢後台中的tag管理標簽中的tag標簽動態鏈接如何改為靜態?
進入你的織夢dedecms後台,在左邊找到「系統」-「系統基本設置」-「核心系統」,在下面有一項基本選項「」是否使用偽靜態「在下面點擊」是。「
在dedecms源代碼的目錄里找到 include/taglib/tag.lib.php 文件,大概在87行左右找到
$row['link'] = $cfg_cmsurl."/tag.php?/"urlencode($row['keyword')."/"
改為$row['link'] = $cfg_cmsurl."/tag/"urlencode($row['keyword'])".html"
依舊在dedecms源代碼目錄里找到templets/default/taglist.html找到<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}
最後一步分2種情況,確保你的空間主機是基於什麼伺服器搭建的,現流的有APACHE和Nginx伺服器
1)如果是linux+apache搭建的,在根目錄新建http.ini文件(若是你寫有其他規矩請直接把以下代碼添加到httpd.ini):
RewriteRule ^(.*)/tags.html$1tags.php;
RewriteRule ^(.*)/tags/(.*).html$1/tag.php?/$2;
2)如果空間是基於linu+nginx搭建的靜態規則改為
rewrite ^(.*)?tags.html$1tags.php;
rewrite ^(.*)/tag/(.*).html $1/tag:php?/$2;
希望可以幫到你
3、關於織夢CMS標簽的問題
和
{dede:arcpagelist tagid=』dedecms』/}對應,用來分頁的
id名不一定是dedecms可以隨便起,只要兩個標簽對應
就可對前ID的內容分頁
4、織夢CMS中的tag是做什麼用的
你可以試著填寫"tagtag"在tag中,然後看看前台的頁面的html源碼中有什麼有tagtag,看看它出現在什麼位置,然後去思考它的作用. 這是方法 標題\關鍵字\描述,主要用來做網站推廣.其它的我也沒過多研究. 我做的最新網站: http://www.zjaodesai.com
5、dedecms 調用tag標簽,怎麼將標簽生成一個頁面
好久都沒用dedecms了,不是很會。如果你問pageadmin建站系統我還可以幫助到你。我個人覺得你可以去試試pageadmin建站系統可以免費下載的。
6、如何實現織夢DedeCMS的tag標簽靜態化
1、進入你的DedeCMS後台,在左邊找到「系統-->系統基本設置-->核心設置」,在下面有一項「是否使用偽靜態」,把此項後面的點上「是」。表示網站要啟用偽靜態。
2、在DedeCMS源代碼的目錄里,依次找到include/taglib/tag.lib.php文件,大概在87行左右,找到:
$row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['keyword'])."/";
將其改為:
$row['link'] = $cfg_cmsurl."/tags/".urlencode($row['keyword']).".html";
這一步就將TAG鏈接中的問號去掉了。
3、依舊在DedeCMS源代碼的目錄里,依次找到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 /}
這一步將TAG連接的列表頁的URL改為以.html結束。
4、最後一步,要分兩種情況,這是很多人沒注意到的,首先確保你的空間或主機是什麼基於伺服器搭建的(具體請垂詢你的空間服務商)。現在主流的有Apache和Nginx伺服器。
(1):如果你的空間是基於Linux+Apache搭建的環境,在根目錄新建httpd.ini文件(若是你寫有其他規矩請直接把以下代碼添加到httpd.ini):
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;
5、最近進入織夢DedeCMS後台更新緩存後,就能在前台頁面看到靜態的TAG鏈接了。趕快去動手修改吧。值得注意的是:修改前請注意做好備份,以免出錯導致程序文件丟失。
7、我用織夢CMS做網站,但是修改文章的時候改TAG標簽,修改並保存之後TAG標簽就消失了,怎麼都無法添加!
進入到你資料庫的 phpmyadmin管理界面裡面,點擊左邊資料庫下拉菜單,選擇你網站資料庫,拉到最下面,找到「dede_tagindex」這個表(前面的前綴dede是你安裝時候的默認名稱,可能不同)點擊它打開,然後右面會顯示出表的結構,在tag後面添加一個typeid欄位
新欄位裡面的內容填寫如下:
欄位=typeid
型=SMALLINT
度/值*1=5
整理=
屬性=UNSIGNED
Null=not null
默認2=0
額外=
填寫完成後點擊保存,。
tag這個欄位中「`tag` char(20) NOT NULL default '',」把長度值改成12。
dede _taglist 這個表中多出的「KEY `aid` (`aid`)」欄位,進去直接刪除掉就可以了。
再重新登陸織夢後台添加一個新的TAG標簽看看,OK了!
8、織夢CMS調用tag時如何添加鏈接
if ( ! function_exists('GetTags'))
{
function GetTags($aid)
{
global $dsql;
$tags = '';
$query = "SELECT tag FROM `dede_taglist` WHERE aid='$aid' ";
$dsql->Execute('tag',$query);
while($row = $dsql->GetArray('tag'))
{
$tags .= ($tags=='' ? $row['tag'] : ','.$row['tag']);
}
return $tags;
}
}
9、如何實現dedecms管理系統TAG標簽靜態化
進入你的織夢dedecms後台,在左邊找到「系統」-「系統基本設置」-「核心系統」,在下面有一項基本選項「」是否使用偽靜態「在下面點擊」是。「
在dedecms源代碼的目錄里找到 include/taglib/tag.lib.php 文件,大概在87行左右找到
$row['link'] = $cfg_cmsurl."/tag.php?/"urlencode($row['keyword')."/"
改為$row['link'] = $cfg_cmsurl."/tag/"urlencode($row['keyword'])".html"
依舊在dedecms源代碼目錄里找到templets/default/taglist.html找到<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}
最後一步分2種情況,確保你的空間主機是基於什麼伺服器搭建的,現流的有APACHE和Nginx伺服器
1)如果是linux+apache搭建的,在根目錄新建http.ini文件(若是你寫有其他規矩請直接把以下代碼添加到httpd.ini):
RewriteRule ^(.*)/tags.html$1tags.php;
RewriteRule ^(.*)/tags/(.*).html$1/tag.php?/$2;
2)如果空間是基於linu+nginx搭建的靜態規則改為
rewrite ^(.*)?tags.html$1tags.php;
rewrite ^(.*)/tag/(.*).html $1/tag:php?/$2;
10、dede cms 怎麼在列表頁調用當前欄目的tag
|1,首頁,列表頁和文章頁調用所的tag標簽
{dede:tag row='8' getall='1' sort='month'}
支持屬性
row|30 行數
sort|new 排序
getall|0 調用類型
可以查看/include/taglib/tag.lib.php
2,列表頁調用每一篇文章的tag標簽
[field:id runphp=yes]
$tsql = new DedeSql(false);
$tags = '';
$tsql->SetQuery("Select i.tag From ying_taglist t left join ying_tagindex i on i.id=t.tid where t.aid='@me'");
$tsql->Execute('t');
while($row = $tsql->GetArray('t',MYSQL_ASSOC)){
$tags .= "<a href='/tags.php?/".urlencode($row['tag'])."'>".$row['tag']."</a>";
}
@me=$tags;
[/field:id]
3,文章頁調用該篇正文的tag標簽
{dede:field.tags/}
默認的TAG是無鏈接的,如果你希望該tag帶上鏈接,則打開include/common.func.php ,大約755行,找到
//獲得某文檔的所有tag
function GetTags($aid)
{
global $dsql;
$tags = '';
$query = "Select tag From `ying_taglist` where aid='$aid' ";
$dsql->Execute('tag',$query);
while($row = $dsql->GetArray('tag'))
{
$tags .= ($tags=='' ? $row['tag'] : ','.$row['tag']);
}
return $tags;
}
修改為
//獲得某文檔的所有tag
function GetTags($aid)
{
global $dsql;
$tags = '';
$query = "Select tag From `dede_taglist` where aid='$aid' ";
$dsql->Execute('tag',$query);
while($row = $dsql->GetArray('tag'))
{
$tags.= ($tags=='' ? "<a href=/tags.php?/{$row['tag']} target=_blank>{$row['tag']}</a>" : ','."<a href=/tags.php?/{$row['tag']} target=_blank>{$row['tag']}</a>");
}
return $tags;
}