diff options
author | Yuchen Pei <hi@ypei.me> | 2021-10-14 15:16:42 +1100 |
---|---|---|
committer | Yuchen Pei <hi@ypei.me> | 2021-10-14 15:16:42 +1100 |
commit | 07f5140771388c9e0c8a99b0dd2e5d950bdb173b (patch) | |
tree | 323c00faef1edc7dea2e88ff581cc2258b2b6432 /h-source/admin/Library/Helper | |
parent | e119be145500700f3c465e12664403a07530a421 (diff) |
moving h-source subdir out.
Diffstat (limited to 'h-source/admin/Library/Helper')
-rwxr-xr-x | h-source/admin/Library/Helper/Array.php | 11 | ||||
-rwxr-xr-x | h-source/admin/Library/Helper/Html.php | 14 | ||||
-rwxr-xr-x | h-source/admin/Library/Helper/List.php | 278 | ||||
-rwxr-xr-x | h-source/admin/Library/Helper/Menu.php | 75 | ||||
-rwxr-xr-x | h-source/admin/Library/Helper/Pages.php | 108 | ||||
-rwxr-xr-x | h-source/admin/Library/Helper/Popup.php | 87 | ||||
-rw-r--r-- | h-source/admin/Library/Helper/index.html | 1 |
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'] = ' '; - } - $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(' ',$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 @@ - |