Fastadmin CMS伪静态时面包屑导航网址不正确的应急处理

这个fastadmin cms项目伪静态的规则是一级栏目对应两级目录,即如栏目自定义URL名称为“abc”,那么内容页123默认的伪静态是路径是“/abc/123”,而这个项目的自定义伪静态为“/abc/bcd/123”。伪静态后网站浏览正常,排除伪静态问题,这就只能是面包屑的问题了。

fastadmin cms官方只对购买者本人开放技术支持,网上的资料非常少。这是个半道接的debug项目,根本不可能去找购买者查资料。因为时间又不允许仔细琢磨,模块里面尝试修改没有效果,于是直接在模版里面下手了。

经过尝试可以通过{$__CHANNEL__.parent_id}标签获取到当前栏目的父目录的id,通过{cms:channellist id="channel" type="brother" typeid="$parentid" }标签获得父目录的同级目录名称和网址,因此可以逐级取得父目录的信息。

在模版文件中直接插入php代码,尽量使用系统现成的变量,不进行后端操作。

{php}
$str = '';
$parentid=$__CHANNEL__['parent_id'];//$__CHANNEL__['parent_id']对应标签{$__CHANNEL__.parent_id}
while ($parentid!=0){
{/php}
	{cms:channellist id="channel" type="brother" typeid="$parentid" }
	{php}
		if ($channel['id']===$parentid){//$channel['id']对应标签{cms:channel name="id" /},
			$str.=''.$channel['name'].' >> ';//$channel['url']对应标签{cms:channel name="url" /};$channel['name']对应标签{cms:channel name="name" /}
			$parentid=$channel['parent_id'];//$channel['parent_id']对应标签{cms:channel name="parent_id" /}
		}
	{/php}
	{/cms:channellist}
{php}
}
echo $str;
{/php}
{$__CHANNEL__.name}
{$__ARCHIVES__.title}

这里对父目录的类型没有做要求,如果需要可以使用$channel['type']来进行判断。

以后有时间再慢慢琢磨相应模块。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章