公告:如果您的账号不能登录,可能是系统对您账号进行了保护,我们发现系统中存在着不安全密码,故对其重置,请您重新激活账号,对于给您造成的不便,敬请谅解!
论坛风格切换切换到宽版
  • 4661阅读
  • 4回复

有channelartlist 调用问题 [复制链接]

上一主题 下一主题
 

发帖
572
贡献值
512
威望值
120
技术分
0
织梦币
0
只看楼主 倒序阅读 使用道具 0 发表于: 2010-04-09
channelartlist 调用问题:channelartlist吧内容都一下都调用出来了,并且加载一个样式。我想加载不太样式。想调谁就调谁。想放在什么样式中显示就在那显示。
channelartlist 调用的内容现在不同样式。有的让他以图片显示,有的让他用文字显示。并加载不同样式。


如果这个怎么放呢






 有朋友会吗?帮我看看谢谢了

发帖
572
贡献值
512
威望值
120
技术分
0
织梦币
0
只看该作者 1 发表于: 2010-04-09
 

发帖
572
贡献值
512
威望值
120
技术分
0
织梦币
0
只看该作者 2 发表于: 2010-04-12
channelartlist标记 不同栏目不同显示方式解决方法

channelartlist标签 不同栏目不同显示方式解决方法
在使用channelartlist标记 时
有时要根据二级栏目  不同的栏目 内容以不同的样式显示
比方说  在一个大栏目下 有图片频道 新闻频道
图片频道 以图片列表形式显示
文章频道 以文章列表形式显示



在大量重复栏目 类型网站 制作时 将遇到类似问题  如游戏网站  房地产网站  。。。。。

如果使用dede自带的 {dede:xxx runphp='yes'}  来进行判断  很不好写。

其实dede是标签是可以自己定制的
在include/taglib  目录下  存放着channelartlist.lib.php  文件 这个文件就是channelartlist标签

既然channelartlist标签 可以实现这样的功能
那么我们同样可以 自定义一个标签  在解决我们需要实现的功能(其实所有的模板问题  我们都可以自定义标签来解决)

不是大家所想象的那么复杂
我们来分析下channelartlist.lib.php   这个文件
其实里面很简单 就是一个 命名为function lib_channelartlist 的函数
然后在 46行有段sql 语句 来获取  子栏目信息

我们可以把 channelartlist.lib.php   复制一个 同样放在include/taglib  目录下

然后修改下文件名  例如 channelartlistxxx.lib.php  
同样 我们也需要修改  function lib_channelartlist  为 function lib_channelartlistxxx
然后根据你的需要  修改sql 语句  比方说  你需要获取一个游戏专题下的 游戏截图 频道
那么你 46行的sql 语句 修改为Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
                                            from `#@__arctype` where $tpsql and typename='游戏截图' order by sortrank asc limit $totalnum


那么我们 得一个标签就做好啦

使用时
{dede:channelartlistxxx}
{dede:field name='typename'/}
   {dede:arclist titlelen='60' row='8'}
<a href="[field:arcurl/]" target="_blank">[field:title/]</a>

  {/dede:arclist}

{/dede:channelartlistxxx}

同样的道理 其他的 功能如果 dede自带标签无法做到的
你也可以这样来实现 你所要的效果

$dsql->SetQuery("Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
                                            from `#@__arctype` where $tpsql order by sortrank asc limit $totalnum");

从channelartlist.lib.php的第39,40行可以看出
其中 $totalnum就是row属性
 

发帖
382
贡献值
364
威望值
58
技术分
0
织梦币
0
只看该作者 3 发表于: 2010-04-12
每种样式都用一个循环代码来做
美国稳定VPS http://www.diahosting.com/client/aff.php?aff=161
离线zp666666

发帖
321
贡献值
57
威望值
91
技术分
0
织梦币
0
只看该作者 4 发表于: 2010-08-10
顶一下,很好的思路
网络工作室
QQ:312495038