aboutsummaryrefslogtreecommitdiff
path: root/admin/Library/Helper/Menu.php
diff options
context:
space:
mode:
authorYuchen Pei <hi@ypei.me>2021-10-14 15:16:42 +1100
committerYuchen Pei <hi@ypei.me>2021-10-14 15:16:42 +1100
commit07f5140771388c9e0c8a99b0dd2e5d950bdb173b (patch)
tree323c00faef1edc7dea2e88ff581cc2258b2b6432 /admin/Library/Helper/Menu.php
parente119be145500700f3c465e12664403a07530a421 (diff)
moving h-source subdir out.
Diffstat (limited to 'admin/Library/Helper/Menu.php')
-rwxr-xr-xadmin/Library/Helper/Menu.php75
1 files changed, 75 insertions, 0 deletions
diff --git a/admin/Library/Helper/Menu.php b/admin/Library/Helper/Menu.php
new file mode 100755
index 0000000..119ada8
--- /dev/null
+++ b/admin/Library/Helper/Menu.php
@@ -0,0 +1,75 @@
+<?php
+
+// All EasyGiant code 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.
+// See COPYRIGHT.txt and LICENSE.txt.
+
+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(
+
+ 'back' => array(
+ 'title' => 'back',
+ 'class' => 'mainMenuItem',
+ 'text' => 'Back',
+ 'url' => 'main'
+ ),
+
+ 'add' => array(
+ 'title' => 'add a new record',
+ 'class' => 'mainMenuItem',
+ 'text' => 'Add',
+ 'url' => 'form/insert'
+ ),
+
+ 'panel' => array(
+ 'title' => 'back to the Panel',
+ 'class' => 'mainMenuItem',
+ 'text' => 'Panel',
+ 'url' => 'main'
+ )
+
+ );
+
+ 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;
+
+ //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><a $title href='$href'>$text</a></div>\n";
+ }
+ }
+ }
+ return $menu;
+ }
+
+} \ No newline at end of file