138 lines
2.4 KiB
PHP
138 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace Catalyst\MenuBundle\Menu;
|
|
|
|
class Item
|
|
{
|
|
protected $id;
|
|
protected $icon;
|
|
protected $link;
|
|
protected $label;
|
|
protected $children;
|
|
protected $selected;
|
|
protected $parent;
|
|
protected $acl_key;
|
|
|
|
public function __construct()
|
|
{
|
|
$this->id = '';
|
|
$this->icon = null;
|
|
$this->link = null;
|
|
$this->label = '';
|
|
$this->children = [];
|
|
$this->selected = false;
|
|
$this->parent = null;
|
|
$this->acl_key = null;
|
|
}
|
|
|
|
// setters
|
|
public function setID($id)
|
|
{
|
|
$this->id = $id;
|
|
return $this;
|
|
}
|
|
|
|
public function setIcon($icon)
|
|
{
|
|
$this->icon = $icon;
|
|
return $this;
|
|
}
|
|
|
|
public function setLink($link)
|
|
{
|
|
$this->link = $link;
|
|
return $this;
|
|
}
|
|
|
|
public function setLabel($label)
|
|
{
|
|
$this->label = $label;
|
|
return $this;
|
|
}
|
|
|
|
public function setParent(self $parent)
|
|
{
|
|
$this->parent = $parent;
|
|
return $this;
|
|
}
|
|
|
|
public function addChild(self $child)
|
|
{
|
|
$child->setParent($this);
|
|
|
|
// check if selected
|
|
if ($child->isSelected())
|
|
$this->setSelected();
|
|
|
|
$this->children[] = $child;
|
|
return $this;
|
|
}
|
|
|
|
public function setSelected($sel = true, $to_bubble = true)
|
|
{
|
|
if ($sel)
|
|
{
|
|
$this->selected = true;
|
|
// bubble up to parents
|
|
if ($this->parent != null && $to_bubble)
|
|
$this->parent->setSelected(true, true);
|
|
}
|
|
else
|
|
$this->selected = false;
|
|
return $this;
|
|
}
|
|
|
|
public function setACLKey($key)
|
|
{
|
|
$this->acl_key = $key;
|
|
return $this;
|
|
}
|
|
|
|
// getters
|
|
public function getID()
|
|
{
|
|
return $this->id;
|
|
}
|
|
|
|
public function getIcon()
|
|
{
|
|
return $this->icon;
|
|
}
|
|
|
|
public function getLink()
|
|
{
|
|
return $this->link;
|
|
}
|
|
|
|
public function getLabel()
|
|
{
|
|
return $this->label;
|
|
}
|
|
|
|
public function getChildren()
|
|
{
|
|
return $this->children;
|
|
}
|
|
|
|
public function hasChildren()
|
|
{
|
|
if (count($this->children) > 0)
|
|
return true;
|
|
return false;
|
|
}
|
|
|
|
public function isSelected()
|
|
{
|
|
return $this->selected;
|
|
}
|
|
|
|
public function getParent()
|
|
{
|
|
return $this->parent;
|
|
}
|
|
|
|
public function getACLKey()
|
|
{
|
|
return $this->acl_key;
|
|
}
|
|
}
|