true,
);
// 获取所有导航
$map['status'] = array('egt', '0');
$map['group'] = $group;
$data_list = D('Admin/Nav')
->where($map)
->order('sort asc, id asc')
->select();
// 给文章列表类型加上链接
foreach ($data_list as &$val) {
if ($val['type'] == 'post') {
$val['title'] = '' . $val['title'] . '';
}
}
// 转换成树状列表
$tree = new Tree();
$data_list = $tree->array2tree($data_list);
// 设置Tab导航数据列表
$nav_group_list = C('NAV_GROUP_LIST'); // 获取分类分组
foreach ($nav_group_list as $key => $val) {
$tab_list[$key]['title'] = $val;
$tab_list[$key]['href'] = U('index', array('group' => $key));
}
// 使用Builder快速建立列表页面。
$builder = new \Common\Builder\ListBuilder();
$builder->setMetaTitle('导航列表') // 设置页面标题
->addTopButton('addnew', array('href' => U('Admin/Nav/add', array('group' => $group)))) // 添加新增按钮
->addTopButton('resume') // 添加启用按钮
->addTopButton('forbid') // 添加禁用按钮
->addTopButton('delete') // 添加删除按钮
->setSearch('请输入ID/导航名称', U('index', array('group' => $group)))
->setTabNav($tab_list, $group) // 设置页面Tab导航
->addTableColumn('id', 'ID')
->addTableColumn('icon', '图标', 'icon')
->addTableColumn('title_show', '标题')
->addTableColumn('sort', '排序')
->addTableColumn('status', '状态', 'status')
->addTableColumn('right_button', '操作', 'btn')
->setTableDataList($data_list) // 数据列表
->addRightButton('edit', array('href' => U('edit', array('group' => $group, 'id' => '__data_id__')))) // 添加编辑按钮
->addRightButton('forbid') // 添加禁用/启用按钮
->addRightButton('delete') // 添加删除按钮
->display();
}
// 根据导航类型设置表单项目
private $extra_html = <<
$(function(){
$('input[name="type"]').change(function() {
var type = $(this).val();
// 链接类型
if (type == 'link') {
$('.item_url').removeClass('hidden');
$('.item_content').addClass('hidden');
$('.item_module_name').addClass('hidden');
// 模块类型
} else if (type == 'module') {
$('.item_url').addClass('hidden');
$('.item_content').addClass('hidden');
$('.item_module_name').removeClass('hidden');
// 单页类型
} else if (type == 'page') {
$('.item_url').addClass('hidden');
$('.item_content').removeClass('hidden');
$('.item_module_name').addClass('hidden');
// 文章列表类型
} else if (type == 'post') {
$('.item_url').addClass('hidden');
$('.item_content').addClass('hidden');
$('.item_module_name').addClass('hidden');
} else {
$('.item_url').addClass('hidden');
$('.item_content').addClass('hidden');
$('.item_module_name').addClass('hidden');
}
});
});
EOF;
/**
* 新增导航
*
*/
public function add($group)
{
if (IS_POST) {
$nav_object = D('Admin/Nav');
$data = $nav_object->create();
if ($data) {
$id = $nav_object->add($data);
if ($id) {
$this->success('新增成功', U('index', array('group' => $group)));
} else {
$this->error('新增失败');
}
} else {
$this->error($nav_object->getError());
}
} else {
// 使用FormBuilder快速建立表单页面。
$builder = new \Common\Builder\FormBuilder();
$builder->setMetaTitle('新增导航') // 设置页面标题
->setPostUrl(U('', array('group' => $group))) // 设置表单提交地址
->addFormItem('group', 'hidden', '导航分组', '导航分组')
->addFormItem('pid', 'select', '上级导航', '上级导航', select_list_as_tree('Admin/Nav', array('group' => $group), '顶级导航'))
->addFormItem('title', 'text', '导航标题', '导航前台显示标题')
->addFormItem('type', 'radio', '导航类型', '导航类型', D('Admin/Nav')->nav_type())
->addFormItem('url', 'text', '外链URL地址', '支持http://格式或者TP的U函数解析格式')
->addFormItem('content', 'kindeditor', '单页内容', '单页内容', null, 'hidden')
->addFormItem('target', 'radio', '打开方式', '打开方式', array('' => '当前窗口', '_blank' => '新窗口打开'))
->addFormItem('icon', 'icon', '图标', '导航图标')
->addFormItem('sort', 'num', '排序', '用于显示的顺序')
->setFormData(array('type' => 'link', 'group' => $group))
->setExtraHtml($this->extra_html)
->display();
}
}
/**
* 编辑导航
*
*/
public function edit($id, $group)
{
if (IS_POST) {
$nav_object = D('Admin/Nav');
$data = $nav_object->create();
if ($data) {
if ($nav_object->save($data)) {
$this->success('更新成功', U('index', array('group' => $group)));
} else {
$this->error('更新失败');
}
} else {
$this->error($nav_object->getError());
}
} else {
$info = D('Admin/Nav')->find($id);
// 使用FormBuilder快速建立表单页面。
$builder = new \Common\Builder\FormBuilder();
$builder->setMetaTitle('编辑导航') // 设置页面标题
->setPostUrl(U('')) // 设置表单提交地址
->addFormItem('id', 'hidden', 'ID', 'ID')
->addFormItem('group', 'hidden', '导航分组', '导航分组')
->addFormItem('pid', 'select', '上级导航', '上级导航', select_list_as_tree('Admin/Nav', array('group' => $group), '顶级导航'))
->addFormItem('title', 'text', '导航标题', '导航前台显示标题')
->addFormItem('type', 'radio', '导航类型', '导航类型', D('Admin/Nav')->nav_type())
->addFormItem('url', 'text', '外链URL地址', '支持http://格式或者TP的U函数解析格式', null, $info['type'] === 'link' ? '' : 'hidden')
->addFormItem('content', 'kindeditor', '单页内容', '单页内容', null, $info['type'] === 'page' ? '' : 'hidden')
->addFormItem('target', 'radio', '打开方式', '打开方式', array('' => '当前窗口', '_blank' => '新窗口打开'))
->addFormItem('icon', 'icon', '图标', '导航图标')
->addFormItem('sort', 'num', '排序', '用于显示的顺序')
->setFormData($info)
->setExtraHtml($this->extra_html)
->display();
}
}
}