aboutsummaryrefslogtreecommitdiff
path: root/Library/Helper/Menu.php
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Helper/Menu.php')
-rwxr-xr-xLibrary/Helper/Menu.php109
1 files changed, 109 insertions, 0 deletions
diff --git a/Library/Helper/Menu.php b/Library/Helper/Menu.php
new file mode 100755
index 0000000..86ee24a
--- /dev/null
+++ b/Library/Helper/Menu.php
@@ -0,0 +1,109 @@
+<?php
+
+// EasyGiant is a PHP framework for creating and managing dynamic content
+//
+// Copyright (C) 2009 - 2011 Antonio Gallo
+// See COPYRIGHT.txt and LICENSE.txt.
+//
+// This file is part of EasyGiant
+//
+// EasyGiant 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 3 of the License, or
+// (at your option) any later version.
+//
+// EasyGiant 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 EasyGiant. If not, see <http://www.gnu.org/licenses/>.
+
+if (!defined('EG')) die('Direct access not allowed!');
+
+//class to write the top menĂ¹ of the view files
+class Helper_Menu extends Helper_Html
+{
+
+ public $panelController; //panel controller
+ public $controller;
+
+ public $links = array();
+
+ //instance of Lang_{language}_Generic
+ public $strings = null;
+
+ public function __construct()
+ {
+ $baseUrl = '/Public/Img/Icons/elementary_2_5/';
+
+ //get the generic language class
+ $this->strings = Factory_Strings::generic(Params::$language);
+
+ $this->links = array(
+
+ 'back' => array(
+ 'title' => $this->strings->gtext('back'),
+ 'class' => 'mainMenuItem',
+ 'text' => $this->strings->gtext('Back'),
+ 'url' => 'main',
+ 'icon' => $baseUrl."left.png",
+ ),
+
+ 'add' => array(
+ 'title' => $this->strings->gtext('add a new record'),
+ 'class' => 'mainMenuItem',
+ 'text' => $this->strings->gtext('Add'),
+ 'url' => 'form/insert',
+ 'icon' => $baseUrl."add.png",
+ ),
+
+ 'panel' => array(
+ 'title' => $this->strings->gtext('back to the Panel'),
+ 'class' => 'mainMenuItem',
+ 'text' => $this->strings->gtext('Panel'),
+ 'url' => 'main',
+ 'icon' => $baseUrl."panel.png",
+ )
+
+ );
+ }
+
+ public function build($controller = null, $panelController = null)
+ {
+ $this->controller = $controller;
+ $this->panelController = $panelController;
+ }
+
+ //$voices: comma-separated list of links you want to print
+ public function render($linksList)
+ {
+ $linksArray = explode(',',$linksList);
+ $menu = null;
+ foreach ($linksArray as $linkName)
+ {
+ //check that the voice exists
+ if (array_key_exists($linkName,$this->links))
+ {
+ //check that the text and the ure are defined
+ if (isset($this->links[$linkName]['text']) and isset($this->links[$linkName]['url']))
+ {
+ $title = isset($this->links[$linkName]['title']) ? "title='".$this->links[$linkName]['title']."'" : null;
+ $class = isset($this->links[$linkName]['class']) ? "class='".$this->links[$linkName]['class']."'" : null;
+ $icon = isset($this->links[$linkName]['icon']) ? "<img class='top_menu_icon' src='".$this->links[$linkName]['icon']."'> " : null;
+
+ //choose the controller (current or panel)
+ $controller = (strcmp($linkName,'panel') === 0) ? $this->panelController.'/' : $this->controller.'/';
+ $viewStatus = (strcmp($linkName,'panel') === 0) ? null : $this->viewStatus;
+
+ $href = Url::getRoot($controller.$this->links[$linkName]['url'].$viewStatus);
+ $text = $this->links[$linkName]['text'];
+ $menu .= "<div $class>$icon <a $title href='$href'>$text</a></div>\n";
+ }
+ }
+ }
+ return $menu;
+ }
+
+} \ No newline at end of file