Skip to content
Snippets Groups Projects

Add textarea

Merged Hahn Axel (hahn) requested to merge add-textarea into main
1 file
+ 71
18
Compare changes
  • Side-by-side
  • Inline
@@ -404,13 +404,13 @@ class renderadminlte {
'input'=>[
'label'=>'Form: input',
'description'=>'Input form fiels',
'method'=>'getInput',
'method'=>'getFormInput',
'params'=>[
'label' => [
'group'=>'styling',
'description'=>'label for the input field',
'example_value'=>'Enter your firstname'
'example_value'=>'Enter something'
],
'type'=>['select'=> [
'description'=>'type or input field',
@@ -418,6 +418,8 @@ class renderadminlte {
'values'=>[
'text'=>'text',
'password'=>'password',
'email'=>'email',
'hidden'=>'hidden',
'button'=>'button',
'checkbox'=>'checkbox',
@@ -430,12 +432,14 @@ class renderadminlte {
'image'=>'image',
'month'=>'month',
'number'=>'number',
'password'=>'password',
'radio'=>'radio',
'range'=>'range',
'reset'=>'reset',
'search'=>'search',
'submit'=>'submit',
'tel'=>'tel',
'text'=>'text',
'time'=>'time',
'url'=>'url',
'week'=>'week',
@@ -451,12 +455,12 @@ class renderadminlte {
'prepend' => [
'group'=>'styling',
'description'=>'optional: content on input start',
'example_value'=>'+'
'example_value'=>''
],
'append' => [
'group'=>'styling',
'description'=>'optional: content on input end',
'example_value'=>':-)'
'example_value'=>''
],
'name' => [
'group'=>'content',
@@ -470,6 +474,44 @@ class renderadminlte {
],
]
],
// ------------------------------------------------------------
'textarea'=>[
'label'=>'Form: textarea',
'description'=>'textarea or html editor',
'method'=>'getFormTextarea',
'params'=>[
'label' => [
'group'=>'styling',
'description'=>'label for the input field',
'example_value'=>'Enter text'
],
'type'=>['select'=> [
'description'=>'type or input field',
'group'=>'styling',
'values'=>[
''=>'text',
'html'=>'html editor',
]
],
],
'class' => [
'group'=>'styling',
'description'=>'optional: css classes',
'example_value'=>'myclass'
],
'name' => [
'group'=>'content',
'description'=>'name attribute',
'example_value'=>'textdata'
],
'value' => [
'group'=>'content',
'description'=>'Value',
'example_value'=>'Here is some text...'
],
]
],
];
}
/**
@@ -1183,6 +1225,15 @@ class renderadminlte {
}
public function getHorizontalFormElement($sInput, $sLabel=false, $sId=false){
return '<div class="form-group row">'
. '<label for="' . $sId . '" class="col-sm-2 col-form-label">' . $sLabel . '</label>'
. '<div class="col-sm-10">'.$sInput.'</div>'
. '</div>'
;
}
/**
* return a text input field:
* https://adminlte.io/themes/v3/pages/forms/general.html
@@ -1193,32 +1244,25 @@ class renderadminlte {
* content
* - label - label tag
* - name - name attribute for sending form
* - value - value in
* - value - value in field
* @return string
*/
public function GetInput($aOptions){
$aOptions=$this->_ensureOptions('input', $aOptions);
public function GetFormInput($aOptions){
// $aOptions=$this->_ensureOptions('input', $aOptions);
$aElement=$aOptions;
$aElement['class']=''
. $this->_addClassValue($aOptions['class'], '')
. 'form-control '
. (isset($aOptions['class']) ? $aOptions['class']: '')
;
$sFormid=(isset($aOptions['id'])
? $aOptions['id']
: (isset($aOptions['name']) ? $aOptions['name'] : 'field' ).'-'.md5(microtime(true))
);
$sLabel='';
$sLabel=isset($aOptions['label']) ? $aOptions['label'] : '';
$sPrepend='';
$sAppend='';
$sLabel.=isset($aOptions['label']) && $aOptions['label'] ? $this->_tag('label', ['for'=>$sFormid], $aOptions['label']) : '';
$aElement['id']=$sFormid;
foreach(['_infos', 'label'] as $sDeleteKey){
unset($aElement[$sDeleteKey]);
}
$sWrapperclass='form-group';
if(isset($aOptions['prepend']) && $aOptions['prepend']){
$sWrapperclass='input-group';
@@ -1232,12 +1276,73 @@ class renderadminlte {
$this->_tag('span', ['class'=>'input-group-text'] , $aOptions['append'])
);
}
return $this->_tag('div', ['class'=>$sWrapperclass],
$sLabel
.$sPrepend
.$this->_tag('input', $aElement, '', false)
.$sAppend
$aElement['id']=$sFormid;
foreach(['_infos', 'label', 'append', 'prepend', 'debug'] as $sDeleteKey){
if(isset($aElement[$sDeleteKey])){
unset($aElement[$sDeleteKey]);
}
}
// return data
switch($aElement['type']){
case 'checkbox':
case 'radio':
$aElement['class']=str_replace('form-control ', 'form-check-input', $aElement['class']);
return $this->_tag('div' , ['class'=>'form-check'],
$this->_tag('input', $aElement, '', false).$this->_tag('label', ['for'=>$sFormid, 'label'=>$sLabel ], '')
);
break;
case 'hidden':
return $this->_tag('input', $aElement, '', false);
break;
default: return $this->getHorizontalFormElement(
$sPrepend.$this->_tag('input', $aElement, '', false).$sAppend,
$sLabel,
$sFormid
);
}
}
/**
* return a textare field .. or html editor using summernote
* @param type $aOptions hash with keys for all options
* styling:
* - type - field type: [none]|html
* content
* - label - label tag
* - name - name attribute for sending form
* - value - value in
* @return string
*/
public function getFormTextarea($aOptions){
// $aOptions=$this->_ensureOptions('textarea', $aOptions);
$aElement=$aOptions;
$aElement['class']=''
. 'form-control '
. ((isset($aOptions['type']) && $aOptions['type']=='html' )? 'summernote ': '')
. (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))
);
$value=isset($aOptions['value']) ? $aOptions['value']: '';
foreach(['_infos', 'label', 'debug','type', 'value'] as $sDeleteKey){
if(isset($aElement[$sDeleteKey])){
unset($aElement[$sDeleteKey]);
}
}
return $this->getHorizontalFormElement(
$this->_tag('textarea', $aElement, $value),
$sLabel,
$sFormid
);
}
}
Loading