588创业论坛

 找回密码
 快速注册
搜索
查看: 2544|回复: 0
打印 上一主题 下一主题

TAG标签按模型显示(适合多个模型的网站)

[复制链接]

17

主题

0

听众

1562

积分

版主

Rank: 7Rank: 7Rank: 7

金钱
141 创业币
在线时间
30 小时
跳转到指定楼层
1
农民站长 发表于 2010-3-16 20:36:15 |只看该作者 |倒序浏览
TAG标签按模型显示(适合多个模型的网站),很多人都会发现,如果同一个DedeCMS使用不同模型绑定不同域名,做类型几个不同的网站,那么在用tag标签的时候,会显示一些和现在这个网站内容完全无关的TAG,看起来很是不合理,就象我的,因为是直接在一个dede里面设个BLOG模型,结果在里面把整个网站的TAG都显示出来完了,做为个人博客来说,就非常的不合理了,所以改写了一个DEDE的代码,在这里和大家分享下。不过现在有个缺点,就是这个如果两个或者两个以上都有相同的TAG,那么只有一个模型会显示,当然,这个修改对于使用官方默认的TAG标签没有任何影响,而且只能在文章页面有效。

好了,废话到这里,下面说说修改的方法,好了,我把要修改的地方用红色标出来。
  
第一、当然是在数据库里面新建一个保存TAG模型ID的字段

ALTER TABLE `dede_tagindex` ADD `channelid` INT( 10 ) UNSIGNED NOT NULL DEFAULT '0' AFTER `tag` ;


第二、修改TAG插入数据库命令  

打开include/archives.func.php文件,找到 InsertOneTag

global $typeid,$arcrank,$dsql;
改成
global $typeid,$arcrank,$dsql,$channelid;  


红色的是要加进去的
$rs = $dsql->ExecuteNoneQuery("Insert Into `# @ _ _tagindex`(`tag`,`channelid`,`count`,`total`,`weekcc`,`monthcc`,`weekup`,`monthup`,`addtime`)
values('$tag','$channelid' ,'0','1','0','0','$addtime','$addtime','$addtime'); ");
//`# @ _ _tagindex 中间没有空格,为了在PW方便,打上空格

  
第三、修改TAG标签内容获取SQL命令

打开include/taglib/tag.lib.php

//加上属性
$attlist="row|30,sort|new,getall|0,channel|all,channelid|0";

  
//添加获取TAG内容代码
$addsql = ' where ';
if($channel=='one'&&$refObj->TypeLink->TypeInfos['channeltype']!='')
{
  //arc.archives.class.php
  $addsql .= " channelid = '{$refObj->TypeLink->TypeInfos['channeltype']}' ";
}
else
{
  $addsql .= " channelid > '-99' ";
}
//如果TAG标志有channelid 值,channel=one无效
if($channelid>0)
{
  $addsql = " where channelid = '{$channelid}' ";
}

//这里也要改下,要不前面的修改无效。
$addsql .= " and id in($ids) ";



第四、修改你的模板咯。。

在原来官方默认标签前提下,加上两个属性值 channel='one' 表示显示当前文章所属模型的全部TAG
channelid='id' 表示指定模型的TAG,id可以在后台的内容模型管理里面查找,设置这个 channel='one' 无效。
  {dede:tag row='30' sort='new' getall='0' channel='one'}
    <a href='[field:link/]'>[field:tag/]([field:total/])</a>
   {/dede:tag}  
   {dede:tag row='30' sort='new' getall='0' channelid='1'}
    <a href='[field:link/]'>[field:tag/]([field:total/])</a>
   {/dede:tag}

最后呢~改完了还能干什么,当然是去看看结果咯。

感谢此帖作者:溪梦缘曦
您需要登录后才可以回帖 登录 | 快速注册

Archiver|手机版|588创业网 ( 闽ICP备08003622号-6 )

GMT+8, 2024-5-2 22:27 , Processed in 0.114049 second(s), 24 queries .

Powered by bbs.588cy.com

© 2001-2012 Discuz! X2.5

回顶部