diff options
Diffstat (limited to 'core/libraries/Menu.php')
-rw-r--r-- | core/libraries/Menu.php | 187 |
1 files changed, 0 insertions, 187 deletions
diff --git a/core/libraries/Menu.php b/core/libraries/Menu.php deleted file mode 100644 index d19d8b1e..00000000 --- a/core/libraries/Menu.php +++ /dev/null @@ -1,187 +0,0 @@ -<?php defined("SYSPATH") or die("No direct script access."); -/** - * Gallery - a web based photo album viewer and editor - * Copyright (C) 2000-2009 Bharat Mediratta - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or (at - * your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. - */ -class Menu_Element { - public $label; - public $url; - public $css_id; - public $css_class; - public $id; - - /** - * Set the id - * @chainable - */ - public function id($id) { - $this->id = $id; - return $this; - } - - /** - * Set the label - * @chainable - */ - public function label($label) { - $this->label = $label; - return $this; - } - - /** - * Set the url - * @chainable - */ - public function url($url) { - $this->url = $url; - return $this; - } - - /** - * Set the css id - * @chainable - */ - public function css_id($css_id) { - $this->css_id = $css_id; - return $this; - } - - /** - * Set the css class - * @chainable - */ - public function css_class($css_class) { - $this->css_class = $css_class; - return $this; - } - -} - -/** - * Menu element that provides a link to a new page. - */ -class Menu_Element_Link extends Menu_Element { - public function __toString() { - if (isset($this->css_id) && !empty($this->css_id)) { - $css_id = " id=\"$this->css_id\""; - } else { - $css_id = ""; - } - if (isset($this->css_class) && !empty($this->css_class)) { - $css_class = " $this->css_class"; - } else { - $css_class = ""; - } - return "<li><a$css_id class=\"gMenuElement$css_class\" href=\"$this->url\" " . - "title=\"$this->label\">$this->label</a></li>"; - } -} - -/** - * Menu element that provides a pop-up dialog - */ -class Menu_Element_Dialog extends Menu_Element { - public function __toString() { - if (isset($this->css_id) && !empty($this->css_id)) { - $css_id = " id=\"$this->css_id\""; - } else { - $css_id = ""; - } - if (isset($this->css_class) && !empty($this->css_class)) { - $css_class = " $this->css_class"; - } else { - $css_class = ""; - } - return "<li><a$css_id class=\"gMenuLink$css_class\" href=\"$this->url\" " . - "title=\"$this->label\">$this->label</a></li>"; - } -} - -/** - * Root menu or submenu - */ -class Menu_Core extends Menu_Element { - public $elements; - public $is_root = false; - - /** - * Return an instance of a Menu_Element - * @chainable - */ - public static function factory($type) { - switch($type) { - case "link": - return new Menu_Element_Link(); - - case "dialog": - return new Menu_Element_Dialog(); - - case "root": - $menu = new Menu(); - $menu->is_root = true; - return $menu; - - case "submenu": - return new Menu(); - - default: - throw Exception("@todo UNKNOWN_MENU_TYPE"); - } - } - - public function __construct() { - $this->elements = array(); - } - - /** - * Add a new element to this menu - */ - public function append($menu_element) { - $this->elements[$menu_element->id] = $menu_element; - return $this; - } - - /** - * Add a new element to this menu - */ - public function add_after($target_id, $new_menu_element) { - $copy = array(); - foreach ($this->elements as $id => $menu_element) { - $copy[$id] = $menu_element; - if ($id == $target_id) { - $copy[$new_menu_element->id] = $new_menu_element; - } - } - $this->elements = $copy; - return $this; - } - - /** - * Retrieve a Menu_Element by id - */ - public function get($id) { - return $this->elements[$id]; - } - - public function __toString() { - $html = $this->is_root ? "<ul class=\"gMenu\">" : - "<li><a href=#>$this->label</a><ul class=\"gMenu\">"; - $html .= implode("\n", $this->elements); - $html .= $this->is_root ? "</ul>" : "</ul></li>"; - return $html; - } -} |