| Current Path : /home/balossw/www/temp/common/cms/includes/classes/ |
| Current File : /home/balossw/www/temp/common/cms/includes/classes/menu.class.php |
<?php
/*---------------------------------------------------------------------------
File name ............ includes/classes/menu.class.php
Project .............. Owebia CMS
Author ............... Antoine Lemoine
Creation date ........ 31.08.2004
Modification date .... 22.09.2010
---------------------------------------------------------------------------*/
class MenuItem
{
var $label;
var $url;
var $tooltip;
var $selected;
var $class_name;
function MenuItem($label, $url, $selected=false, $class_name='', $tooltip='') {
$this->label = $label;
$this->url = $url;
$this->selected = $selected;
$this->class_name = $class_name;
$this->tooltip = $tooltip;
}
function getData() {
$data = array(
'url' => $this->url,
'label' => $this->label,
'selected' => $this->selected,
'class_name' => $this->class_name,
'tooltip' => $this->tooltip,
);
if (preg_match('#^javascript:#',$this->url)) {
$data['onclick'] = $this->url;
$data['url'] = '#';
}
return $data;
}
}
class Menu
{
var $items;
var $submenu;
function Menu($items=null) {
if ($items==null) $this->items = array();
else if (!is_array($items)) $this->items = array($items);
else $this->items = $items;
}
function addSubMenu($submenu) {
$this->submenu = $submenu;
}
function add($item) {
$this->items[] = $item;
}
function insert($item) {
array_unshift($this->items,$item);
}
function toString() {
global $global;
if (count($this->items)>0 || isset($this->submenu)) {
$template = $global->tpl_manager->createTemplate('page-menu.tpl');
for ($i=0; $i<count($this->items); $i++) {
$data = $this->items[$i]->getData();
$template->insertBloc('page-menu-item',$data);
}
$template->process('page-menu',
array(
'submenu_enabled' => isset($this->submenu),
)
);
if (isset($this->submenu)) {
$this->submenu->processTemplate($template);
}
return $template->toString();
}
return '';
}
}
class SubMenu
{
var $items;
function SubMenu($items=null) {
if ($items==null) { $this->items = array(); }
else if (!is_array($items)) { $this->items = array($items); }
else { $this->items = $items; }
}
function add($item) {
$this->items[] = $item;
}
function insert($item) {
array_unshift($this->items,$item);
}
function processTemplate(&$template) {
$submenu_id = $template->insertBloc('page-submenu',array());
for ($i=0; $i<count($this->items); $i++) {
$data = $this->items[$i]->getData();
$template->insertBloc('page-submenu-item',$data,$submenu_id);
}
}
}
?>