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

[分享]显示文章上级栏目的名称和链接,无需修改程序文件 [复制链接]

上一主题 下一主题
离线raynal
 

发帖
1130
贡献值
6
威望值
504
技术分
0
织梦币
0
只看楼主 倒序阅读 使用道具 0 发表于: 2008-11-23
我在制作http://music.qihh.com的时候,由于结构需要,需要显示文章上级栏目名称和连接,看看首页就明白了

我的栏目结构是

艺术家
   |-曲目

所以曲目栏目内容显示的时候我希望能连接艺术家。

解决思路:
通过文章的typeid从arctype表中找到reID,然后根据这个reID找到id=reID的栏目,读取typename和url并输出
注:reID就是栏目的上级栏目的id
{dede:arclist|}
[field:typeid runphp=yes]
    $tsql = new DedeSql(false);
    $typelink2 = '';
    $tsql->SetQuery("Select i.typedir,i.typename From #@__arctype t left join #@__arctype i on i.id=t.reid where t.id='@me'");
    $tsql->Execute('t');
    while($row = $tsql->GetArray('t',MYSQL_ASSOC))
    {
       $typelink2 .= "<a href='".$row['typedir']."'>".$row['typename']."</a>";
    }
    @me=$typelink2;
[/field:typeid]
{/dede:arclist}

产生的问题:
1、因为栏目路径在数据库的存储方式是带有{cmspath}的,所以如果你需要调用上层栏目名称的话,在建立栏目的时候注意栏目路径(str_replace在这里能用么?能的话怎么用呢?)
2、如果栏目本身不存在上级栏目,那就会出错,所以注意调用的位置。

在这里学习了很久,查询格式都是抄的,属于举一反三的学习,呵呵。
1条评分
萧湘月 威望值 +5 2008-11-23
www.QiHH.com 趣海网 - Q5完工 Q6登场
专业模板制作 | 价高质优-非诚勿扰 raynal@flamesky.org
离线萧湘月

发帖
6723
贡献值
5296
威望值
1494
技术分
10
织梦币
45
只看该作者 1 发表于: 2008-11-23
楼主不错,多谢分享
 
离线raynal

发帖
1130
贡献值
6
威望值
504
技术分
0
织梦币
0
只看该作者 2 发表于: 2008-11-24
真感动,都被+威望了
 
www.QiHH.com 趣海网 - Q5完工 Q6登场
专业模板制作 | 价高质优-非诚勿扰 raynal@flamesky.org
离线im117391
发帖
22
贡献值
0
威望值
10
技术分
0
织梦币
0
只看该作者 3 发表于: 2008-11-25
1、因为栏目路径在数据库的存储方式是带有{cmspath}的,所以如果你需要调用上层栏目名称的话,在建立栏目的时候注意栏目路径(str_replace在这里能用么?能的话怎么用呢?)

我也去不掉。求助高手
离线im117391
发帖
22
贡献值
0
威望值
10
技术分
0
织梦币
0
只看该作者 4 发表于: 2008-11-25
明白了
在这里处理:@me=str_replace("{cmspath}","",$typelink2);
离线raynal

发帖
1130
贡献值
6
威望值
504
技术分
0
织梦币
0
只看该作者 5 发表于: 2008-11-26
不错哈,解决了,这下完美了
www.QiHH.com 趣海网 - Q5完工 Q6登场
专业模板制作 | 价高质优-非诚勿扰 raynal@flamesky.org
离线wanghuimian

发帖
147
贡献值
4
威望值
20
技术分
0
织梦币
0
只看该作者 6 发表于: 2010-08-05
这段代码应该放在什么地方呢?求指教www.bjwclh.com内容页也希望改成这样