aboutsummaryrefslogtreecommitdiff
path: root/h-source/admin/Library/Helper
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 /h-source/admin/Library/Helper
parente119be145500700f3c465e12664403a07530a421 (diff)
moving h-source subdir out.
Diffstat (limited to 'h-source/admin/Library/Helper')
-rwxr-xr-xh-source/admin/Library/Helper/Array.php11
-rwxr-xr-xh-source/admin/Library/Helper/Html.php14
-rwxr-xr-xh-source/admin/Library/Helper/List.php278
-rwxr-xr-xh-source/admin/Library/Helper/Menu.php75
-rwxr-xr-xh-source/admin/Library/Helper/Pages.php108
-rwxr-xr-xh-source/admin/Library/Helper/Popup.php87
-rw-r--r--h-source/admin/Library/Helper/index.html1
7 files changed, 0 insertions, 574 deletions
diff --git a/h-source/admin/Library/Helper/Array.php b/h-source/admin/Library/Helper/Array.php
deleted file mode 100755
index 32a4c27..0000000
--- a/h-source/admin/Library/Helper/Array.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?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!');
-
-//Helper class to manage arrays
-class Helper_Array extends ArrayExt {
-
-} \ No newline at end of file
diff --git a/h-source/admin/Library/Helper/Html.php b/h-source/admin/Library/Helper/Html.php
deleted file mode 100755
index b3648be..0000000
--- a/h-source/admin/Library/Helper/Html.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?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!');
-
-//base class of all the Helper classes that returns HTML
-class Helper_Html {
-
- public $viewArgs = array(); //arguments of the view action (to mantain the status, ex: page,language,etc)
- public $viewStatus = null; //additional string to the url to define the status of the view action (ex: page,language,etc)
-
-} \ No newline at end of file
diff --git a/h-source/admin/Library/Helper/List.php b/h-source/admin/Library/Helper/List.php
deleted file mode 100755
index 660ac67..0000000
--- a/h-source/admin/Library/Helper/List.php
+++ /dev/null
@@ -1,278 +0,0 @@
-<?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 create the HTML for the view action
-class Helper_List extends Helper_Html {
-
- protected $_itemsList = array(); //2-dimensional associative array containing the list items
- //keys: type,table:field,controller/action,value
- protected $_head = array(); //2-dimensional array containing the head of the table
- protected $_identifierName;
-
- protected $_recordNumber = null; //number of records from the table
-
- protected $_allowedItems = array('simpleLink','simpleText','delForm','editForm','associateForm','moveupForm','movedownForm'); //type of items allowed
-
- //set if the submit buttons have to be images or not (it can be yse or not)
- public $submitImageType = 'no';
-
- //set the files of the images
- public $submitImages = array(
- 'edit' => null,
- 'del' => null,
- 'up' => null,
- 'down' => null,
- 'link' => null
- );
-
- //set the titles of the input:submit
- public $submitTitles = array(
- 'edit' => 'edit the record',
- 'del' => 'delete the record',
- 'up' => 'move up the record',
- 'down' => 'move down the record',
- 'link' => 'associate the record'
- );
-
- //$position: array. First element: page number, second element: number of pages
- public $position = array();
-
- //it can be: both, top, bottom, none
- protected $_boundaries = 'none';
-
- public function build($identifierName = 'identifier')
- {
- $this->_identifierName = $identifierName;
- }
-
- public function setIdentifierName($identifierName)
- {
- $this->_identifierName = $identifierName;
- }
-
- //add a list Item. $type: the type of the item, $field: the table.field to exctract (use colon to separate the table and the field),$action: controller/action,$value=if type == link->the value of the link
- public function addItem($type, $action = '', $field = '', $name = '') {
- if (!in_array($type,$this->_allowedItems)) {
- throw new Exception('"'.$type. '" argument not allowed in '.__METHOD__.' method');
- }
- $temp=array();
- $temp['type'] = $type;
- $temp['action'] = $action;
- $temp['field'] = $field;
- $temp['name'] = $name;
- $this->_itemsList[] = $temp;
-
- //set the $this->_head array
- $head = array();
- $head['type'] = $type;
-
- if ($type === 'simpleText') {
- $head['action'] = $this->extractFieldName($action);
- } else {
- $head['action'] = '&nbsp';
- }
- $this->_head[] = $head;
- }
-
-
- //set the head of the table
- //$columnsName: name of the columns. It has to be a comma-separated list of strings
- public function setHead($columnsName = '')
- {
- //get the array from the list
- $columnsArray = explode(',',$columnsName);
- for ($i = 0; $i < count($columnsArray); $i++)
- {
- if ($i < count($this->_itemsList)) $this->_head[$i]['action'] = $columnsArray[$i];
- }
- }
-
-
- //$method to extract the field name from the $action string (;table:field;)
- public function extractFieldName($string) {
- $string = str_replace(';','',$string);
- return $string;
- }
-
- //replace the strings wrapped by ; with their correspondent value taken by the $recordArray associative array (a row of the select query)
- public function replaceFields($string,$rowArray) {
- $stringArray = explode(';',$string);
- for ($i = 0; $i < count($stringArray); $i++) {
- if (strstr($stringArray[$i],':')) {
- //check if a function has been indicated
- if (strstr($stringArray[$i],'|'))
- {
- //get the function
- $firstArray = explode('|',$stringArray[$i]);
- $func = $firstArray[0];
- //replace the fields
- $temp = explode(':',$firstArray[1]);
- $stringArray[$i] = $rowArray[$temp[0]][$temp[1]];
-
- if (!function_exists($func)) {
- throw new Exception('Error in <b>'.__METHOD__.'</b>: function <b>'.$func.'</b> does not exists..');
- }
- //apply the function
- $stringArray[$i] = call_user_func($func,$stringArray[$i]);
- }
- else
- {
- $temp = explode(':',$stringArray[$i]);
- $stringArray[$i] = $rowArray[$temp[0]][$temp[1]];
- }
- }
- }
- return implode('',$stringArray);
- }
-
- //call the method replaceFields upon the $items array using the associative array $rowArray
- public function replaceAll($item,$rowArray) {
- $item['action'] = $this->replaceFields($item['action'],$rowArray);
- $item['field'] = $this->replaceFields($item['field'],$rowArray);
- $item['name'] = $this->replaceFields($item['name'],$rowArray);
- return $item;
- }
-
- //wrap the column with the tag td
- public function wrapColumn($string, $className = null) {
- return wrap($string,array('td'=>$className));
- }
-
- //wrap the row with the tag tr
- public function wrapRow($string,$className = null) {
- return wrap($string,array('tr'=>$className));
- }
-
- public function wrapList($string) {
- return wrap($string,array('table'=>'listTable'));
- }
-
- //method to create the HTML of the head of the table
- public function createHead() {
- $htmlHead = null;
- foreach ($this->_head as $item) {
- $temp = $item['action'];
- $htmlHead .= $this->wrapColumn($temp,$item['type']);
- }
- return $htmlHead;
- }
-
- //create the HTML of a single row (values taken from the associative array $rowArray)
- public function getRowList($rowArray) {
- $htmlList = null;
- foreach ($this->_itemsList as $item) {
- $item = $this->replaceAll($item,$rowArray);
-
- if (($this->_boundaries === 'top' and $item['type'] === 'moveupForm') or ($this->_boundaries === 'bottom' and $item['type'] === 'movedownForm') or ($this->_boundaries === 'both' and ($item['type'] === 'moveupForm' or $item['type'] === 'movedownForm')))
- {
- $htmlList .= $this->wrapColumn('&nbsp',$item['type']);
- }
- else
- {
- $temp = call_user_func_array(array($this,$item['type']),array($item));
- $htmlList .= $this->wrapColumn($temp,$item['type']);
- }
- }
- return $htmlList;
- }
-
- //$index: record number
- public function ifInBoundaries($index)
- {
- $this->_boundaries = 'none';
-
- if (!empty($this->position))
- {
- if ($this->_recordNumber === 1 and strcmp($this->position[0],1) === 0)
- {
- $this->_boundaries = 'both';
- }
- else if ($index === 0 and strcmp($this->position[0],1) === 0)
- {
- $this->_boundaries = 'top';
- }
- else if ($index === ($this->_recordNumber-1) and strcmp($this->position[0],$this->position[1]) === 0)
- {
- $this->_boundaries = 'bottom';
- }
- }
-
- }
-
- //create the HTML of the entire list. $queryResult: the array coming from the select query
- public function render($queryResult)
- {
- //set the number of records
- $this->_recordNumber = count($queryResult);
- $htmlList = null;
- //create the HTML of the head of the record list
- $htmlList .= $this->wrapRow($this->createHead(),'listHead');
- for ($i = 0; $i < count($queryResult); $i++)
- {
- $this->ifInBoundaries($i);
- $temp = $this->getRowList($queryResult[$i]);
- $htmlList .= $this->wrapRow($temp,'listRow');
- }
- return $this->wrapList($htmlList);
- }
-
- public function generalForm($itemArray, $submitName, $submitValue)
- {
- $string = "<form class='listItemForm' action='".Url::getRoot(null).$itemArray['action'].$this->viewStatus."' method='POST'>\n";
- $name = (strcmp($itemArray['name'],'') !== 0) ? $itemArray['name'] : $submitName;
-
- if (strcmp($this->submitImageType,'yes') === 0)
- {
- $string .= "<input type='image' title='".$this->submitTitles[$submitValue]."' src='".$this->submitImages[$submitValue]."' value='$submitValue'>\n";
- $string .= "<input type='hidden' name='".$name."' value='$submitValue'>\n";
- }
- else
- {
- $string .= "<input type='submit' title='".$this->submitTitles[$submitValue]."' name='".$name."' value='$submitValue'>\n";
- }
-
- $string .= "<input type='hidden' name='".$this->_identifierName."' value='".$itemArray['field']."'>\n";
- $string .= "</form>\n";
- return $string;
- }
-
- public function moveupForm($itemArray)
- {
- return $this->generalForm($itemArray, 'moveupAction', 'up');
- }
-
- public function movedownForm($itemArray)
- {
- return $this->generalForm($itemArray, 'movedownAction', 'down');
- }
-
- public function editForm($itemArray)
- {
- return $this->generalForm($itemArray, 'generalAction', 'edit');
- }
-
- public function delForm($itemArray)
- {
- return $this->generalForm($itemArray, 'delAction', 'del');
- }
-
- public function associateForm($itemArray)
- {
- return $this->generalForm($itemArray, 'generalAction', 'link');
- }
-
- public function simpleText($itemArray) {
- $string = "<span class='textItem'>".$itemArray['action']."</span>\n";
- return $string;
- }
-
- public function simpleLink($itemArray) {
- $string = "<a class='linkItem' href='".Url::getRoot(null).$itemArray['action'].$this->viewStatus."'>".$itemArray['name']."</a>\n";
- return $string;
- }
-
-} \ No newline at end of file
diff --git a/h-source/admin/Library/Helper/Menu.php b/h-source/admin/Library/Helper/Menu.php
deleted file mode 100755
index 119ada8..0000000
--- a/h-source/admin/Library/Helper/Menu.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?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
diff --git a/h-source/admin/Library/Helper/Pages.php b/h-source/admin/Library/Helper/Pages.php
deleted file mode 100755
index eec58f6..0000000
--- a/h-source/admin/Library/Helper/Pages.php
+++ /dev/null
@@ -1,108 +0,0 @@
-<?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!');
-
-//Helper class to create the HTML of the page division list
-class Helper_Pages extends Helper_Html
-{
-
- protected $_urlViewAction; //url of the current page
- protected $_currentPage; //number of the page
- protected $_numbOfPages; //number of pages
- protected $_variableArg = ''; //value of the $viewArgs key that has to be modified
-
- public $previousString; //string of the link to the previous page
- public $nextString; //string of the link to the next page
-
- public function build($urlViewAction = '' , $variableArg = 'page', $previousString = 'previous', $nextString = 'next')
- {
-
- $this->_variableArg = $variableArg;
- $this->_urlViewAction =$urlViewAction; //url of the controller and (/) main action
- $this->previousString = $previousString;
- $this->nextString = $nextString;
-
- }
-
- //return the number of pages
- public function getNumbOfPages()
- {
- return $this->_numbOfPages;
- }
-
- //get the limit of the select query clause
- public function getLimit($currentPage,$recordNumber,$recordPerPage)
- {
- $this->_currentPage = $currentPage;
- $this->_numbOfPages=(($recordNumber%$recordPerPage)===0) ? (int) ($recordNumber/$recordPerPage) : ((int) ($recordNumber/$recordPerPage))+1;
- $start=(($currentPage-1)*$recordPerPage);
- return "$start,$recordPerPage";
- }
-
- //return the page list string
- public function render($pageNumber,$numberOfPages)
- {
- $pageList = null;
- $pageList .= $this->pageLink($this->_currentPage-1,$this->previousString);
- $pageList .= $this->recursiveLink($pageNumber,$numberOfPages);
- $pageList .= $this->pageLink($this->_currentPage+1,$this->nextString);
- return $pageList;
- }
-
- //recorsive function in order to write the page list
- public function recursiveLink($pageNumber,$numberOfPages)
- {
-
- if ($numberOfPages === 0) return null;
-
- if ($numberOfPages === 1) {
- return $this->pageLink($pageNumber);
- } else {
- return $this->pageLink($pageNumber) . $this->recursiveLink($pageNumber+1,$numberOfPages-1);
- }
- }
-
- public function pageLink($pageNumber, $string = null) {
- if ($pageNumber > 0 and $pageNumber <= $this->_numbOfPages) {
- return $this->html($pageNumber,$string);
- } else {
- return null;
- }
- }
-
- //return the html link
- public function html($pageNumber,$string = null) {
- if (isset($string)) {
- $strNumber = $string;
- $strClass = "class='itemListPage'";
- } else {
- if ($pageNumber === $this->_currentPage)
- {
- $strNumber = $pageNumber;
- $strClass = "class='currentPage'";
- }
- else
- {
- $strNumber = $pageNumber;
- $strClass = "class='itemListPage'";
- }
- }
- $this->viewArgs[$this->_variableArg] = $pageNumber;
- $viewStatus = Url::createUrl(array_values($this->viewArgs));
- $href= Url::getRoot(null) . $this->_urlViewAction .$viewStatus;
- return $this->getATag($href,$strNumber,$strClass);
- }
-
- //get the HTMl of the tag
- //$href: href of the link
- //$text: the text of the link
- //$strClass: the class of the link
- public function getATag($href,$text,$strClass)
- {
- return "<a $strClass href='$href'>$text</a>";
- }
-
-} \ No newline at end of file
diff --git a/h-source/admin/Library/Helper/Popup.php b/h-source/admin/Library/Helper/Popup.php
deleted file mode 100755
index 17ba908..0000000
--- a/h-source/admin/Library/Helper/Popup.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?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 create the popup menu
-class Helper_Popup extends Helper_Html {
-
- public $popupArray = array(); //array of popup objects (see popup.php)
- public $url = null; //the url (controller/action) to link by means of the popup menĂ¹
-// public $fieldArg = null; //the key of the viewArgs array to set to the field in the where clause
-// public $valueArg = null; //the key of the viewArgs array to be set to the value in the where clause
- public $pageArg = null; //the key of the viewArgs array representing the page number. $this->viewArgs[$this->pageArg] is set to 1 if $this->pageArg !== null
-
- //the type of the popup. If type !=exclusive, than each voice selected is added to the where clause. If type=exclusive, the selection of a popup voice causes the unselection of the other voices
- public $type = null;
-
- //list of popup names
- public $popupItems = array();
-
- public function build($url, $popupArray = null, $type = 'exclusive', $pageArg = null) {
- $this->url = $url;
- $this->popupArray = $popupArray;
- $this->pageArg = $pageArg;
- $this->type = $type;
-
- foreach ($this->popupArray as $field => $popup)
- {
- $this->popupItems[] = $field;
- }
- }
-
- //check that the ViewArgs array is complete
- public function checkViewArgs()
- {
- foreach ($this->popupArray as $field => $popup)
- {
- if (!array_key_exists($field,$this->viewArgs)) return false;
- }
- return true;
- }
-
- //unselect the voices different from the current one
- public function unselect($currentVoice)
- {
- foreach ($this->popupItems as $item)
- {
- if (strcmp($item,$currentVoice) !== 0) $this->viewArgs[$item] = Params::$nullQueryValue;
- }
- }
-
- public function render() {
- $returnString = null;
- if ($this->checkViewArgs())
- {
- if (isset($this->viewArgs[$this->pageArg]))
- {
- $this->viewArgs[$this->pageArg] = 1;
- }
- foreach ($this->popupArray as $field => $popup)
- {
- if ($this->type === 'exclusive') $this->unselect($field);
- //save the value of the current ViewArg
- $tempArg = $this->viewArgs[$field];
- $returnString .= "<ul onMouseOver='DisplayTag(this,\"block\");' onMouseOut='DisplayTag(this,\"none\");' id='menuBlock'><li class='innerItem'>".$popup->name."<ul class='innerList'>\n";
- for ($i = 0; $i < count($popup->itemsValue); $i++)
- {
- $this->viewArgs[$field] = $popup->itemsValue[$i];
- $viewStatus = Url::createUrl(array_values($this->viewArgs));
- $returnString .= "<li><a href='".Url::getRoot($this->url).$viewStatus."'>".$popup->itemsName[$i]."</a></li>\n";
- }
- $this->viewArgs[$field] = Params::$nullQueryValue;
- $viewStatus = Url::createUrl(array_values($this->viewArgs));
- $returnString .= "<li><a href='".Url::getRoot($this->url).$viewStatus."'>All</a></li>\n";
- $returnString .= "</ul>\n</li>\n</ul>\n";
- $this->viewArgs[$field] = $tempArg;
- }
- if (count($this->popupArray)>0) {
- $returnString .= "<script type=\"text/javascript\" src=\"/admin/Public/Js/DisplayTag.js\"></script>\n";
- }
- }
- return $returnString;
- }
-
-}
diff --git a/h-source/admin/Library/Helper/index.html b/h-source/admin/Library/Helper/index.html
deleted file mode 100644
index 8d1c8b6..0000000
--- a/h-source/admin/Library/Helper/index.html
+++ /dev/null
@@ -1 +0,0 @@
-