2组江苏快三计划,tp taglib 使用方法

浏览:296 发布日期:2018/09/09 分类:ThinkPHP5专区 关键字: taglib thinkphp
以下是 在test模块新增的Menu自定义标签,不知道自己用的对不对,但感觉这标签还不如直接写个方法在模板里调用呢。
2组江苏快三计划主要实现场景,是兼容layui 后台布局中的side 下来菜单的。
模板里 {menu:simple tree_data="tree_data"/}
menu代码
<?php
namespace app\test\taglib;
use think\template\TagLib;
use app\index\model\User;
class Menu extends TagLib{
/**
* 定义标签列表
*/
protected $tags = [
// 标签定义: attr 属性列表 close 是否闭合(0 或者1 默认1) alias 标签别名 level 嵌套层次
'simple' => ['attr' => 'tree_data', 'close' => 0], //闭合标签,默认为不闭合
//'open' => ['attr' => 'name,type', 'close' => 1],

];

/**
* 这是一个闭合标签的简单演示
*/
public function tagSimple($tag)
{
$parseStr = '';
$parseStr = $this->parse( $this->autoBuildVar($tag['tree_data']) );
return $parseStr;
}



/**
* @author mengdeliang
* 定制开发 layui 二级菜单生成器
*
*/

private function parse($initVarName){
$parse='<?php ';
$parse .= ' function _parseMenuTreeData($treeData){';
$parse .=' $return = \'\';';
$parse .=' foreach($treeData as $index=>$menu){';
$parse .=' $return .= \'<ul>\';';

$parse .=' if(isset($menu[\'children\']) && is_array($menu[\'children\']) && !empty($menu[\'children\'])){';
$parse .=' $return .= \'<li class="layui-nav-item">\';';
$parse .=' $return .= \'<a href="javascript:;">\'.$menu[\'name\'].\'</a>\';';
$parse .=' $return .= \'<dl>\';';
$parse .=' foreach($menu[\'children\'] as $cindex=>$citem){';
$parse .=' $return .= \'<dd>\';';
$parse .=' $return .= \'<a href="javascript:;">\'.$citem[\'name\'].\'</a>\';';
$parse .=' $return .= \'</dd>\';';
$parse .=' }';
$parse .=' $return .= \'</dl>\';';
$parse .=' $return .= \'</li>\';';
$parse .=' }else{';
$parse .=' $return .= \'<li>\';';
$parse .=' $return .= \'<a href="javascript:;">\'.$menu[\'name\'].\'</a>\';';
$parse .=' $return .= \'</li>\';';
$parse .='';
$parse .='';
$parse .=' }';
$parse .=' }';
$parse .='return $return;';
$parse .=' }';
$parse .= 'echo _parseMenuTreeData('.$initVarName.');';
return $parse;
}
}


控制器的tree_data

$tree_data =[
[
'name'=>'shouye1',
'alias' =>'index' ,
'url' => url('test/dd'),
'children'=>[

]
] ,

[
'name'=>'shouye2',
'alias' =>'index2' ,
'url' => url('test/dd2'),
'children'=>[
[
'name'=>'shouye2--children1',
'alias' =>'index' ,
'url' => url('test/dd'),
'children'=>[
[
'name'=>'shouye1xxx',
'alias' =>'index' ,
'url' => url('test/dd'),
'children'=>[

]
]
]
],
[
'name'=>'shouye2--children2',
'alias' =>'index' ,
'url' => url('test/dd'),
'children'=>[

]
],
]
]
];


$this->assign('tree_data' , $tree_data);
最佳答案
评论( 相关
后面还有条评论,点击查看>>