示例#1
0
文件: menu.php 项目: CrazyBobik/4J
 public function genMenu(&$res, $i, $cnt)
 {
     $menu = '';
     $subMenu = '';
     $leaf = new Entity_Tree();
     $leaf->init($res[$i]);
     $next = new Entity_Tree();
     $j = $i + 1;
     if ($j <= $cnt) {
         $next->init($res[$j]);
     } else {
         return array('', $i);
     }
     if ($next->getPid() == $leaf->getId()) {
         $tmp = $this->genMenu($res, $j, $cnt);
         $subMenu = '<div class="sub-menu">' . $tmp[0] . '</div>';
         $j = $tmp[1];
     }
     $fa = $leaf->getLevel() == 2 ? $this->getMainFaClass($leaf->getName()) : $this->getFaClass($leaf->getType());
     $menu .= $this->genOnePoint($leaf, $fa, 'update-tree-leaf', $subMenu);
     $next->init($res[$j]);
     if ($next->getPid() == $leaf->getPid()) {
         $tmp = $this->genMenu($res, $j, $cnt);
         $menu .= $tmp[0];
         $j = $tmp[1];
     }
     return array($menu, $j);
 }
示例#2
0
文件: tree.php 项目: CrazyBobik/4J
    /**
     * @param Entity_Tree $tree
     * @return mixed
     */
    public function addTree($tree)
    {
        $rk = $tree->getRightKey();
        $lev = $tree->getLevel();
        $tit = $tree->getTitle();
        $nam = $tree->getName();
        $link = $tree->getLink();
        $typ = $tree->getType();
        $tid = $tree->getTypeId();
        $pid = $tree->getPid();
        $stmt = $this->DB->prepare('UPDATE `site_tree`
										SET `right_key` = `right_key` + 2,
											`left_key` = IF(`left_key` > :right_key,
															`left_key` + 2, `left_key`)
										WHERE `right_key` >= :right_key');
        $stmt->bindParam(':right_key', $rk);
        $stmt->execute();
        $stmt = $this->DB->prepare('INSERT INTO `site_tree`
										SET `left_key` = :right_key,
											`right_key` = :right_key + 1,
											`level` = :level + 1,
											`title`=:title,
											`name`=:name,
											`link`=:link,
											`type`=:type,
											`type_id`=:type_id,
											`pid`=:pid');
        $stmt->bindParam(':right_key', $rk);
        $stmt->bindParam(':level', $lev);
        $stmt->bindParam(':title', $tit);
        $stmt->bindParam(':name', $nam);
        $stmt->bindParam(':link', $link);
        $stmt->bindParam(':type', $typ);
        $stmt->bindParam(':type_id', $tid);
        $stmt->bindParam(':pid', $pid);
        $stmt->execute();
        return $this->DB->lastInsertId();
    }