diff --git a/public_html/deployment/classes/htmlelements.class.php b/public_html/deployment/classes/htmlelements.class.php index 0296b1783d125690e684151780a94bbe082b9499..f9bedefeeab73713b533249d9be2e1afcf29c4a1 100755 --- a/public_html/deployment/classes/htmlelements.class.php +++ b/public_html/deployment/classes/htmlelements.class.php @@ -15,27 +15,32 @@ * - icon - will be added as <i class="[icon value]"></i> to the label * * @author Axel + * + * 2024-08-23 v1.1 Axel Hahn php8 only; added variable types; short array syntax; remove unneeded methods */ -class htmlelements { +class htmlelements +{ /** - * set of auto generated icon prefixes - * @var type + * Extracted label from array with attributes + * @var string */ - var $_aIcons=array( - // 'fa-'=>'fa ', - ); - var $_sLabel = ''; - var $_aAttributes = array(); - + + /** + * Array of attributes for a html tag + * @var array + */ + var $_aAttributes = []; + // ---------------------------------------------------------------------- // CONSTRUCTOR // ---------------------------------------------------------------------- - - public function __construct() { - return true; + + public function __construct() + { + // nothiung here } // ---------------------------------------------------------------------- @@ -43,27 +48,28 @@ class htmlelements { // PRIVATE FUNCTIONS // // ---------------------------------------------------------------------- - - + + /** * generate html attibutes with all internal attributes key -> values + * to be added in opening tag * @return string */ - protected function _addAttributes() { + protected function _addAttributes(): string + { $sReturn = ''; foreach ($this->_aAttributes as $sAttr => $sValue) { - if(is_array($sValue)){ - echo "ERROR: an html tag was defined with array in attribute [$sAttr]:<br><pre>".print_r($this->_aAttributes, 1)."</pre>"; + if (is_array($sValue)) { + echo "ERROR: an html tag was defined with array in attribute [$sAttr]:<br><pre>" . print_r($this->_aAttributes, 1) . "</pre>"; } - $sReturn .= ' '.$sAttr . '="' . $sValue . '"'; - + $sReturn .= " $sAttr=\"$sValue\""; } return $sReturn; } - - + + /** - * internal helper: fetch all attributes from key-value hash; + * Internal helper: fetch all attributes from key-value hash; * Specialties here: * - label will be extracted from key 'label' * - and optional existing key 'icon' will be added at beginning of a label @@ -71,17 +77,18 @@ class htmlelements { * @param array $aAttributes * @return boolean */ - protected function _setAttributes($aAttributes){ - $this->_sLabel=''; - if(isset($aAttributes['icon']) && $aAttributes['icon']){ - $this->_sLabel.=$this->getIcon($aAttributes['icon']); + protected function _setAttributes(array $aAttributes): bool + { + $this->_sLabel = ''; + if (isset($aAttributes['icon']) && $aAttributes['icon']) { + $this->_sLabel .= $this->getIcon($aAttributes['icon']); unset($aAttributes['icon']); } - if(isset($aAttributes['label']) && $aAttributes['label']){ + if (isset($aAttributes['label']) && $aAttributes['label']) { $this->_sLabel .= $aAttributes['label']; unset($aAttributes['label']); } - $this->_aAttributes=$aAttributes; + $this->_aAttributes = $aAttributes; return true; } @@ -91,21 +98,22 @@ class htmlelements { // HTML GENERIC // // ---------------------------------------------------------------------- - + /** - * generic function to get html code for a single tag + * Generic function to get html code for a single tag * * @param string $sTag tag name * @param array $aAttributes array with attributes (optional including 'icon' and 'label') * @param boolean $bCloseTag optional: set false if tag has no closing tag (= ending with "/>") - * @return type + * @return string html code */ - public function getTag($sTag, $aAttributes, $bCloseTag=true){ + public function getTag(string $sTag, array $aAttributes, bool $bCloseTag = true): string + { $sTpl = $bCloseTag ? "<$sTag%s>%s</$sTag>" : "<$sTag %s/>%s"; $this->_setAttributes($aAttributes); return sprintf($sTpl, $this->_addAttributes(), $this->_sLabel); } - + // ---------------------------------------------------------------------- // // PUBLIC FUNCTIONS @@ -114,109 +122,22 @@ class htmlelements { // ---------------------------------------------------------------------- /** - * helper detect prefix of a string add prefix of a framework + * Helper detect prefix of a string add prefix of a framework * i.e. value "fa-close" detects font awesome and adds "fa " as prefix * * @param string $sIconclass - * @return boolean + * @return string HTML code */ - public function getIcon($sIconclass=false){ - if(!$sIconclass){ + public function getIcon(string $sIconclass = ''): string + { + if (!$sIconclass) { return ''; } - $sPrefix=''; - foreach ($this->_aIcons as $sPrefix =>$add) { - if (strpos($sIconclass, $sPrefix)===0){ - $sPrefix=$add; - continue; - } - } - // do not use this .. it overrides internal attribute vars - // return $this->getTag('i', array('class'=>$sPrefix.$sIconclass)); - return '<i class="'.$sPrefix.$sIconclass.'"></i> '; - } - - - // ---------------------------------------------------------------------- - // - // PUBLIC FUNCTIONS - // HTML COMPONENTS - // - // ---------------------------------------------------------------------- - /** - * get html code for an input field - * - * @param array $aAttributes attributes of the select tag - * @return string - */ - public function getFormInput($aAttributes){ - $sTpl = '<input %s/>'; - $this->_setAttributes($aAttributes); - return sprintf($sTpl, $this->_addAttributes()); - } - /** - * get html code for an option field in a select drop down - * - * @param array $aAttributes attributes of the option tag - * @return string - */ - public function getFormOption($aAttributes){ - $sTpl = '<option %s>%s</option>'; - $this->_setAttributes($aAttributes); - return sprintf($sTpl, $this->_addAttributes(), $this->_sLabel); - } - /** - * get html code for a select drop down - * - * @param array $aAttributes attributes of the select tag - * @param array $aOptions array for all option fields - * @return string - */ - public function getFormSelect($aAttributes, $aOptions=array()){ - // $sTpl = '<select %s>%s</select>'; + // do not use this .. it overrides internal attribute vars + // return $this->getTag('i', ['class'=>$sIconclass]); - if(!count($aOptions)){ - return false; - } - $sOptions=''; - foreach($aOptions as $aOptionAttributes){ - // $sOptions.=$this->getFormOption($aOptionAttributes); - $sOptions.=$this->getTag('option', $aOptionAttributes); - } - $aAttributes['label']=$sOptions; - return $this->getTag('select', $aAttributes); - /* - $this->_setAttributes($aAttributes); - return sprintf($sTpl, $this->_addAttributes(), $sOptions); - * - */ + return "<i class=\"$sIconclass\"></i> "; } - public function getTable($aHead, $aBody, $aTableAttributes=array()){ - $sReturn=''; - $sTdata=''; - $sThead=''; - $sTpl = '<table %s>' - . '<thead><tr>%s</tr></thead>' - . '<tbody>%s</tbody>' - . '</table>'; - - foreach($aHead as $sTh){ - $sThead.='<th>'.$sTh.'</th>'; - } - foreach($aBody as $aTr){ - $sTdata.='<tr>'; - foreach($aTr as $sTd){ - $sTdata.='<td>'.$sTd.'</td>'; - } - $sTdata.='</tr>'; - } - $this->_setAttributes($aTableAttributes); - return sprintf($sTpl, - $this->_addAttributes(), - $sThead, - $sTdata - ); - } }