DedeCMS的TAG標簽不是很靈活,有時候我們的標簽需要進行一個分類,能不能像{dede:arclist}標簽的自定義屬性(如:flag='c,h'),這樣全站調用的時候更靈活。
前面寫過一篇文章《DedeCMS織夢增加TAG標簽描述》,再拓展一下就行,有看不懂的步驟那篇文章寫得詳細些。
全站調用TAG標簽方法一般是
{dede:tag row='100' sort='new' getall='1'} <a target="_blank" href='[field:link/]'>[field:tag /]</a>{/dede:tag} |
默認的只有以下參數
row:調用條數sort:排序方式 month,rand,weekgetall:獲取類型 0 為當前內容頁TAG標記,1為獲取全部TAG標記
用Navicat數據庫管理工具打開dede_tagindex數據表(默認的表前綴),依次點擊文件 -> 設計表。新增
字段:addtagtype類型:int長度:10
也可以用sql命令
alter table `dede_tagindex` add `addtagtype` int(10) NOT NULL default ''; |
打開后臺/dede/tags_main.php,大概在27行找到
$dlist->SetParameter("tag", $tag); |
下面增加
$dlist->SetParameter("addtagtype", $addtagtype); //by www.CUOxin.com |
大概在49行找到(下面紅色的分隔符請去除)
$query = "UPDATE `#分隔符@__tagindex` SET `count`='$count' WHERE id='$tid' "; |
修改為
$query = "UPDATE `#分隔符@__tagindex` SET `count`='$count',`addtagtype`='$addtagtype' WHERE id='$tid' "; |
大概在147行找到
$query = " INSERT INTO `#分隔符@__tagindex`(`tag`,`count`,`total`,`weekcc`,`monthcc`,`weekup`,`monthup`,`addtime`) VALUES('$keyword','0','1','0','0','$timestamp','$timestamp','$timestamp');"; |
修改為
$query = " INSERT INTO `#分隔符@__tagindex`(`tag`,`addtagtype`,`count`,`total`,`weekcc`,`monthcc`,`weekup`,`monthup`,`addtime`) VALUES('$keyword','$tagms','0','1','0','0','$timestamp','$timestamp','$timestamp');"; |
打開/dede/templets/tags_main.htm,找到更新JS
function UpdateOne(tid){location = "tags_main.php?action=update&count="+document.getElementById('count'+tid).value+"&tid="+tid; |
增加tagtype參數,代碼修改為
function UpdateOne(tid){location = "tags_main.php?action=update&count="+document.getElementById('count'+tid).value+"&addtagtype="+document.getElementById('tagtype'+tid).value+"&tid="+tid; |
找到
<td width="10%">標簽</td> |
下面增加
<td width="10%">屬性</td> |
找到
<td> <a href="../tags.php?/<?php echo urlencode($fields['tag']); ?>/" target="_blank">{dede:field.tag /}</a></td> |
下面增加
<td> <input type='text' value='<?php echo $fields['addtagtype']; ?>' id='tagtype<?php echo $fields['id']; ?>' size='5'/></td> |
這里的TAG屬性可以根據自己的需要填寫任意數字,比如屬性是0、1。如果你覺得不直觀,那就換成a,b,c之類的,只需要修改dede_tagindex數據表addtagtype數據類型為varchar,長度為255即可,方法就不詳述了,下面是調用方法。
{dede:sql sql="select * from dede_tagindex where addtagtype='1'"}屬性是1的內容:<a href="/tags?php/[field:tag/]/">[field:tag/]</a>{/dede:sql}{dede:sql sql="select * from dede_tagindex where addtagtype='0'"}屬性是0的內容:<a href="/tags?php/[field:tag/]/">[field:tag/]</a>{/dede:sql} |
里面的URL路徑是默認寫法,請根據自己的實際情況修改。數據表前綴請自行修改。
新聞熱點
疑難解答