From 07f5140771388c9e0c8a99b0dd2e5d950bdb173b Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Thu, 14 Oct 2021 15:16:42 +1100 Subject: moving h-source subdir out. --- Library/Helper/Menu.php | 109 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100755 Library/Helper/Menu.php (limited to 'Library/Helper/Menu.php') 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 @@ +. + +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']) ? " " : 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 .= "
$icon $text
\n"; + } + } + } + return $menu; + } + +} \ No newline at end of file -- cgit v1.2.3