#yyds干货盘点# 自写dede/织梦的function方法,来满足调用问题

生也有涯,知也无涯。这篇文章主要讲述#yyds干货盘点# 自写dede/织梦的function方法,来满足调用问题相关的知识,希望能为你提供帮助。
使用织梦的调用方法的时候感觉很简单,但是,有时候有的调用满足不了我们的需求。于是,我们可以自己写调用方法,然后再前端使用


[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($aid,$userid)
3.前端调用方法,也就是开始提到的那个方法
[field:id function=GetUserid(@me,userid)/]

方法合理,开始证实
文件代码:
在 /include/helpers/extend.helper.php中写入function
/**
*通过aid来获取userid
*
* @paramint$aid文档id
* @returnstring
*/

function GetUserid($aid,$userid)
{
global $dsql;
$row =$dsql -> GetOne( "select writer from xxxx_archiveswhere id=$aid");
if ($row[writer] == 0)
{
echo "为空";
}
else
{
$row =$dsql -> GetOne( "select $userid from xxxx_memberwhere 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简易版
*
* @paramint$aid文档id
* @returnstring
*/
if ( ! function_exists(GetTagsjian))
{
function GetTagsjian($aid)
{

global $dsql;
$tags = ;
$query = "SELECT tag FROM `dede_taglist` WHERE aid=$aid ";
$dsql-> Execute(tag,$query);
while($row = $dsql-> GetArray(tag))
{
$tags .= "< a href=https://www.songbingjia.com/android/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}

【#yyds干货盘点# 自写dede/织梦的function方法,来满足调用问题】这样就可以调用到该文章的所有tag了!

    推荐阅读