phpcms v9联动菜单的调用方法及get_linkage函数详解
<p><span>{get_linkage($areaid,1,' >> ',1)} </span><br><br><span>显示效果: PHPCMS吧 >> 模板下载 >> PHPCMS模板 [字段名字为 areaid] </span><br><br><span>如果你要在列表页或者其他地方调用,除了内容页,他们有个共同点,都是在 loop 循环体里.变量书写格式就需要修改,比如: </span><br><br><span>{get_linkage($r['areaid'],1,' >> ',1)} </span><br><span>复制代码 </span><br><br><span>当然这个 $r 也不是绝对的.要看你的loop 是如何写的. </span><br><span>{loop $data $n $r} 如果是这样写的,就是 $r['areaid'] . </span><br><span>另外必须保证此字段被正确读取有值. </span><br><br><span>下面是global.func.php文件里函数get_linkage : </span></p>
<div>
<p>
<span><u>复制代码</u></span></p>
<p>
代码如下:</p>
</div>
<p>
<br>
/** <br>
* 通过id获取显示联动菜单 <br>
* @param $linkageid 联动菜单ID <br>
* @param $keyid 菜单keyid <br>
* @param $space 菜单间隔符 <br>
* @param $result 递归使用字段1 <br>
* @param $infos 递归使用字段2 <br>
*/ <br>
function get_linkage($linkageid, $keyid, $space = '>', $type = 1, $result = array(), $infos = array()) { <br>
if($space=='' || !isset($space))$space = '>'; <br>
if(!$infos) { <br>
$datas = getcache($keyid,'linkage'); <br>
$infos = $datas['data']; <br>
} <br>
if($type == 1 ) { <br>
if(array_key_exists($linkageid,$infos)) { <br>
$result[]=$infos[$linkageid]['name']; <br>
return get_linkage($infos[$linkageid]['parentid'], $keyid, $space, $type, $result, $infos); <br>
} else { <br>
if(count($result)>0) { <br>
krsort($result); <br>
$result = implode($space,$result); <br>
return $result; <br>
} <br>
else { <br>
return $result; <br>
} <br>
} <br>
} else { <br>
return $infos[$linkageid]['name']; <br>
} <br>
} </p>
<p>
<br><span>共有六个参数,尤其是前两个,不要搞颠倒了. $linkageid, $keyid . 第一个$linkageid是菜单id,你发布的时候选择的最终极菜单id,$keyid是菜单keyid,后台默认的联动菜单PHPCMS吧的keyid就是1.有点绕口,确实,这俩菜单id是一回事,但是他们的层级不一样.keyid就是最大的那个父id,linkageid是子级id.第三个$space就是连接符号,第四个$type就是调用内容,如果是1就调用完整的,如果设置为0就调用最终极的,即如果是0就只显示PHPCMS模板。默认为1的。</span></p>
頁:
[1]