diff --git a/htdocs/core/class/html.formsetup.class.php b/htdocs/core/class/html.formsetup.class.php index eb5a9710da1..219308bd5e6 100644 --- a/htdocs/core/class/html.formsetup.class.php +++ b/htdocs/core/class/html.formsetup.class.php @@ -63,11 +63,9 @@ class formSetup */ public function generateOutput($editMode = false) { - - $out = ''; require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php'; - $out.= ''; + $out = ''; if ($editMode) { $out .= ''; } @@ -168,7 +166,7 @@ class formSetup */ $item = new formSetupItem($confKey); - $item->type = $params['type']; + $item->setTypeFromTypeString($params['type']); if (!empty($params['enabled'])) { $item->enabled = $params['enabled']; @@ -186,7 +184,7 @@ class formSetup /** * used to export param array for /core/actions_setmoduleoptions.inc.php template * @return array $arrayofparameters for /core/actions_setmoduleoptions.inc.php - * @deprecated + * @deprecated yes this method came deprecated because it exists only for manage setup convertion */ public function exportItemsAsParamsArray() { @@ -279,7 +277,7 @@ class formSetupItem * And set var as protected when its done configuration must be done by method * @var string $type 'string', 'textarea', 'category:'.Categorie::TYPE_CUSTOMER', 'emailtemplate', 'thirdparty_type' */ - public $type = 'string'; + protected $type = 'string'; public $enabled = 1; @@ -349,14 +347,12 @@ class formSetupItem $out = ''; - if ($this->type == 'textarea') { - $out.= '\n"; + if ($this->type == 'title') { + $out.= $this->generateOutputField(); // title have no input + } elseif ($this->type == 'textarea') { + $out.= $this->generateInputFieldTextarea(); } elseif ($this->type== 'html') { - require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php'; - $doleditor = new DolEditor($this->confKey, $this->fieldValue, '', 160, 'dolibarr_notes', '', false, false, $conf->fckeditor->enabled, ROWS_5, '90%'); - $doleditor->Create(); + $out.= $this->generateInputFieldHtml(); } elseif ($this->type == 'yesno') { $out.= $this->form->selectyesno($this->confKey, $this->fieldValue, 1); } elseif (preg_match('/emailtemplate:/', $this->type)) { @@ -423,6 +419,42 @@ class formSetupItem return $out; } + /** + * generate input field for textarea + * @return string + */ + public function generateInputFieldTextarea() + { + $out = '\n"; + return $out; + } + /** + * generate input field for html + * @return string + */ + public function generateInputFieldHtml() + { + global $conf; + require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php'; + $doleditor = new DolEditor($this->confKey, $this->fieldValue, '', 160, 'dolibarr_notes', '', false, false, $conf->fckeditor->enabled, ROWS_5, '90%'); + return $doleditor->Create(1); + } + + /** + * set the type from string : used for old module builder setup conf style conversion and tests + * because this two class will quickly evolve it's important to not set directly $this->type (will be protected) so this method exist + * to be sure we can manage evolution easily + * @param string $type possible values based on old module builder setup : 'string', 'textarea', 'category:'.Categorie::TYPE_CUSTOMER', 'emailtemplate', 'thirdparty_type' + * @deprecated yes this method came deprecated because it exists only for manage setup convertion + * @return bool + */ + public function setTypeFromTypeString($type) + { + $this->type = $type; + return true; + } /** * Add error @@ -459,7 +491,9 @@ class formSetupItem $out = ''; - if ($this->type == 'textarea') { + if ($this->type == 'title') { + // nothing to do + } elseif ($this->type == 'textarea') { $out.= dol_nl2br($this->fieldValue); } elseif ($this->type== 'html') { $out.= $this->fieldValue; @@ -609,4 +643,15 @@ class formSetupItem $this->type = 'category:'.$catType; return $this; } + + /** + * Set type of input as a simple title + * no data to store + * @return self + */ + public function setAsTitle() + { + $this->type = 'title'; + return $this; + } }