You've already forked joomla_test
							
							
		
			
	
	
		
			179 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			179 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @version   $Id: RokMenuNodeBase.php 4585 2012-10-27 01:44:54Z btowles $
							 | 
						||
| 
								 | 
							
								 * @author    RocketTheme http://www.rockettheme.com
							 | 
						||
| 
								 | 
							
								 * @copyright Copyright (C) 2007 - 2013 RocketTheme, LLC
							 | 
						||
| 
								 | 
							
								 * @license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 only
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								require_once(dirname(__FILE__) . '/RokMenuIterator.php');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if (!class_exists('RokMenuNodeBase')) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    class RokMenuNodeBase implements IteratorAggregate {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        function getIterator() {
							 | 
						||
| 
								 | 
							
								            return new RokMenuIterator($this);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        /**
							 | 
						||
| 
								 | 
							
								         * @var int
							 | 
						||
| 
								 | 
							
								         */
							 | 
						||
| 
								 | 
							
								        protected $id = 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        /**
							 | 
						||
| 
								 | 
							
								         * @var int
							 | 
						||
| 
								 | 
							
								         */
							 | 
						||
| 
								 | 
							
								        protected $parent = 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        /**
							 | 
						||
| 
								 | 
							
								         * @var RokMenuNodeBase
							 | 
						||
| 
								 | 
							
								         */
							 | 
						||
| 
								 | 
							
								        protected $parentRef = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        /**
							 | 
						||
| 
								 | 
							
								         * @var int
							 | 
						||
| 
								 | 
							
								         */
							 | 
						||
| 
								 | 
							
								        protected $level = -1;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        /**
							 | 
						||
| 
								 | 
							
								         * @var array
							 | 
						||
| 
								 | 
							
								         */
							 | 
						||
| 
								 | 
							
								        protected $children = array();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        /**
							 | 
						||
| 
								 | 
							
								         * Gets the id
							 | 
						||
| 
								 | 
							
								         * @access public
							 | 
						||
| 
								 | 
							
								         * @return integer
							 | 
						||
| 
								 | 
							
								         */
							 | 
						||
| 
								 | 
							
								        public function getId() {
							 | 
						||
| 
								 | 
							
								            return $this->id;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        /**
							 | 
						||
| 
								 | 
							
								         * Sets the id
							 | 
						||
| 
								 | 
							
								         * @access public
							 | 
						||
| 
								 | 
							
								         * @param integer $id
							 | 
						||
| 
								 | 
							
								         */
							 | 
						||
| 
								 | 
							
								        public function setId($id) {
							 | 
						||
| 
								 | 
							
								            $this->id = $id;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        /**
							 | 
						||
| 
								 | 
							
								         * Gets the level
							 | 
						||
| 
								 | 
							
								         * @access public
							 | 
						||
| 
								 | 
							
								         * @return integer
							 | 
						||
| 
								 | 
							
								         */
							 | 
						||
| 
								 | 
							
								        public function getLevel() {
							 | 
						||
| 
								 | 
							
								            return $this->level;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        /**
							 | 
						||
| 
								 | 
							
								         * Sets the level
							 | 
						||
| 
								 | 
							
								         * @access public
							 | 
						||
| 
								 | 
							
								         * @param integer $level
							 | 
						||
| 
								 | 
							
								         */
							 | 
						||
| 
								 | 
							
								        public function setLevel($level) {
							 | 
						||
| 
								 | 
							
								            $this->level = $level;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        /**
							 | 
						||
| 
								 | 
							
								         * Gets the parent
							 | 
						||
| 
								 | 
							
								         * @access public
							 | 
						||
| 
								 | 
							
								         * @return integer
							 | 
						||
| 
								 | 
							
								         */
							 | 
						||
| 
								 | 
							
								        public function getParent() {
							 | 
						||
| 
								 | 
							
								            return $this->parent;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        /**
							 | 
						||
| 
								 | 
							
								         * Sets the parent
							 | 
						||
| 
								 | 
							
								         * @access public
							 | 
						||
| 
								 | 
							
								         * @param integer $parent
							 | 
						||
| 
								 | 
							
								         */
							 | 
						||
| 
								 | 
							
								        public function setParent($parent) {
							 | 
						||
| 
								 | 
							
								            $this->parent = $parent;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        /**
							 | 
						||
| 
								 | 
							
								         * @return RokMenuNodeBase
							 | 
						||
| 
								 | 
							
								         */
							 | 
						||
| 
								 | 
							
								        public function getParentRef() {
							 | 
						||
| 
								 | 
							
								            return $this->parentRef;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        /**
							 | 
						||
| 
								 | 
							
								         * @param RokmenuNodeBase $parentRef
							 | 
						||
| 
								 | 
							
								         * @return void
							 | 
						||
| 
								 | 
							
								         */
							 | 
						||
| 
								 | 
							
								        public function setParentRef(RokmenuNodeBase & $parentRef) {
							 | 
						||
| 
								 | 
							
								            $this->parentRef = &$parentRef;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        /**
							 | 
						||
| 
								 | 
							
								         * @param  $children
							 | 
						||
| 
								 | 
							
								         * @return void
							 | 
						||
| 
								 | 
							
								         */
							 | 
						||
| 
								 | 
							
								        public function setChildren(array $children) {
							 | 
						||
| 
								 | 
							
								            $this->children = $children;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        /**
							 | 
						||
| 
								 | 
							
								         * @param RokMenuNodeBase $node
							 | 
						||
| 
								 | 
							
								         * @return void
							 | 
						||
| 
								 | 
							
								         */
							 | 
						||
| 
								 | 
							
								        public function addChild(RokMenuNodeBase &$node) {
							 | 
						||
| 
								 | 
							
								            if (null == $this->children) {
							 | 
						||
| 
								 | 
							
								                $this->children = array();
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            $node->setParentRef($this);
							 | 
						||
| 
								 | 
							
								            $node->setLevel($this->getLevel()+1);
							 | 
						||
| 
								 | 
							
								            $this->children[$node->getId()] = $node;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        /**
							 | 
						||
| 
								 | 
							
								         * @return bool
							 | 
						||
| 
								 | 
							
								         */
							 | 
						||
| 
								 | 
							
								        public function hasChildren() {
							 | 
						||
| 
								 | 
							
								            return !empty($this->children);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        /**
							 | 
						||
| 
								 | 
							
								         * @return array
							 | 
						||
| 
								 | 
							
								         */
							 | 
						||
| 
								 | 
							
								        public function &getChildren() {
							 | 
						||
| 
								 | 
							
								            return $this->children;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        /**
							 | 
						||
| 
								 | 
							
								         * @param  $node_id
							 | 
						||
| 
								 | 
							
								         * @return bool
							 | 
						||
| 
								 | 
							
								         */
							 | 
						||
| 
								 | 
							
								        public function removeChild($node_id) {
							 | 
						||
| 
								 | 
							
								            if (array_key_exists($node_id, $this->children)) {
							 | 
						||
| 
								 | 
							
								                unset($this->children[$node_id]);
							 | 
						||
| 
								 | 
							
								                return true;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            return false;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        /**
							 | 
						||
| 
								 | 
							
								         * @param $menuId
							 | 
						||
| 
								 | 
							
								         */
							 | 
						||
| 
								 | 
							
								        public function setMenuId($menuId){
							 | 
						||
| 
								 | 
							
								            $this->menuId = $menuId;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        /**
							 | 
						||
| 
								 | 
							
								         * @return null
							 | 
						||
| 
								 | 
							
								         */
							 | 
						||
| 
								 | 
							
								        public function getMenuId(){
							 | 
						||
| 
								 | 
							
								            return $this->menuId;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |