Skip to content
Snippets Groups Projects
Commit 1646c97b authored by Hahn Axel (hahn)'s avatar Hahn Axel (hahn)
Browse files

add line in sidebar menu; add getFormSelect

parent a3036817
No related branches found
No related tags found
1 merge request!17Update renderer class: add select box
......@@ -11,6 +11,7 @@ require_once 'htmlelements.class.php';
* 2023-09-11 <axel.hahn@unibe.ch> add shadows on card + callout
* 2023-09-27 <axel.hahn@unibe.ch> add form input fields
* 2023-11-17 <axel.hahn@unibe.ch> add tabbed content; "=" renders hamburger item
* 2024-05-03 <axel.hahn@unibe.ch> add line in sidebar menu; add getFormSelect
* ======================================================================
*
* @author Axel
......@@ -669,7 +670,12 @@ class renderadminlte {
/**
* get a navigation items for sidebar
* Get a navigation items for sidebar
* Links can be nested with the key "children".
*
* Remark: for a horizontal line ($aLink['label']='-') this css is required
* .nav-item hr{color: #505860; border-top: 1px solid; height: 1px; padding: 0; margin: 0; }
*
* @param array $aLinks list of link items
*/
public function getNavi2Items($aLinks){
......@@ -677,7 +683,14 @@ class renderadminlte {
if (!$aLinks || !is_array($aLinks) || !count($aLinks)){
return false;
}
foreach($aLinks as $aLink){
if ($aLink['label']=='-') {
// TODO: draw a nice line
$sReturn.='<li class="nav-item"><hr></li>';
continue;
}
// to render active or open links:
$aLink['class']='nav-link' . (isset($aLink['class']) ? ' '.$aLink['class'] : '');
......@@ -1117,7 +1130,7 @@ class renderadminlte {
* A colored box with large icon, text and a value.
* https://adminlte.io/docs/3.2/components/boxes.html
*
* @param type $aOptions hash with keys for all options
* @param array $aOptions hash with keys for all options
* styling:
* - type - color of the box; one of [none]|danger|dark|info|primary|secondary|success|warning
* - iconbg - background color or type of icon; use it for default type (type="")
......@@ -1242,7 +1255,7 @@ class renderadminlte {
* return a text input field:
* https://adminlte.io/themes/v3/pages/forms/general.html
*
* @param type $aOptions hash with keys for all options
* @param array $aOptions hash with keys for all options
* styling:
* - type - field type: text, email, password, hidden and all other html 5 input types
* content
......@@ -1310,8 +1323,8 @@ class renderadminlte {
}
/**
* return a textare field .. or html editor using summernote
* @param type $aOptions hash with keys for all options
* return a textarea field .. or html editor using summernote
* @param array $aOptions hash with keys for all options
* styling:
* - type - field type: [none]|html
* content
......@@ -1348,6 +1361,58 @@ class renderadminlte {
}
/**
* return a select box field
* @param array $aOptions hash with keys for all options
* styling:
* - class - css class
* option fields
* - options - array of options with keys per item:
* - value - value in the option
* - label - visible text in the option
* other keys are attributes in the option
* select tag
* - label - label tag
* - name - name attribute for sending form
* other keys are attributes in the select
* @return string
*/
public function getFormSelect($aOptions){
$aElement=$aOptions;
$aElement['class']=''
. 'form-control '
. (isset($aOptions['class']) ? $aOptions['class']: '')
;
$sLabel=isset($aOptions['label']) ? $aOptions['label'] : '';
$sFormid=(isset($aOptions['id'])
? $aOptions['id']
: (isset($aOptions['name']) ? $aOptions['name'] : 'field' ).'-'.md5(microtime(true))
);
$sOptionTags='';
foreach($aOptions['options'] as $aField){
$optionText=$aField['label'];
unset($aField['label']);
$sOptionTags.=$this->_tag('option', $aField, $optionText )."\n";
}
foreach(['_infos', 'label', 'debug','type', 'value', 'options'] as $sDeleteKey){
if(isset($aElement[$sDeleteKey])){
unset($aElement[$sDeleteKey]);
}
}
return $this->getHorizontalFormElement(
$this->_tag('div', ['class'=>'form-group'],
$this->_tag('select', $aElement, $sOptionTags)
),
$sLabel,
$sFormid
);
}
// ----------------------------------------------------------------------
//
// PUBLIC FUNCTIONS :: CONTENT - TABBED CONTENT
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment