zdcms已安装模块的名称和url列表循环出来的方法

zdcms做包含多模块的网站时,想要把已安装模块的名称和url列表循环出来语句应该如何写呢?

请看下面代码:

循环输出已安装的模块

{cache name=module-content}
名称:{$t.name}
地址:{$t.url}
图标:{$t.icon}
目录:{$t.dirname}
{if MOD_DIR == $t.dirname}
表示是当前模块
{/if}
{/cache}

显示顺序受后台排序值而定,如下图:

zdcms模块排序

如果需要指定输出某个模块的URL(限于独立模块)用下面的标签:

{dr_module_url("demo")}


如需调用当前模块名称和URL可参考:zdcms站点URL和模块名称及url地址调用标签


如果需要把多个模块名称循环出来带入到多模块{modules}中查询数据,可以参考下面代码:

<?php
    $rt = \Phpcmf\Service::L('cache')->get('module-'.SITE_ID.'-content');
foreach ($rt as $key => $value) {
	$module[] = $key;
}
    $mod = implode(",",$module);
?>

{modules module=$mod   field=title,catid,url,updatetime,description,hits  order=updatetime}

{$t.title}   {$t.url}

{/modules}


上面的情况中,如果想要排除某个模块,可以使用下面代码:

//排除news模块

<?php
   $rt = \Phpcmf\Service::L('cache')->get('module-'.SITE_ID.'-content');
    foreach ($rt as $key => $value) {
	if ($key != 'news') {
		$module[] = $key;
	}
}
      $mod = implode(",",$module);
?>

{modules module=$mod   field=title,catid,url,updatetime,description,hits  order=updatetime}

{$t.title}   {$t.url}

{/modules}


如果你有类似的需求就试试看吧。

评论