找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1302|回复: 0

[分享] 在dedecms首页和列表页、内容页上调用文章的副栏目名称和链接的方法

[复制链接]
发表于 2018-7-29 10:27:39 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
最近在做一个网站用到副栏目的调用,在网上搜了一下,没有找到一个好的方法,于是自己写了一个,希望能够帮到大家。

方法一:

内容页的调用写法:

  1. {dede:field.typeid2 runphp='yes'}
  2.                  global $dsql;
  3.                  $ks = split(',', @me);
  4.                  $tname="";
  5.                  foreach($ks as $k){
  6.                      $k = trim($k);   
  7.                      if ($k!="") {
  8.                           if ($row = $dsql->getOne("select *,ID as id1 from dede_arctype where id=".$k)){
  9. $mpath=GetTypeUrl($row['id1'],MfTypedir($row['typedir']),$row['isdefault'],$row['defaultname'],
  10. $row['ispart'],$row['namerule2'],$row['siteurl']);
  11.                                   $tname.="<span><a href='{$mpath}'>".$row['typename']."</a></span>";   
  12.                           }           
  13.                      }   
  14.                  }
  15.                 @me=substr($tname,0,strlen($tname)-1);
  16.             {/dede:field.typeid2}
复制代码


首页、列表页标签(在arclist、list等文章列表标签里用):

         
  1. [field:typeid2  runphp='yes']
  2.                   global $dsql;
  3.                  $ks = split(',', @me);
  4.                  $tname="";
  5.                  foreach($ks as $k){
  6.                      $k = trim($k);   
  7.                      if ($k!="") {
  8.                           if ($row = $dsql->getOne("select *,ID as id1 from dede_arctype where id=".$k)){
  9.                                  $mpath=GetTypeUrl($row['id1'],MfTypedir($row['typedir']),$row['isdefault'],$row['defaultname'],$row['ispart'],
  10. $row['namerule2'],$row['siteurl']);
  11.                        $tname.="<span><a href='{$mpath}'>".$row['typename']."</a></span>";      
  12.                           }           
  13.                      }   
  14.                  }
  15.                 @me=substr($tname,0,strlen($tname)-1);
  16.             [/field:typeid2]
复制代码


推荐用这种方法,不需要改东西就可以了。另外在网上看到另外一种方法,不过我没做测试,有兴趣的朋友可以试下。

方法二:

首先在 dedecms 目录下 /plus/ 新建文件 type_ajax.php 内容如下:


  1. <?php

  2. require_once(dirname(__FILE__)."/../include/common.inc.php");
  3. $action = isset($action) ? trim($action) : '';
  4. $id = (isset($id) && is_numeric($id)) ? $id : 0;
  5. if($id < 1)
  6. {
  7. exit();
  8. }
  9. $maintable = "dede_archives";
  10. $digg = '';
  11. $row = $dsql->GetOne("Select * From dede_archives where id = '$id' ");
  12. $arr = split(",",$row['typeid2']);
  13. foreach ($arr as $key=>$type)
  14. {
  15. $namelist = $dsql->GetOne("Select * From dede_arctype where id = '$type' ");
  16. $digg .= '<a href=/plus/list.php?tid='.$type.'>'.$namelist['typename'].'<a>'." //";
  17. }
  18. AjaxHead();
  19. echo $digg;
  20. exit();
  21. ?>
复制代码



dedecms 模板页调用
在<head>标记之间 加上



  1.   <script language="javascript" type="text/javascript" src="{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script>
  2. <script language="javascript" type="text/javascript">
  3. <!--
  4. function gettype(aid)
  5. {
  6. var taget_obj2 = document.getElementByIdx_x('newdigg2');
  7. myajax2 = new DedeAjax(taget_obj2,false,false,'','','');
  8. myajax2.SendPost2("{dede:global.cfg_phpurl/}/type_ajax.php?id="+aid);
  9. DedeXHTTP = null;
  10. }
  11. -->
  12. </script>

  13. <body>
复制代码
标记内加上

  1. <span class="newdigg2" id="newdigg2">{dede:field.typeid2 /}</span><br />
  2. <script language="javascript" type="text/javascript">gettype({dede:field.id/});</script>
复制代码

其中<span>标记内的内容就是AJAX动态修改的内容。

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-11-19 05:56 , Processed in 0.046430 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表