自写dede/织梦的function方法,来满足调用问题

25 篇文章 0 订阅
2 篇文章 0 订阅

使用织梦的调用方法的时候感觉很简单,但是,有时候有的调用满足不了我们的需求。于是,我们可以自己写调用方法,然后再前端使用

[field:id function=GetUserid(@me,userid)/]

来获取,此处,field:id为我们当前可获取的文章id,GetUserid为我们的方法名,后面在php文件中也要写该方法名的文章,@me为传入参数文章id,userid为我们获取到的用户的id。(前面为思路分析,需要完整代码请拉到底部)
想要的需求出来了,(根据文章id获取到该作者的用户id)接下来我们开始分析,可以满足这需求的做法。
1.数据库,我们首先得了解到,我们调用该文章的时候,涉及到的数据库
因为我们是需要调用涉及文章的数据库‘xxxx_archives‘然后我们需要调用涉及用户的数据库‘xxxx_member‘
2.方法,我们需要在PHP文件中创建调用代码,该代码负责调用数据库里的数据传送给前端,起到逻辑处理作用。也就是写一个
function GetUserid( a i d , aid, aid,userid)
3.前端调用方法,也就是开始提到的那个方法

[field:id function=GetUserid(@me,userid)/]

方法合理,开始证实
文件代码:
在 /include/helpers/extend.helper.php中写入function

/** *  通过aid来获取userid * * @param     int     $aid  文档id * @return    string */  
  function GetUserid($aid,$userid)    
  {        global $dsql;  
        $row =$dsql ->GetOne( "select writer from xxxx_archives  where id=$aid");     
           if ($row['writer'] == '0')    
           {        echo "为空";    }    
           else    {        $row =$dsql ->GetOne( "select $userid from xxxx_member  where uname= '$row[writer]'");      
             return $row[$userid];;    }    }

在需要调用的部分写入

{dede:arclist typeid=2 row=3 titlelen=150 orderby='id' }
[field:id function=GetUserid(@me,userid)/]
{/dede:arclist}

这样的话就可以调用作者的userid了。

这样的方法还可以用到很多地方,比如你的文章需要调用tag标签。只用在里面写入function

/** *  获得某文档的所有tag简易版 * * @param     int     $aid  文档id * @return    string */
if ( ! function_exists('GetTagsjian'))
{
    function GetTagsjian($aid)
        {
global $dsql;   
$tags = '';
$query = "SELECT tag FROM `#@__taglist` WHERE aid='$aid' ";
$dsql->Execute('tag',$query);        
while($row = $dsql->GetArray('tag'))        
{            
$tags .= "<a href='tag.php?".urlencode($row['tag'])."' style='margin-left: 10px;'><span class='post-cat background1 color-white'>".$row['tag']."</span></a>";        
//这样写的话$tags返回的数据可以带上样式,样式可以根据自己的想法去调试        
}        
return $tags;    
}}

然后前端调用

{dede:arclist typeid=2 row=3 titlelen=150 orderby='id' }
[field:id function=GetTagsjian(@me)/]
{/dede:arclist}

这样就可以调用到该文章的所有tag了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值