/** * 格式化数据为层级化数据 * @param type $data 需要格式化的 * @param type $format 数据的原索引格式[主键字段名(例如id),层级字段名(例如pid)] * @param type $pid * @return type */ function formatLevelData2($data, $format, $pid = 0) { $arr = array(); foreach ($data as $v) { if ($v[$format[1]] == $pid) { $arr[$v[$format[0]]] = $v; $arr[$v[$format[0]]]["son_data"] = formatLevelData2($data, $format, $v[$format[0]]); } } return $arr; }
function menuList() { if ($_SERVER['REQUEST_METHOD'] == 'POST') { foreach ($_POST['sort'] as $key => $value) { $this->backend_menu->updateMenu('id=' . $key, array('sort' => $value)); go('menuList'); } } $menus = $this->backend_menu->backend_menu->findall(); $menus = formatLevelData2($menus, array('id', 'parent_id')); $this->assign('menus', $menus); $this->display(); }
public function arcList() { $channels = $this->channel->field('id,pid,title,type')->findall(); $this->assign('channels', formatLevelData2($channels, array('id', 'pid'))); $this->display(); }
/** * 修改节点 */ public function editNode() { $db = M('node'); if ($_SERVER['REQUEST_METHOD'] == 'POST') { $db->where('nid=' . $_GET['nid'])->update(); $this->success('修改节点信息成功', 'nodeList'); } $node = $db->where('nid=' . $_GET['nid'])->find(); $nodes = $db->field('nid,title,pid')->order('sort,nid')->findall(); $nodes = formatLevelData2($nodes, array('nid', 'pid')); $this->assign('nodes', $nodes); $this->assign('node', $node); $this->display(); }