织梦获得某类目的链接列表函数LogicGetPosition($id,$islink)详解

admin2023-01-18824

其实,当前位置函数是由这个函数功能实现的,而这个函数又是由下面这个函数实现的:

获得某个类目的超链接信息函数:GetOneTypeLink($typeinfos),而这个函数功能又是由下面这个函数实现的:

获得某分类连接的URL函数: GetOneTypeUrl($typeinfos),而这个函数功能又是由下面这个函数实现的:

获取栏目url函数:GetTypeUrl(参数),而这个函数功能又是由下面这个函数实现的:

最终我们查找到了函数GetTypeUrl(参数),关于这个函数我们已经分析过了,这里不用多说,所以,要想把LogicGetPosition($id,$islink)弄明白,只需要把除了这里面的代码弄明白外,还要把另外二个函数弄明白,那么,这个函数就明白了,不要看这个函数这么麻烦,其实,这个函数比较简单的。就是里面的递归看上去不好理解,关于php的递归知识织梦基地已经在论坛里,单独作了一个教程,教程里面讲的非常详细了。

既然,这个函数里面用到了三个函数,那么,我们就从内向外,研究函数,第三个织梦基地已经分析过了,就从第二个函数GetOneTypeUrl($typeinfos)开始分析,这个函数的作用是获取栏目url,这个函数也是比较简单的,就是判断常量“DEDEMOB”是否存在,若存在则返回list.php?tid='.$typeinfos['id']连接,其中$typeinfos是栏目连接,根据id传来的值从数据库表,查询出来的数组。

如果没有设置这个常量,则返回由函数GetTypeUrl(参数)生成的栏目url。

第一个函数:

function GetOneTypeLink($typeinfos)
    {
        $typepage = $this->GetOneTypeUrl($typeinfos);
        $typelink = "<a href='".$typepage."'>".$typeinfos['typename']."</a>";
        return $typelink;
    }

获取栏目url,然后,组装完整的url连接:$typelink,这个也比较简单,就是把第二个函数返回的类似:http://www.xxx.com/forum-41-1.html 的链接,放到a标签里面,组成一个越链接。

把这些弄明白了,再回到本教程的函数代码里面。

前二行是查询栏目表#@__arctype,条件是根据参数$id来取出表中的字段。

然后,判断一下$islink是真还是假,若是真,则把链接赋给$this->valuePosition;否则,就是想获得栏目名。

这里通过$tinfos['reid']是的值是否大于零,也就是当前栏目为子栏目,进行递归遍历。


网友评论