joomla_test/modules/mod_roknavmenu/lib/librokmenu/RokMenuNodeBase.php
2020-01-02 22:20:31 +07:00

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;
}
}
}