2021-10-23 23:38:13 +00:00
< ? php
2026-03-29 20:44:07 +00:00
/* Copyright ( C ) 2021 John BOTELLA < john . botella @ atm - consulting . fr >
2026-07-10 15:50:47 +00:00
* Copyright ( C ) 2024 - 2026 MDW < mdeweerd @ users . noreply . github . com >
2026-02-10 23:52:15 +00:00
* Copyright ( C ) 2026 Frédéric France < frederic . france @ free . fr >
2026-03-29 20:44:07 +00:00
* Copyright ( C ) 2026 Alexandre Spangaro < alexandre @ inovea - conseil . com >
2021-10-23 23:38:13 +00:00
*
* This program 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 .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program . If not , see < https :// www . gnu . org / licenses />.
*/
/**
2025-03-08 13:40:52 +00:00
* This class help you create setup render .
*
* See Example in modulebuilder / template / admin / setup . php to know how to use this utility class .
2021-10-23 23:38:13 +00:00
*/
2021-11-02 13:11:36 +00:00
class FormSetup
2021-10-30 10:54:13 +00:00
{
2021-10-23 23:38:13 +00:00
/**
* @ var DoliDB Database handler .
*/
public $db ;
2024-03-21 12:35:51 +00:00
/** @var int */
public $entity ;
2021-11-02 13:11:36 +00:00
/** @var FormSetupItem[] */
2021-11-02 13:07:36 +00:00
public $items = array ();
2021-10-23 23:38:13 +00:00
2021-11-02 12:55:12 +00:00
/**
* @ var int
*/
2021-10-23 23:38:13 +00:00
public $setupNotEmpty = 0 ;
/** @var Translate */
public $langs ;
/** @var Form */
public $form ;
2021-11-02 12:55:12 +00:00
/** @var int */
protected $maxItemRank ;
2021-11-28 11:11:03 +00:00
/**
2025-02-25 16:54:34 +00:00
* Html string display before output form
2021-11-28 11:11:03 +00:00
* @ var string
*/
public $htmlBeforeOutputForm = '' ;
/**
2025-02-25 16:54:34 +00:00
* Html string to display after output form
2021-11-28 11:11:03 +00:00
* @ var string
*/
public $htmlAfterOutputForm = '' ;
/**
2025-02-25 16:54:34 +00:00
* Html string to display on buttons zone
2021-11-28 11:11:03 +00:00
* @ var string
*/
public $htmlOutputMoreButton = '' ;
2026-02-09 06:11:20 +00:00
/**
* Html string of button label
* @ var string
*/
public $htmlButtonLabel = 'Save' ;
2021-11-28 11:11:03 +00:00
/**
2024-10-26 16:24:40 +00:00
* @ var array < string , string >
2021-11-28 11:11:03 +00:00
*/
public $formAttributes = array (
'action' => '' , // set in __construct
'method' => 'POST'
);
/**
* an list of hidden inputs used only in edit mode
2026-02-09 18:50:05 +00:00
* @ var array < string , int | string > Currently array { token : string , action : string }
2021-11-28 11:11:03 +00:00
*/
public $formHiddenInputs = array ();
2023-08-24 09:29:29 +00:00
/**
2025-02-25 16:54:34 +00:00
* @ var string []
2023-08-24 09:29:29 +00:00
*/
public $errors = array ();
2021-11-28 11:11:03 +00:00
2024-01-12 12:05:14 +00:00
2021-10-23 23:38:13 +00:00
/**
* Constructor
*
2021-10-30 10:54:13 +00:00
* @ param DoliDB $db Database handler
2025-02-25 16:54:34 +00:00
* @ param ? Translate $outputLangs if needed can use another lang
2021-10-23 23:38:13 +00:00
*/
2023-11-21 22:16:46 +00:00
public function __construct ( $db , $outputLangs = null )
2021-10-23 23:38:13 +00:00
{
2024-03-21 12:35:51 +00:00
global $conf , $langs ;
2021-10-23 23:38:13 +00:00
$this -> db = $db ;
2023-10-15 13:32:35 +00:00
2021-10-23 23:38:13 +00:00
$this -> form = new Form ( $this -> db );
2021-11-28 11:11:03 +00:00
$this -> formAttributes [ 'action' ] = $_SERVER [ " PHP_SELF " ];
$this -> formHiddenInputs [ 'token' ] = newToken ();
$this -> formHiddenInputs [ 'action' ] = 'update' ;
2024-03-21 12:35:51 +00:00
$this -> entity = ( is_null ( $this -> entity ) ? $conf -> entity : $this -> entity );
2021-10-23 23:38:13 +00:00
2021-10-30 10:54:13 +00:00
if ( $outputLangs ) {
2021-10-23 23:38:13 +00:00
$this -> langs = $outputLangs ;
2021-10-30 10:54:13 +00:00
} else {
2021-10-23 23:38:13 +00:00
$this -> langs = $langs ;
}
}
2021-11-28 11:11:03 +00:00
/**
2021-11-28 11:15:31 +00:00
* Generate an attributes string form an input array
2021-12-21 13:58:34 +00:00
*
2024-10-26 16:24:40 +00:00
* @ param array < string , mixed | mixed [] | Object > $attributes an array of attributes keys and values ,
2021-12-21 13:58:34 +00:00
* @ return string attribute string
2021-11-28 11:11:03 +00:00
*/
2023-12-04 11:04:36 +00:00
public static function generateAttributesStringFromArray ( $attributes )
2021-11-28 11:11:03 +00:00
{
$Aattr = array ();
if ( is_array ( $attributes )) {
foreach ( $attributes as $attribute => $value ) {
if ( is_array ( $value ) || is_object ( $value )) {
continue ;
}
2021-12-01 15:59:30 +00:00
$Aattr [] = $attribute . '="' . dol_escape_htmltag ( $value ) . '"' ;
2021-11-28 11:11:03 +00:00
}
}
2023-12-04 11:04:36 +00:00
return ! empty ( $Aattr ) ? implode ( ' ' , $Aattr ) : '' ;
2021-11-28 11:11:03 +00:00
}
2021-10-23 23:38:13 +00:00
/**
2024-01-23 15:12:41 +00:00
* Generate the form ( in read or edit mode depending on $editMode )
2021-12-21 13:58:34 +00:00
*
2026-02-15 23:08:14 +00:00
* @ param int | bool $editMode True will display output on edit mod
* @ param bool $hideTitle True to hide the first title line
* @ param string $title Title of first line
* @ param string $cssfirstcolumn CSS first column
* @ return string Html output
2021-10-23 23:38:13 +00:00
*/
2025-12-22 10:17:18 +00:00
public function generateOutput ( $editMode = false , $hideTitle = false , $title = '' , $cssfirstcolumn = '' )
2021-10-30 10:54:13 +00:00
{
2024-01-23 14:23:11 +00:00
global $hookmanager , $action ;
2021-10-23 23:38:13 +00:00
require_once DOL_DOCUMENT_ROOT . '/core/class/html.form.class.php' ;
2021-11-02 12:55:12 +00:00
$parameters = array (
'editMode' => $editMode
);
$reshook = $hookmanager -> executeHooks ( 'formSetupBeforeGenerateOutput' , $parameters , $this , $action ); // Note that $action and $object may have been modified by some hooks
if ( $reshook < 0 ) {
setEventMessages ( $hookmanager -> error , $hookmanager -> errors , 'errors' );
}
if ( $reshook > 0 ) {
return $hookmanager -> resPrint ;
} else {
2021-11-28 11:11:03 +00:00
$out = '<!-- Start generateOutput from FormSetup class -->' ;
2024-03-15 18:57:45 +00:00
$out .= $this -> htmlBeforeOutputForm ;
2021-11-28 11:11:03 +00:00
if ( $editMode ) {
2026-07-29 17:41:58 +00:00
$out .= '<form ' . self :: generateAttributesStringFromArray ( $this -> formAttributes ) . ' autocomplete="off">' ;
2026-01-05 18:21:18 +00:00
$out .= '<input type="hidden" name="page_y" value="">' ;
2021-11-28 11:11:03 +00:00
// generate hidden values from $this->formHiddenInputs
if ( ! empty ( $this -> formHiddenInputs ) && is_array ( $this -> formHiddenInputs )) {
foreach ( $this -> formHiddenInputs as $hiddenKey => $hiddenValue ) {
2024-03-15 18:57:45 +00:00
$out .= '<input type="hidden" name="' . dol_escape_htmltag ( $hiddenKey ) . '" value="' . dol_escape_htmltag ( $hiddenValue ) . '">' ;
2021-11-28 11:11:03 +00:00
}
}
}
// generate output table
2026-02-15 23:08:14 +00:00
$out .= $this -> generateTableOutput (( bool ) $editMode , $hideTitle , $title , $cssfirstcolumn );
2021-11-28 11:11:03 +00:00
$reshook = $hookmanager -> executeHooks ( 'formSetupBeforeGenerateOutputButton' , $parameters , $this , $action ); // Note that $action and $object may have been modified by some hooks
if ( $reshook < 0 ) {
setEventMessages ( $hookmanager -> error , $hookmanager -> errors , 'errors' );
}
if ( $reshook > 0 ) {
return $hookmanager -> resPrint ;
} elseif ( $editMode ) {
$out .= '<div class="form-setup-button-container center">' ; // Todo : remove .center by adding style to form-setup-button-container css class in all themes
2024-03-15 18:57:45 +00:00
$out .= $this -> htmlOutputMoreButton ;
2026-02-26 13:42:38 +00:00
if ( $editMode !== 3 ) {
$out .= '<input class="button button-save reposition" type="submit" value="' . $this -> langs -> trans ( $this -> htmlButtonLabel ? : " Save " ) . '" name="save">' ; // Todo fix dolibarr style for <button and use <button instead of input
}
2026-02-15 23:08:14 +00:00
if ( $editMode === 2 ) {
// Add also a cancel button
$out .= ' ' ;
$out .= '<input class="button button-cancel" type="submit" value="' . $this -> langs -> trans ( 'Cancel' ) . '" name="cancel">' ;
}
2021-11-28 11:11:03 +00:00
$out .= '</div>' ;
}
2021-11-02 12:55:12 +00:00
if ( $editMode ) {
2021-11-28 11:11:03 +00:00
$out .= '</form>' ;
2021-11-02 12:55:12 +00:00
}
2024-03-15 18:57:45 +00:00
$out .= $this -> htmlAfterOutputForm ;
2021-11-28 11:11:03 +00:00
return $out ;
}
}
/**
2021-12-21 13:58:34 +00:00
* generateTableOutput
*
2025-12-22 10:17:18 +00:00
* @ param bool $editMode True will display output on edit modECM
* @ param bool $hideTitle True to hide the first title line
* @ param string $title Title of first line
* @ param string $cssfirstcolumn CSS first column
* @ return string Html output
2021-11-28 11:11:03 +00:00
*/
2025-12-22 10:17:18 +00:00
public function generateTableOutput ( $editMode = false , $hideTitle = false , $title = '' , $cssfirstcolumn = '' )
2021-11-28 11:11:03 +00:00
{
global $hookmanager , $action ;
require_once DOL_DOCUMENT_ROOT . '/core/class/html.form.class.php' ;
$parameters = array (
'editMode' => $editMode
);
$reshook = $hookmanager -> executeHooks ( 'formSetupBeforeGenerateTableOutput' , $parameters , $this , $action ); // Note that $action and $object may have been modified by some hooks
if ( $reshook < 0 ) {
setEventMessages ( $hookmanager -> error , $hookmanager -> errors , 'errors' );
}
if ( $reshook > 0 ) {
return $hookmanager -> resPrint ;
} else {
2026-04-18 07:01:51 +00:00
$out = '<div class="div-table-responsive-no-min">' ;
2026-04-18 07:03:30 +00:00
$out .= '<table class="noborder centpercent">' ;
2024-01-23 15:12:41 +00:00
if ( empty ( $hideTitle )) {
2025-12-22 10:17:18 +00:00
if ( empty ( $title )) {
$title = $this -> langs -> transnoentitiesnoconv ( " Parameter " );
}
2024-01-23 15:12:41 +00:00
$out .= '<thead>' ;
$out .= '<tr class="liste_titre">' ;
2025-12-22 10:17:18 +00:00
$out .= ' <td' . ( $cssfirstcolumn ? ' class="' . $cssfirstcolumn . '"' : '' ) . '>' . dolPrintHTML ( $title ) . '</td>' ;
2025-04-03 14:41:41 +00:00
$out .= ' <td></td>' ;
2024-01-23 15:12:41 +00:00
$out .= '</tr>' ;
$out .= '</thead>' ;
}
2021-11-02 12:55:12 +00:00
// Sort items before render
$this -> sortingItems ();
$out .= '<tbody>' ;
2021-11-02 13:07:36 +00:00
foreach ( $this -> items as $item ) {
2021-11-02 12:55:12 +00:00
$out .= $this -> generateLineOutput ( $item , $editMode );
}
$out .= '</tbody>' ;
$out .= '</table>' ;
2026-04-18 07:01:51 +00:00
$out .= '</div>' ;
2021-11-02 12:55:12 +00:00
return $out ;
2021-10-30 10:54:13 +00:00
}
2021-11-02 12:55:12 +00:00
}
2021-10-30 10:54:13 +00:00
2021-11-02 12:55:12 +00:00
/**
2021-12-21 13:58:34 +00:00
* saveConfFromPost
*
* @ param bool $noMessageInUpdate display event message on errors and success
2024-02-25 09:04:57 +00:00
* @ return int | null Return - 1 if KO , 1 if OK , null if no items
2021-11-02 12:55:12 +00:00
*/
public function saveConfFromPost ( $noMessageInUpdate = false )
{
2023-06-15 23:36:46 +00:00
global $hookmanager , $conf ;
2022-05-20 20:34:44 +00:00
$parameters = array ();
$reshook = $hookmanager -> executeHooks ( 'formSetupBeforeSaveConfFromPost' , $parameters , $this ); // Note that $action and $object may have been modified by some hooks
if ( $reshook < 0 ) {
2023-08-24 09:29:29 +00:00
$this -> errors = $hookmanager -> errors ;
2022-05-20 20:34:44 +00:00
return - 1 ;
}
if ( $reshook > 0 ) {
return $reshook ;
}
2021-11-02 13:07:36 +00:00
if ( empty ( $this -> items )) {
2021-11-02 12:55:12 +00:00
return null ;
}
$this -> db -> begin ();
$error = 0 ;
2021-11-02 13:07:36 +00:00
foreach ( $this -> items as $item ) {
2023-06-08 22:06:07 +00:00
if ( $item -> getType () == 'yesno' && ! empty ( $conf -> use_javascript_ajax )) {
continue ;
}
2021-11-02 12:55:12 +00:00
$res = $item -> setValueFromPost ();
if ( $res > 0 ) {
$item -> saveConfValue ();
} elseif ( $res < 0 ) {
$error ++ ;
break ;
}
2021-10-23 23:38:13 +00:00
}
2021-11-02 12:55:12 +00:00
if ( ! $error ) {
$this -> db -> commit ();
if ( empty ( $noMessageInUpdate )) {
setEventMessages ( $this -> langs -> trans ( " SetupSaved " ), null );
}
2022-05-20 20:34:44 +00:00
return 1 ;
2021-11-02 12:55:12 +00:00
} else {
$this -> db -> rollback ();
if ( empty ( $noMessageInUpdate )) {
setEventMessages ( $this -> langs -> trans ( " SetupNotSaved " ), null , 'errors' );
}
2022-05-20 20:34:44 +00:00
return - 1 ;
2021-11-02 12:55:12 +00:00
}
2021-10-23 23:38:13 +00:00
}
/**
2021-12-21 13:58:34 +00:00
* generateLineOutput
*
* @ param FormSetupItem $item the setup item
* @ param bool $editMode Display as edit mod
* @ return string the html output for an setup item
2021-10-23 23:38:13 +00:00
*/
2021-10-30 10:54:13 +00:00
public function generateLineOutput ( $item , $editMode = false )
{
2021-10-23 23:38:13 +00:00
$out = '' ;
2024-03-15 18:57:45 +00:00
if ( $item -> enabled == 1 ) {
2022-05-11 16:05:06 +00:00
$trClass = 'oddeven' ;
2026-03-29 20:44:07 +00:00
$tdOutputFieldClass = '' ;
2022-05-11 16:05:06 +00:00
if ( $item -> getType () == 'title' ) {
$trClass = 'liste_titre' ;
}
2024-07-19 10:06:37 +00:00
if ( ! empty ( $item -> fieldParams [ 'trClass' ])) {
$trClass .= ' ' . $item -> fieldParams [ 'trClass' ];
}
2026-03-29 20:44:07 +00:00
if ( ! empty ( $item -> fieldParams [ 'tdOutputFieldClass' ])) {
$tdOutputFieldClass .= ' class="' . $item -> fieldParams [ 'tdOutputFieldClass' ] . '"' ;
}
2022-05-11 16:05:06 +00:00
2021-10-23 23:38:13 +00:00
$this -> setupNotEmpty ++ ;
2026-06-10 17:24:14 +00:00
$tableLineAttr = [
'id' => 'setup-line-item_' . preg_replace ( '/[^a-zA-Z_]/' , '' , $item -> confKey ),
'class' => $trClass
];
if ( $item -> getType () !== 'title' ) {
$tableLineAttr [ 'data-conf-key' ] = $item -> confKey ;
}
$tableLineAttrCompiled = commonHtmlAttributeBuilder ( $tableLineAttr );
$out .= '<tr ' . implode ( ' ' , $tableLineAttrCompiled ) . ' >' ;
2021-10-23 23:38:13 +00:00
2025-02-10 14:10:28 +00:00
$out .= '<td class="col-setup-title' . ( ! empty ( $item -> fieldParams [ 'isMandatory' ]) ? ' fieldrequired' : '' ) . '">' ;
2024-03-15 18:57:45 +00:00
$out .= '<span id="helplink' . $item -> confKey . '" class="spanforparamtooltip">' ;
2025-05-10 14:29:32 +00:00
$out .= $this -> form -> textwithpicto ( $item -> getNameText (), $item -> getHelpText (), 1 , 'info' , '' , 0 , 3 , empty ( $item -> fieldParams [ 'helpText' ]) ? 'tootips' . $item -> confKey : ( $item -> fieldParams [ 'helpText' ] != 'noclick' ? $item -> fieldParams [ 'helpText' ] : '' ));
2024-03-15 18:57:45 +00:00
$out .= '</span>' ;
$out .= '</td>' ;
2021-10-23 23:38:13 +00:00
2026-03-29 20:44:07 +00:00
$out .= '<td' . $tdOutputFieldClass . '>' ;
2021-10-23 23:38:13 +00:00
2021-10-30 10:54:13 +00:00
if ( $editMode ) {
2024-03-15 18:57:45 +00:00
$out .= $item -> generateInputField ();
2021-10-30 10:54:13 +00:00
} else {
2024-03-15 18:57:45 +00:00
$out .= $item -> generateOutputField ();
2021-10-23 23:38:13 +00:00
}
2021-10-30 10:54:13 +00:00
if ( ! empty ( $item -> errors )) {
2026-04-18 06:14:14 +00:00
// TODO : move set event message in a method to be called by cards not by this class
2021-10-23 23:38:13 +00:00
setEventMessages ( null , $item -> errors , 'errors' );
}
2024-03-15 18:57:45 +00:00
$out .= '</td>' ;
$out .= '</tr>' ;
2021-10-23 23:38:13 +00:00
}
return $out ;
}
/**
2024-01-13 18:48:20 +00:00
* Method used to test module builder conversion to this form usage
2021-12-21 13:58:34 +00:00
*
2024-09-09 01:15:26 +00:00
* @ param array < array < string , null | int | float | string >> $params an array of arrays of params from old modulBuilder params
2025-02-25 16:54:34 +00:00
* @ return bool
2021-10-23 23:38:13 +00:00
*/
2021-10-30 10:54:13 +00:00
public function addItemsFromParamsArray ( $params )
{
2023-12-04 11:04:36 +00:00
if ( ! is_array ( $params ) || empty ( $params )) {
return false ;
}
2021-10-30 10:54:13 +00:00
foreach ( $params as $confKey => $param ) {
2021-10-23 23:38:13 +00:00
$this -> addItemFromParams ( $confKey , $param ); // todo manage error
}
2023-03-19 09:19:35 +00:00
return true ;
2021-10-23 23:38:13 +00:00
}
/**
* From old
2024-01-13 18:48:20 +00:00
* Method was used to test module builder conversion to this form usage .
2021-12-21 13:58:34 +00:00
*
* @ param string $confKey the conf name to store
2024-09-09 01:15:26 +00:00
* @ param array < string , null | int | float | string > $params an array of params from old modulBuilder params
2021-12-21 13:58:34 +00:00
* @ return bool
2021-10-23 23:38:13 +00:00
*/
2021-10-30 10:54:13 +00:00
public function addItemFromParams ( $confKey , $params )
{
2023-12-04 11:04:36 +00:00
if ( empty ( $confKey ) || empty ( $params [ 'type' ])) {
return false ;
}
2021-10-23 23:38:13 +00:00
/*
2024-01-13 18:48:20 +00:00
* Example from old module builder setup page
2021-10-23 23:38:13 +00:00
* // 'MYMODULE_MYPARAM1'=>array('type'=>'string', 'css'=>'minwidth500' ,'enabled'=>1),
// 'MYMODULE_MYPARAM2'=>array('type'=>'textarea','enabled'=>1),
//'MYMODULE_MYPARAM3'=>array('type'=>'category:'.Categorie::TYPE_CUSTOMER, 'enabled'=>1),
//'MYMODULE_MYPARAM4'=>array('type'=>'emailtemplate:thirdparty', 'enabled'=>1),
//'MYMODULE_MYPARAM5'=>array('type'=>'yesno', 'enabled'=>1),
//'MYMODULE_MYPARAM5'=>array('type'=>'thirdparty_type', 'enabled'=>1),
//'MYMODULE_MYPARAM6'=>array('type'=>'securekey', 'enabled'=>1),
//'MYMODULE_MYPARAM7'=>array('type'=>'product', 'enabled'=>1),
*/
2021-11-02 13:11:36 +00:00
$item = new FormSetupItem ( $confKey );
2025-09-08 10:15:01 +00:00
// setTypeFromTypeString was created as deprecated to incite developer to use object oriented usage
/** @phan-suppress-next-line PhanDeprecatedFunction */
$item -> setTypeFromTypeString (( string ) $params [ 'type' ]);
2021-10-23 23:38:13 +00:00
2024-09-09 01:15:26 +00:00
if ( ! empty ( $params [ 'enabled' ]) && is_numeric ( $params [ 'enabled' ])) {
$item -> enabled = ( int ) $params [ 'enabled' ];
2021-10-23 23:38:13 +00:00
}
2021-10-30 10:54:13 +00:00
if ( ! empty ( $params [ 'css' ])) {
2024-09-09 01:15:26 +00:00
$item -> cssClass = ( string ) $params [ 'css' ];
2021-10-23 23:38:13 +00:00
}
2021-11-02 13:07:36 +00:00
$this -> items [ $item -> confKey ] = $item ;
2021-10-23 23:38:13 +00:00
return true ;
}
2021-10-30 14:36:51 +00:00
/**
2021-12-21 13:58:34 +00:00
* Used to export param array for / core / actions_setmoduleoptions . inc . php template
2024-01-13 18:48:20 +00:00
* Method exists only for manage setup conversion
2021-12-21 13:58:34 +00:00
*
2024-09-09 01:15:26 +00:00
* @ return array < string , array { type : string , enabled : int < 0 , 1 > } > $arrayofparameters for / core / actions_setmoduleoptions . inc . php
2021-10-30 14:36:51 +00:00
*/
public function exportItemsAsParamsArray ()
{
$arrayofparameters = array ();
2021-11-28 11:11:03 +00:00
foreach ( $this -> items as $item ) {
2021-10-30 14:36:51 +00:00
$arrayofparameters [ $item -> confKey ] = array (
2021-11-01 09:32:37 +00:00
'type' => $item -> getType (),
2021-10-30 14:36:51 +00:00
'enabled' => $item -> enabled
);
}
return $arrayofparameters ;
}
2021-10-30 10:54:13 +00:00
/**
* Reload for each item default conf
* note : this will override custom configuration
2021-12-21 13:58:34 +00:00
*
2021-10-30 10:54:13 +00:00
* @ return bool
*/
public function reloadConfs ()
{
2023-12-04 11:04:36 +00:00
if ( ! array ( $this -> items )) {
return false ;
}
2021-11-02 13:07:36 +00:00
foreach ( $this -> items as $item ) {
2022-05-21 14:35:10 +00:00
$item -> loadValueFromConf ();
2021-10-30 10:54:13 +00:00
}
return true ;
}
/**
* Create a new item
2024-01-23 15:46:33 +00:00
* The target is useful with hooks : that allow externals modules to add setup items on good place
2021-12-21 13:58:34 +00:00
*
* @ param string $confKey the conf key used in database
* @ param string $targetItemKey target item used to place the new item beside
* @ param bool $insertAfterTarget insert before or after target item ?
2024-01-23 15:28:36 +00:00
* @ return FormSetupItem the new setup item created
2021-10-30 10:54:13 +00:00
*/
2023-11-21 22:16:46 +00:00
public function newItem ( $confKey , $targetItemKey = '' , $insertAfterTarget = false )
2021-10-30 10:54:13 +00:00
{
2021-11-02 13:11:36 +00:00
$item = new FormSetupItem ( $confKey );
2021-11-02 12:55:12 +00:00
2024-03-21 12:35:51 +00:00
$item -> entity = $this -> entity ;
2021-11-02 12:55:12 +00:00
// set item rank if not defined as last item
if ( empty ( $item -> rank )) {
$item -> rank = $this -> getCurentItemMaxRank () + 1 ;
$this -> setItemMaxRank ( $item -> rank ); // set new max rank if needed
}
// try to get rank from target column, this will override item->rank
if ( ! empty ( $targetItemKey )) {
2021-11-02 13:07:36 +00:00
if ( isset ( $this -> items [ $targetItemKey ])) {
$targetItem = $this -> items [ $targetItemKey ];
2021-11-02 12:55:12 +00:00
$item -> rank = $targetItem -> rank ; // $targetItem->rank will be increase after
if ( $targetItem -> rank >= 0 && $insertAfterTarget ) {
$item -> rank ++ ;
}
}
// calc new rank for each item to make place for new item
2021-11-02 13:07:36 +00:00
foreach ( $this -> items as $fItem ) {
2021-11-02 12:55:12 +00:00
if ( $item -> rank <= $fItem -> rank ) {
2024-08-07 00:53:45 +00:00
$fItem -> rank += 1 ;
2021-11-02 12:55:12 +00:00
$this -> setItemMaxRank ( $fItem -> rank ); // set new max rank if needed
}
}
}
2021-11-02 13:07:36 +00:00
$this -> items [ $item -> confKey ] = $item ;
return $this -> items [ $item -> confKey ];
2021-10-30 10:54:13 +00:00
}
2021-11-02 12:55:12 +00:00
/**
* Sort items according to rank
2021-12-21 13:58:34 +00:00
*
2021-11-02 12:55:12 +00:00
* @ return bool
*/
public function sortingItems ()
{
// Sorting
2021-11-02 13:07:36 +00:00
return uasort ( $this -> items , array ( $this , 'itemSort' ));
2021-11-02 12:55:12 +00:00
}
/**
2021-12-21 13:58:34 +00:00
* getCurentItemMaxRank
*
2021-11-02 12:55:12 +00:00
* @ param bool $cache To use cache or not
* @ return int
*/
public function getCurentItemMaxRank ( $cache = true )
{
2021-11-02 13:07:36 +00:00
if ( empty ( $this -> items )) {
2021-11-02 12:55:12 +00:00
return 0 ;
}
if ( $cache && $this -> maxItemRank > 0 ) {
return $this -> maxItemRank ;
}
$this -> maxItemRank = 0 ;
2021-11-02 13:07:36 +00:00
foreach ( $this -> items as $item ) {
2021-11-02 12:55:12 +00:00
$this -> maxItemRank = max ( $this -> maxItemRank , $item -> rank );
}
return $this -> maxItemRank ;
}
/**
* set new max rank if needed
2021-12-21 13:58:34 +00:00
*
* @ param int $rank the item rank
2025-02-25 16:54:34 +00:00
* @ return void new max rank
2021-11-02 12:55:12 +00:00
*/
public function setItemMaxRank ( $rank )
{
$this -> maxItemRank = max ( $this -> maxItemRank , $rank );
}
/**
2021-12-21 13:58:34 +00:00
* get item position rank from item key
2021-11-02 12:55:12 +00:00
*
2021-12-21 13:58:34 +00:00
* @ param string $itemKey the item key
* @ return int rank on success and - 1 on error
2021-11-02 12:55:12 +00:00
*/
public function getLineRank ( $itemKey )
{
2021-11-02 13:07:36 +00:00
if ( ! isset ( $this -> items [ $itemKey ] -> rank )) {
2021-11-02 12:55:12 +00:00
return - 1 ;
}
2021-11-02 13:07:36 +00:00
return $this -> items [ $itemKey ] -> rank ;
2021-11-02 12:55:12 +00:00
}
/**
* uasort callback function to Sort params items
*
2021-11-02 13:11:36 +00:00
* @ param FormSetupItem $a formSetup item
* @ param FormSetupItem $b formSetup item
2021-12-21 13:58:34 +00:00
* @ return int Return compare result
2021-11-02 12:55:12 +00:00
*/
2021-11-02 13:11:36 +00:00
public function itemSort ( FormSetupItem $a , FormSetupItem $b )
2021-11-02 12:55:12 +00:00
{
if ( empty ( $a -> rank )) {
$a -> rank = 0 ;
}
if ( empty ( $b -> rank )) {
$b -> rank = 0 ;
}
if ( $a -> rank == $b -> rank ) {
return 0 ;
}
return ( $a -> rank < $b -> rank ) ? - 1 : 1 ;
}
2021-10-30 10:54:13 +00:00
}
2021-10-23 23:38:13 +00:00
2024-03-05 23:46:04 +00:00
2021-10-30 10:54:13 +00:00
/**
* This class help to create item for class formSetup
*/
2021-11-02 13:11:36 +00:00
class FormSetupItem
2021-10-23 23:38:13 +00:00
{
/**
* @ var DoliDB Database handler .
*/
public $db ;
/** @var Translate */
public $langs ;
2021-11-02 12:55:12 +00:00
/** @var int */
public $entity ;
2021-10-23 23:38:13 +00:00
/** @var Form */
public $form ;
2024-05-03 09:10:22 +00:00
2025-02-25 16:54:34 +00:00
/** @var string the conf key used in database */
2021-10-23 23:38:13 +00:00
public $confKey ;
2026-04-18 06:29:21 +00:00
/** @var string|false The label of field */
2021-10-23 23:38:13 +00:00
public $nameText = false ;
2025-02-25 16:54:34 +00:00
/** @var string */
2021-10-23 23:38:13 +00:00
public $helpText = '' ;
2025-02-25 16:54:34 +00:00
/** @var string */
2024-05-03 09:10:22 +00:00
public $picto = '' ;
2025-02-25 16:54:34 +00:00
/** @var ?string */
2021-10-30 10:54:13 +00:00
public $fieldValue ;
2025-02-25 16:54:34 +00:00
/** @var ?string */
2022-05-21 14:35:10 +00:00
public $defaultFieldValue = null ;
2024-10-26 16:24:40 +00:00
/** @var array{name?:string,id?:string,value?:mixed,class?:string,disabled?:?int<0,1>,type?:string,size?:int,placeholder?:string,step?:float|string,min?:int,max?:int} fields attribute only for compatible fields like input text */
2022-05-21 14:35:10 +00:00
public $fieldAttr = array ();
2022-01-09 09:24:28 +00:00
2026-04-18 06:29:21 +00:00
/** @var bool|string set this var to override field value on both input and output */
2021-10-23 23:38:13 +00:00
public $fieldOverride = false ;
2022-01-09 09:24:28 +00:00
/** @var bool|string set this var to override field input */
2021-10-30 10:54:13 +00:00
public $fieldInputOverride = false ;
2026-06-10 17:24:14 +00:00
/** @var callable this will be call before fieldInputOverride */
public $fieldInputCallBack ;
2021-10-30 10:54:13 +00:00
/** @var bool|string set this var to override field output */
public $fieldOutputOverride = false ;
2026-06-10 17:24:14 +00:00
/** @var callable this will be call before fieldOutputCallBack */
public $fieldOutputCallBack ;
2025-02-25 16:54:34 +00:00
/** @var int */
2021-11-02 12:55:12 +00:00
public $rank = 0 ;
2026-04-12 11:52:10 +00:00
/** @var array<int|string,string|array{id:int|string,label:string,color:string,picto:string,labelhtml:string}> set this var for options on select and multiselect items */
2022-05-11 16:05:06 +00:00
public $fieldOptions = array ();
2026-04-12 11:52:10 +00:00
/** @var array<int|string,string|int|array{id:int|string,label:string,color:string,picto:string,labelhtml:string}> set this var to add more parameters */
2024-06-05 22:32:43 +00:00
public $fieldParams = array ();
2025-02-25 16:54:34 +00:00
/** @var callable */
2022-05-11 16:05:06 +00:00
public $saveCallBack ;
2025-02-25 16:54:34 +00:00
/** @var callable */
2022-05-11 16:05:06 +00:00
public $setValueFromPostCallBack ;
2021-10-23 23:38:13 +00:00
/**
2025-02-25 16:54:34 +00:00
* @ var string []
2021-10-23 23:38:13 +00:00
*/
public $errors = array ();
/**
2021-10-30 10:54:13 +00:00
* TODO each type must have setAs { type } method to help configuration
* And set var as protected when its done configuration must be done by method
2024-09-09 01:15:26 +00:00
* this is important for retrocompatibility of future versions
2025-02-25 16:54:34 +00:00
* @ var string 'string' , 'textarea' , 'category:' . Categorie :: TYPE_CUSTOMER ', ' emailtemplate ', ' thirdparty_type '
2021-10-23 23:38:13 +00:00
*/
2021-10-31 08:29:20 +00:00
protected $type = 'string' ;
2021-10-23 23:38:13 +00:00
2024-09-09 01:15:26 +00:00
/** @var int<0,1> */
2021-10-30 10:54:13 +00:00
public $enabled = 1 ;
2021-10-23 23:38:13 +00:00
2024-03-05 23:46:04 +00:00
/**
* @ var string The css to use on the input field of item
*/
2021-10-23 23:38:13 +00:00
public $cssClass = '' ;
2024-10-11 23:50:18 +00:00
2021-10-23 23:38:13 +00:00
/**
* Constructor
*
2024-03-21 12:35:51 +00:00
* @ param string $confKey the conf key used in database
2021-10-23 23:38:13 +00:00
*/
public function __construct ( $confKey )
{
2022-01-09 09:24:28 +00:00
global $langs , $db , $conf , $form ;
2021-10-23 23:38:13 +00:00
$this -> db = $db ;
2022-01-09 09:24:28 +00:00
if ( ! empty ( $form ) && is_object ( $form ) && get_class ( $form ) == 'Form' ) { // the form class has a cache inside so I am using it to optimize
$this -> form = $form ;
} else {
$this -> form = new Form ( $this -> db );
}
2021-10-23 23:38:13 +00:00
$this -> langs = $langs ;
2024-03-21 12:35:51 +00:00
$this -> entity = ( is_null ( $this -> entity ) ? $conf -> entity : (( int ) $this -> entity ));
2021-10-23 23:38:13 +00:00
$this -> confKey = $confKey ;
2022-05-21 14:35:10 +00:00
$this -> loadValueFromConf ();
2021-10-23 23:38:13 +00:00
}
2021-10-30 10:54:13 +00:00
/**
2022-05-21 14:35:10 +00:00
* load conf value from databases
2023-10-15 13:32:35 +00:00
*
2022-05-21 14:35:10 +00:00
* @ return bool
2021-10-30 10:54:13 +00:00
*/
2022-05-21 14:35:10 +00:00
public function loadValueFromConf ()
2021-10-30 10:54:13 +00:00
{
global $conf ;
2022-05-21 14:35:10 +00:00
if ( isset ( $conf -> global -> { $this -> confKey })) {
2025-03-04 20:31:08 +00:00
$this -> fieldValue = getDolGlobalString ( $this -> confKey );
2022-05-21 14:35:10 +00:00
return true ;
} else {
2025-02-28 10:55:32 +00:00
$this -> fieldValue = null ;
2022-05-21 14:35:10 +00:00
return false ;
}
}
/**
2024-01-23 15:12:41 +00:00
* Reload conf value from databases is an alias of loadValueFromConf
2023-10-15 13:32:35 +00:00
*
2022-05-21 14:35:10 +00:00
* @ deprecated
* @ return bool
*/
public function reloadValueFromConf ()
{
return $this -> loadValueFromConf ();
2021-10-30 10:54:13 +00:00
}
2021-11-02 12:55:12 +00:00
/**
* Save const value based on htdocs / core / actions_setmoduleoptions . inc . php
2023-01-06 18:24:57 +00:00
*
* @ return int - 1 if KO , 1 if OK
2021-11-02 12:55:12 +00:00
*/
public function saveConfValue ()
{
2022-05-20 20:34:44 +00:00
global $hookmanager ;
$parameters = array ();
$reshook = $hookmanager -> executeHooks ( 'formSetupBeforeSaveConfValue' , $parameters , $this ); // Note that $action and $object may have been modified by some hooks
if ( $reshook < 0 ) {
$this -> setErrors ( $hookmanager -> errors );
return - 1 ;
}
if ( $reshook > 0 ) {
return $reshook ;
}
2026-06-10 17:24:14 +00:00
if ( $this -> saveCallBack !== null && is_callable ( $this -> saveCallBack )) {
2022-05-20 20:05:13 +00:00
return call_user_func ( $this -> saveCallBack , $this );
2022-05-11 16:05:06 +00:00
}
2021-11-02 12:55:12 +00:00
// Modify constant only if key was posted (avoid resetting key to the null value)
if ( $this -> type != 'title' ) {
$result = dolibarr_set_const ( $this -> db , $this -> confKey , $this -> fieldValue , 'chaine' , 0 , '' , $this -> entity );
if ( $result < 0 ) {
return - 1 ;
} else {
return 1 ;
}
}
2023-01-06 18:24:57 +00:00
return 0 ;
2021-11-02 12:55:12 +00:00
}
2022-05-11 16:05:06 +00:00
/**
* Set an override function for saving data
2023-01-06 18:24:57 +00:00
*
2022-05-11 16:05:06 +00:00
* @ param callable $callBack a callable function
* @ return void
*/
public function setSaveCallBack ( callable $callBack )
{
$this -> saveCallBack = $callBack ;
}
/**
* Set an override function for get data from post
2023-10-15 13:32:35 +00:00
*
2022-05-11 16:05:06 +00:00
* @ param callable $callBack a callable function
* @ return void
*/
public function setValueFromPostCallBack ( callable $callBack )
{
$this -> setValueFromPostCallBack = $callBack ;
}
2021-11-02 12:55:12 +00:00
/**
* Save const value based on htdocs / core / actions_setmoduleoptions . inc . php
2023-10-15 13:32:35 +00:00
*
* @ return int - 1 if KO , 0 nothing to do , 1 if OK
2021-11-02 12:55:12 +00:00
*/
public function setValueFromPost ()
{
2026-06-10 17:24:14 +00:00
if ( $this -> setValueFromPostCallBack !== null && is_callable ( $this -> setValueFromPostCallBack )) {
2022-05-11 16:05:06 +00:00
return call_user_func ( $this -> setValueFromPostCallBack );
}
2021-11-02 12:55:12 +00:00
// Modify constant only if key was posted (avoid resetting key to the null value)
if ( $this -> type != 'title' ) {
if ( preg_match ( '/category:/' , $this -> type )) {
Fix: GETPOST(...,'int') to GETPOSTINT(...) (#28448)
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: Update spelling exceptions
* Qual: Ignore Phan Notice
2024-02-27 13:05:53 +00:00
if ( GETPOSTINT ( $this -> confKey ) == '-1' ) {
2021-11-02 12:55:12 +00:00
$val_const = '' ;
} else {
Fix: GETPOST(...,'int') to GETPOSTINT(...) (#28448)
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: GETPOST(...,'int') to GETPOSTINT(...)
# Fix: GETPOST(...,'int') to GETPOSTINT(...)
Converted using Phan plugin
* Fix: Update spelling exceptions
* Qual: Ignore Phan Notice
2024-02-27 13:05:53 +00:00
$val_const = GETPOSTINT ( $this -> confKey );
2021-11-02 12:55:12 +00:00
}
2022-05-11 16:05:06 +00:00
} elseif ( $this -> type == 'multiselect' ) {
$val = GETPOST ( $this -> confKey , 'array' );
if ( $val && is_array ( $val )) {
$val_const = implode ( ',' , $val );
2022-09-10 14:43:04 +00:00
} else {
$val_const = '' ;
2022-05-11 16:05:06 +00:00
}
} elseif ( $this -> type == 'html' ) {
$val_const = GETPOST ( $this -> confKey , 'restricthtml' );
2025-03-08 13:40:52 +00:00
} elseif ( $this -> type == 'email' ) {
$val_const = GETPOST ( $this -> confKey , 'alphawithlgt' );
2025-04-14 19:08:53 +00:00
} elseif ( $this -> type == 'number' ) {
$val_const = GETPOSTINT ( $this -> confKey );
2021-11-02 12:55:12 +00:00
} else {
2025-03-08 13:40:52 +00:00
$val_const = GETPOST ( $this -> confKey , 'alphanohtml' );
2021-11-02 12:55:12 +00:00
}
// TODO add value check with class validate
$this -> fieldValue = $val_const ;
return 1 ;
}
return 0 ;
}
2021-10-30 10:54:13 +00:00
/**
* Get help text or generate it
2023-10-15 13:32:35 +00:00
*
2021-10-30 10:54:13 +00:00
* @ return int | string
*/
public function getHelpText ()
{
2023-12-04 11:04:36 +00:00
if ( ! empty ( $this -> helpText )) {
return $this -> helpText ;
}
2021-10-23 23:38:13 +00:00
return (( $this -> langs -> trans ( $this -> confKey . 'Tooltip' ) != $this -> confKey . 'Tooltip' ) ? $this -> langs -> trans ( $this -> confKey . 'Tooltip' ) : '' );
}
2021-10-30 10:54:13 +00:00
/**
* Get field name text or generate it
2023-10-15 13:32:35 +00:00
*
2021-10-30 10:54:13 +00:00
* @ return false | int | string
*/
public function getNameText ()
{
2023-12-04 11:04:36 +00:00
if ( ! empty ( $this -> nameText )) {
return $this -> nameText ;
}
2024-02-08 00:51:25 +00:00
$out = (( $this -> langs -> trans ( $this -> confKey ) != $this -> confKey ) ? $this -> langs -> trans ( $this -> confKey ) : $this -> langs -> trans ( 'MissingTranslationForConfKey' , $this -> confKey ));
// if conf defined on entity 0, prepend a picto to indicate it will apply across all entities
2024-03-15 18:57:45 +00:00
if ( isModEnabled ( 'multicompany' ) && $this -> entity == 0 ) {
$out = img_picto ( $this -> langs -> trans ( 'AllEntities' ), 'fa-globe-americas em088 opacityhigh' ) . ' ' . $out ;
}
2024-02-08 00:51:25 +00:00
return $out ;
2021-10-23 23:38:13 +00:00
}
2021-10-30 10:54:13 +00:00
/**
* generate input field
2023-10-15 13:32:35 +00:00
*
2021-10-30 10:54:13 +00:00
* @ return bool | string
*/
public function generateInputField ()
{
2021-11-28 11:15:31 +00:00
global $conf ;
2021-10-23 23:38:13 +00:00
2026-06-10 17:24:14 +00:00
if ( $this -> fieldInputCallBack !== null && is_callable ( $this -> fieldInputCallBack )) {
// can be used to populate fieldInputOverride, fieldOverride or change stuff
$resCallback = call_user_func ( $this -> fieldInputCallBack , $this );
if ( ! empty ( $resCallback )) {
return $resCallback ;
}
}
2021-10-30 10:54:13 +00:00
if ( ! empty ( $this -> fieldOverride )) {
2021-10-23 23:38:13 +00:00
return $this -> fieldOverride ;
}
2021-10-30 10:54:13 +00:00
if ( ! empty ( $this -> fieldInputOverride )) {
return $this -> fieldInputOverride ;
}
2022-05-21 14:35:10 +00:00
// Set default value
if ( is_null ( $this -> fieldValue )) {
$this -> fieldValue = $this -> defaultFieldValue ;
}
2022-01-09 09:24:28 +00:00
$this -> fieldAttr [ 'name' ] = $this -> confKey ;
$this -> fieldAttr [ 'id' ] = 'setup-' . $this -> confKey ;
$this -> fieldAttr [ 'value' ] = $this -> fieldValue ;
2021-10-23 23:38:13 +00:00
$out = '' ;
2021-10-31 08:29:20 +00:00
if ( $this -> type == 'title' ) {
2024-03-15 18:57:45 +00:00
$out .= $this -> generateOutputField (); // title have no input
2022-05-11 16:05:06 +00:00
} elseif ( $this -> type == 'multiselect' ) {
2024-03-15 18:57:45 +00:00
$out .= $this -> generateInputFieldMultiSelect ();
2022-05-11 16:05:06 +00:00
} elseif ( $this -> type == 'select' ) {
2024-03-15 18:57:45 +00:00
$out .= $this -> generateInputFieldSelect ();
2025-10-24 09:19:13 +00:00
} elseif ( $this -> type == 'radio' ) {
$out .= $this -> generateInputFieldRadio ();
2023-03-14 14:04:15 +00:00
} elseif ( $this -> type == 'selectUser' ) {
2024-03-15 18:57:45 +00:00
$out .= $this -> generateInputFieldSelectUser ();
2021-10-31 08:29:20 +00:00
} elseif ( $this -> type == 'textarea' ) {
2024-03-15 18:57:45 +00:00
$out .= $this -> generateInputFieldTextarea ();
} elseif ( $this -> type == 'html' ) {
$out .= $this -> generateInputFieldHtml ();
} elseif ( $this -> type == 'color' ) {
$out .= $this -> generateInputFieldColor ();
2021-10-23 23:38:13 +00:00
} elseif ( $this -> type == 'yesno' ) {
2022-08-05 15:43:33 +00:00
if ( ! empty ( $conf -> use_javascript_ajax )) {
2024-10-11 23:50:18 +00:00
$input = $this -> fieldParams [ 'input' ] ? ? array ();
2025-10-22 09:05:59 +00:00
$revertonoff = empty ( $this -> fieldParams [ 'revertonoff' ]) ? 0 : 1 ;
$forcereload = empty ( $this -> fieldParams [ 'forcereload' ]) ? 0 : 1 ;
2026-01-20 13:51:43 +00:00
$suffixarray = array (
'ifoff' => '' ,
'ifon' => '' ,
);
if ( ! empty ( $this -> fieldParams [ 'alertifoff' ])) {
2026-01-05 18:34:31 +00:00
$suffixarray [ 'ifoff' ] = '_red' ;
2026-01-20 13:51:43 +00:00
} elseif ( ! empty ( $this -> fieldParams [ 'warningifoff' ])) {
$suffixarray [ 'ifoff' ] = '_warning' ;
2026-01-05 18:34:31 +00:00
}
2026-01-20 13:51:43 +00:00
if ( ! empty ( $this -> fieldParams [ 'alertifon' ])) {
2026-01-05 18:34:31 +00:00
$suffixarray [ 'ifon' ] = '_red' ;
2026-01-20 13:51:43 +00:00
} elseif ( ! empty ( $this -> fieldParams [ 'warningifon' ])) {
2026-01-05 18:34:31 +00:00
$suffixarray [ 'ifon' ] = '_warning' ;
}
2024-10-11 23:50:18 +00:00
2025-11-03 13:27:58 +00:00
$out .= ajax_constantonoff ( $this -> confKey , $input , $this -> entity , $revertonoff , 0 , $forcereload , 2 , 0 , 0 , $suffixarray , '' , $this -> cssClass );
2022-08-05 15:43:33 +00:00
} else {
2025-10-31 23:29:43 +00:00
$out .= $this -> form -> selectyesno ( $this -> confKey , $this -> fieldValue , 1 , false , 0 , 0 , $this -> cssClass );
2022-08-05 15:43:33 +00:00
}
2021-10-23 23:38:13 +00:00
} elseif ( preg_match ( '/emailtemplate:/' , $this -> type )) {
2024-03-15 18:57:45 +00:00
$out .= $this -> generateInputFieldEmailTemplate ();
2021-10-23 23:38:13 +00:00
} elseif ( preg_match ( '/category:/' , $this -> type )) {
2024-03-15 18:57:45 +00:00
$out .= $this -> generateInputFieldCategories ();
2021-10-23 23:38:13 +00:00
} elseif ( preg_match ( '/thirdparty_type/' , $this -> type )) {
require_once DOL_DOCUMENT_ROOT . '/core/class/html.formcompany.class.php' ;
$formcompany = new FormCompany ( $this -> db );
2024-03-15 18:57:45 +00:00
$out .= $formcompany -> selectProspectCustomerType ( $this -> fieldValue , $this -> confKey );
2021-10-23 23:38:13 +00:00
} elseif ( $this -> type == 'securekey' ) {
2024-03-15 18:57:45 +00:00
$out .= $this -> generateInputFieldSecureKey ();
2021-10-23 23:38:13 +00:00
} elseif ( $this -> type == 'product' ) {
2022-08-23 18:02:37 +00:00
if ( isModEnabled ( " product " ) || isModEnabled ( " service " )) {
2021-10-30 10:54:13 +00:00
$selected = ( empty ( $this -> fieldValue ) ? '' : $this -> fieldValue );
2025-10-18 11:56:33 +00:00
$out .= img_picto ( '' , 'product' , 'class="pictofixedwidth"' );
2025-02-25 16:54:34 +00:00
$out .= $this -> form -> select_produits (( int ) $selected , $this -> confKey , '' , 0 , 0 , 1 , 2 , '' , 0 , array (), 0 , '1' , 0 , $this -> cssClass , 0 , '' , null , 1 );
2021-10-23 23:38:13 +00:00
}
2024-01-16 11:10:12 +00:00
} elseif ( $this -> type == 'selectBankAccount' ) {
if ( isModEnabled ( " bank " )) {
$selected = ( empty ( $this -> fieldValue ) ? '' : $this -> fieldValue );
2025-02-06 12:51:35 +00:00
$out .= img_picto ( '' , 'bank' , 'class="pictofixedwidth"' ) . $this -> form -> select_comptes ( $selected , $this -> confKey , 0 , '' , 0 , '' , 0 , '' , 1 );
2024-01-16 11:10:12 +00:00
}
2024-03-13 10:49:03 +00:00
} elseif ( $this -> type == 'password' ) {
2024-03-15 18:57:45 +00:00
$out .= $this -> generateInputFieldPassword ( 'dolibarr' );
2024-03-13 10:49:03 +00:00
} elseif ( $this -> type == 'genericpassword' ) {
2026-01-13 18:00:00 +00:00
$out .= $this -> generateInputFieldPassword ( 'generic' , 0 , 0 );
2025-10-18 11:56:33 +00:00
} elseif ( $this -> type == 'price' ) {
$out .= $this -> generateInputFieldPrice ();
} elseif ( $this -> type == 'email' ) {
$out .= $this -> generateInputFieldEmail ();
} elseif ( $this -> type == 'url' ) {
$out .= $this -> generateInputFieldUrl ();
2021-10-23 23:38:13 +00:00
} else {
2024-03-15 18:57:45 +00:00
$out .= $this -> generateInputFieldText ();
2021-10-23 23:38:13 +00:00
}
return $out ;
}
2022-05-21 14:35:10 +00:00
/**
2024-10-28 11:12:27 +00:00
* Generate default input field
2023-10-15 13:32:35 +00:00
*
2022-05-21 14:35:10 +00:00
* @ return string
*/
public function generateInputFieldText ()
{
2024-01-23 15:28:36 +00:00
if ( empty ( $this -> fieldAttr ) || empty ( $this -> fieldAttr [ 'class' ])) {
2023-12-04 11:04:36 +00:00
$this -> fieldAttr [ 'class' ] = 'flat ' . ( empty ( $this -> cssClass ) ? 'minwidth200' : $this -> cssClass );
}
2026-04-18 06:14:14 +00:00
return '<input ' . FormSetup :: generateAttributesStringFromArray ( $this -> fieldAttr ) . ' spellcheck="false">' ;
2022-05-21 14:35:10 +00:00
}
2025-10-18 11:56:33 +00:00
/**
* Generate default input field
*
* @ return string
*/
public function generateInputFieldPrice ()
{
global $langs , $mysoc ;
if ( empty ( $this -> fieldAttr ) || empty ( $this -> fieldAttr [ 'class' ])) {
$this -> fieldAttr [ 'class' ] = 'flat ' . ( empty ( $this -> cssClass ) ? 'minwidth40 maxwidth75' : $this -> cssClass );
}
//return img_picto('', 'currency', 'class="pictofixedwidth"').'<input '.FormSetup::generateAttributesStringFromArray($this->fieldAttr).' /> '.$langs->getCurrencySymbol($mysoc->currency_code);
2026-04-18 06:14:14 +00:00
return '<input ' . FormSetup :: generateAttributesStringFromArray ( $this -> fieldAttr ) . ' spellcheck="false"> ' . $langs -> getCurrencySymbol ( $mysoc -> currency_code );
2025-10-18 11:56:33 +00:00
}
/**
* Generate default input field
*
* @ return string
*/
public function generateInputFieldEmail ()
{
if ( empty ( $this -> fieldAttr ) || empty ( $this -> fieldAttr [ 'class' ])) {
$this -> fieldAttr [ 'class' ] = 'flat ' . ( empty ( $this -> cssClass ) ? 'minwidth100 maxwidth500' : $this -> cssClass );
}
2026-04-18 06:14:14 +00:00
return img_picto ( '' , 'email' , 'class="pictofixedwidth"' ) . '<input ' . FormSetup :: generateAttributesStringFromArray ( $this -> fieldAttr ) . ' spellcheck="false">' ;
2025-10-18 11:56:33 +00:00
}
/**
* Generate default input field
*
* @ return string
*/
public function generateInputFieldUrl ()
{
if ( empty ( $this -> fieldAttr ) || empty ( $this -> fieldAttr [ 'class' ])) {
$this -> fieldAttr [ 'class' ] = 'flat ' . ( empty ( $this -> cssClass ) ? 'minwidth100 maxwidth500' : $this -> cssClass );
}
2026-04-18 06:14:14 +00:00
return img_picto ( '' , 'url' , 'class="pictofixedwidth"' ) . '<input ' . FormSetup :: generateAttributesStringFromArray ( $this -> fieldAttr ) . ' spellcheck="false">' ;
2025-10-18 11:56:33 +00:00
}
2021-10-31 08:29:20 +00:00
/**
* generate input field for textarea
2023-10-15 13:32:35 +00:00
*
2021-10-31 08:29:20 +00:00
* @ return string
*/
public function generateInputFieldTextarea ()
{
2026-04-18 06:14:14 +00:00
$out = '<textarea class="flat" name="' . $this -> confKey . '" id="' . $this -> confKey . '" cols="50" rows="5" wrap="soft" spellcheck="false">' . " \n " ;
2024-03-15 18:57:45 +00:00
$out .= dol_htmlentities ( $this -> fieldValue );
$out .= " </textarea> \n " ;
2021-10-31 08:29:20 +00:00
return $out ;
}
2021-11-01 09:32:37 +00:00
2021-10-31 08:29:20 +00:00
/**
* generate input field for html
2023-10-15 13:32:35 +00:00
*
2021-10-31 08:29:20 +00:00
* @ return string
*/
public function generateInputFieldHtml ()
{
require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php' ;
2023-06-09 11:45:19 +00:00
$doleditor = new DolEditor ( $this -> confKey , $this -> fieldValue , '' , 160 , 'dolibarr_notes' , '' , false , false , isModEnabled ( 'fckeditor' ), ROWS_5 , '90%' );
2021-10-31 08:29:20 +00:00
return $doleditor -> Create ( 1 );
}
2021-11-01 09:32:37 +00:00
/**
* generate input field for categories
2024-01-23 14:23:11 +00:00
*
2021-11-01 09:32:37 +00:00
* @ return string
*/
public function generateInputFieldCategories ()
{
require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php' ;
require_once DOL_DOCUMENT_ROOT . '/core/class/html.formother.class.php' ;
$formother = new FormOther ( $this -> db );
$tmp = explode ( ':' , $this -> type );
2023-10-15 13:32:35 +00:00
$out = img_picto ( '' , 'category' , 'class="pictofixedwidth"' );
2024-01-23 14:23:11 +00:00
$label = 'Categories' ;
if ( $this -> type == 'customer' ) {
$label = 'CustomersProspectsCategoriesShort' ;
}
2025-02-25 16:54:34 +00:00
$out .= $formother -> select_categories ( $tmp [ 1 ], ( int ) $this -> fieldValue , $this -> confKey , 0 , $this -> langs -> trans ( $label ));
2023-10-15 13:32:35 +00:00
2021-11-01 09:32:37 +00:00
return $out ;
}
/**
* generate input field for email template selector
* @ return string
*/
public function generateInputFieldEmailTemplate ()
{
2023-10-15 13:32:35 +00:00
global $user ;
2021-11-01 09:32:37 +00:00
$out = '' ;
if ( preg_match ( '/emailtemplate:/' , $this -> type )) {
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php' ;
$formmail = new FormMail ( $this -> db );
$tmp = explode ( ':' , $this -> type );
$nboftemplates = $formmail -> fetchAllEMailTemplate ( $tmp [ 1 ], $user , null , 1 ); // We set lang=null to get in priority record with no lang
$arrayOfMessageName = array ();
if ( is_array ( $formmail -> lines_model )) {
foreach ( $formmail -> lines_model as $modelMail ) {
$moreonlabel = '' ;
if ( ! empty ( $arrayOfMessageName [ $modelMail -> label ])) {
$moreonlabel = ' <span class="opacitymedium">(' . $this -> langs -> trans ( " SeveralLangugeVariatFound " ) . ')</span>' ;
}
// The 'label' is the key that is unique if we exclude the language
$arrayOfMessageName [ $modelMail -> id ] = $this -> langs -> trans ( preg_replace ( '/\(|\)/' , '' , $modelMail -> label )) . $moreonlabel ;
}
}
$out .= $this -> form -> selectarray ( $this -> confKey , $arrayOfMessageName , $this -> fieldValue , 'None' , 0 , 0 , '' , 0 , 0 , 0 , '' , '' , 1 );
}
return $out ;
}
/**
* generate input field for secure key
2023-10-15 13:32:35 +00:00
*
2021-11-01 09:32:37 +00:00
* @ return string
*/
public function generateInputFieldSecureKey ()
{
global $conf ;
2024-06-05 22:32:43 +00:00
$out = '<input type="text" class="flat minwidth150' . ( $this -> cssClass ? ' ' . $this -> cssClass : '' ) . '" id="' . $this -> confKey . '" name="' . $this -> confKey . '" value="' . ( GETPOST ( $this -> confKey , 'alpha' ) ? GETPOST ( $this -> confKey , 'alpha' ) : $this -> fieldValue ) . '">' ;
if ( ! empty ( $conf -> use_javascript_ajax ) && empty ( $this -> fieldParams [ 'hideGenerateButton' ])) {
2024-03-15 18:57:45 +00:00
$out .= ' ' . img_picto ( $this -> langs -> trans ( 'Generate' ), 'refresh' , 'id="generate_token' . $this -> confKey . '" class="linkobject"' );
2022-07-27 11:42:32 +00:00
2024-06-05 22:32:43 +00:00
// Add button to autosuggest a key
include_once DOL_DOCUMENT_ROOT . '/core/lib/security2.lib.php' ;
$out .= dolJSToSetRandomPassword ( $this -> confKey , 'generate_token' . $this -> confKey );
}
2022-07-27 11:42:32 +00:00
2021-11-01 09:32:37 +00:00
return $out ;
}
2022-05-11 16:05:06 +00:00
2024-03-13 10:49:03 +00:00
/**
* generate input field for a password
*
2026-01-13 18:00:00 +00:00
* @ param string $type 'dolibarr' ( dolibarr password rules apply ) or 'generic'
* @ param int $defaultmin Min nb of chars
* @ param int $defaultmax Max nb of chars
2024-03-13 10:49:03 +00:00
* @ return string
*/
2026-01-13 18:00:00 +00:00
public function generateInputFieldPassword ( $type = 'generic' , $defaultmin = 6 , $defaultmax = 50 )
2024-03-13 10:49:03 +00:00
{
global $conf , $langs , $user ;
2026-01-13 18:00:00 +00:00
$min = $defaultmin ;
$max = $defaultmax ;
2024-03-13 10:49:03 +00:00
if ( $type == 'dolibarr' ) {
$gen = getDolGlobalString ( 'USER_PASSWORD_GENERATED' , 'standard' );
if ( $gen == 'none' ) {
$gen = 'standard' ;
}
NEW: #0 Resolve password generator/validator classes via modules_parts['models'] (#39486)
Password generator/validator classes (USER_PASSWORD_GENERATED,
modGeneratePassXxx extends ModeleGenPassword) could previously only live
under htdocs/core/modules/security/generate/ — every call site resolving
one by name hardcoded that path, so no third-party module could
contribute its own generator without patching core.
Reuse the modules_parts['models'] extension point already populated for
any enabled module declaring $this->module_parts['models'] = 1 (the same
mechanism every numbering-module scan in Dolibarr already uses — see e.g.
Facture::getNextNumRef()), and wire it into the password-generator scan
too:
- admin/security.php's generator listing now scans core plus every
enabled module declaring module_parts['models'], instead of only
core/modules/security/generate/.
- Added ModeleGenPassword::loadAndInstantiate($id, ...) in
modules_genpassword.php, a shared factory doing that same multi-root
resolution once, used by the four runtime call sites that previously
hardcoded the core-only path: User::setPassword(), getRandomPassword()
(security2.lib.php), FormSetupItem::generateInputFieldPassword()
(html.formsetup.class.php), and PasswordField::verifyFieldValue()
(passwordfield.class.php). getRandomPassword() falls back to the
'standard' generator (with a warning logged) if the configured
generator's class can't be resolved, rather than silently generating
and persisting an empty password.
Behavior for the built-in Standard/None/Perso generators is unchanged —
core is always the first root scanned, so it always wins for those ids.
2026-08-14 14:19:48 +00:00
require_once DOL_DOCUMENT_ROOT . " /core/modules/security/generate/modules_genpassword.php " ;
$genhandler = ModeleGenPassword :: loadAndInstantiate ( $gen , $this -> db , $conf , $langs , $user );
if ( $genhandler ) {
$min = $genhandler -> length ;
$max = $genhandler -> length2 ;
}
2024-03-13 10:49:03 +00:00
}
2026-02-26 14:33:49 +00:00
$out = '<input required="required" type="password" class="flat minwidth150' . ( $this -> cssClass ? ' ' . $this -> cssClass : '' ) . '" id="' . $this -> confKey . '" name="' . $this -> confKey . '" value="' . ( GETPOST ( $this -> confKey , 'alpha' ) ? GETPOST ( $this -> confKey , 'alpha' ) : $this -> fieldValue ) . '"' ;
2024-06-07 14:18:34 +00:00
if ( $min ) {
2024-06-05 22:32:43 +00:00
$out .= ' minlength="' . $min . '"' ;
}
if ( $max ) {
$out .= ' maxlength="' . $max . '"' ;
}
$out .= '>' ;
2025-11-08 16:12:41 +00:00
$out .= '<span class="fa fa-eye paddingleft paddingright" onclick="javascript: console.log(\'click on show-hide pass\'); newtype = (jQuery(\'#' . trim ( $this -> confKey ) . '\').attr(\'type\') == \'text\' ? \'password\' : \'text\'); jQuery(\'#' . trim ( $this -> confKey ) . '\').attr(\'type\', newtype);"></span>' ;
2024-03-13 10:49:03 +00:00
return $out ;
}
2022-05-11 16:05:06 +00:00
/**
2023-10-15 13:32:35 +00:00
* generateInputFieldMultiSelect
*
2022-05-11 16:05:06 +00:00
* @ return string
*/
public function generateInputFieldMultiSelect ()
{
$TSelected = array ();
if ( $this -> fieldValue ) {
$TSelected = explode ( ',' , $this -> fieldValue );
}
return $this -> form -> multiselectarray ( $this -> confKey , $this -> fieldOptions , $TSelected , 0 , 0 , '' , 0 , 0 , 'style="min-width:100px"' );
}
/**
2023-10-15 13:32:35 +00:00
* generateInputFieldSelect
*
2022-05-11 16:05:06 +00:00
* @ return string
*/
public function generateInputFieldSelect ()
{
2024-05-03 09:10:22 +00:00
$s = '' ;
if ( $this -> picto ) {
$s .= img_picto ( '' , $this -> picto , 'class="pictofixedwidth"' );
}
2024-07-28 17:10:36 +00:00
2024-06-05 21:49:09 +00:00
$s .= $this -> form -> selectarray ( $this -> confKey , $this -> fieldOptions , $this -> fieldValue , 0 , 0 , 0 , '' , 0 , 0 , 0 , '' , $this -> cssClass );
2024-05-03 09:10:22 +00:00
return $s ;
2022-05-11 16:05:06 +00:00
}
2025-10-24 09:19:13 +00:00
/**
* generateInputFieldSelect
*
* @ return string
*/
public function generateInputFieldRadio ()
{
$s = '' ;
if ( $this -> picto ) {
$s .= img_picto ( '' , $this -> picto , 'class="pictofixedwidth"' );
}
$s .= $this -> form -> radio ( $this -> confKey , $this -> fieldOptions , $this -> fieldValue , [ 'attrLabel' => [ 'class' => $this -> cssClass ]]);
return $s ;
}
2023-03-14 14:04:15 +00:00
/**
* @ return string
*/
public function generateInputFieldSelectUser ()
{
return $this -> form -> select_dolusers ( $this -> fieldValue , $this -> confKey );
}
2021-11-01 09:32:37 +00:00
/**
* get the type : used for old module builder setup conf style conversion and tests
* because this two class will quickly evolve it ' s important to not set or get directly $this -> type ( will be protected ) so this method exist
* to be sure we can manage evolution easily
*
* @ return string
*/
public function getType ()
{
return $this -> type ;
}
2021-10-31 08:29:20 +00:00
/**
* 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
2023-01-06 18:24:57 +00:00
*
2024-06-05 22:32:43 +00:00
* @ param string $type Possible values based on old module builder setup : 'string' , 'textarea' , 'category:' . Categorie :: TYPE_CUSTOMER ', ' emailtemplate ', ' thirdparty_type '
* @ deprecated this setTypeFromTypeString came deprecated because it exists only for manage setup conversion
* @ return bool
2021-10-31 08:29:20 +00:00
*/
public function setTypeFromTypeString ( $type )
{
$this -> type = $type ;
2023-01-06 18:24:57 +00:00
2021-10-31 08:29:20 +00:00
return true ;
}
2021-10-23 23:38:13 +00:00
/**
2021-10-30 10:54:13 +00:00
* Add error
2023-01-06 18:24:57 +00:00
*
2024-09-09 01:15:26 +00:00
* @ param string [] | string $errors the error text
2021-10-30 10:54:13 +00:00
* @ return null
2021-10-23 23:38:13 +00:00
*/
2021-10-30 10:54:13 +00:00
public function setErrors ( $errors )
{
if ( is_array ( $errors )) {
if ( ! empty ( $errors )) {
foreach ( $errors as $error ) {
2021-10-23 23:38:13 +00:00
$this -> setErrors ( $error );
}
}
2021-10-30 10:54:13 +00:00
} elseif ( ! empty ( $errors )) {
2021-10-23 23:38:13 +00:00
$this -> errors [] = $errors ;
}
2024-02-28 19:33:36 +00:00
return null ;
2021-10-23 23:38:13 +00:00
}
2021-10-30 10:54:13 +00:00
/**
2023-01-06 18:24:57 +00:00
* generateOutputField
*
* @ return bool | string Generate the output html for this item
2021-10-30 10:54:13 +00:00
*/
public function generateOutputField ()
{
2022-08-05 15:55:39 +00:00
global $conf , $user , $langs ;
2021-10-23 23:38:13 +00:00
2026-06-10 17:24:14 +00:00
if ( $this -> fieldOutputCallBack !== null && is_callable ( $this -> fieldOutputCallBack )) {
// can be used to populate fieldOutputOverride, fieldOverride or change stuff
$resCallback = call_user_func ( $this -> fieldOutputCallBack , $this );
if ( ! empty ( $resCallback )) {
return $resCallback ;
}
}
2021-10-30 10:54:13 +00:00
if ( ! empty ( $this -> fieldOverride )) {
2021-10-23 23:38:13 +00:00
return $this -> fieldOverride ;
}
2021-10-30 10:54:13 +00:00
if ( ! empty ( $this -> fieldOutputOverride )) {
return $this -> fieldOutputOverride ;
}
2021-10-23 23:38:13 +00:00
$out = '' ;
2021-10-31 08:29:20 +00:00
if ( $this -> type == 'title' ) {
// nothing to do
} elseif ( $this -> type == 'textarea' ) {
2024-03-15 18:57:45 +00:00
$out .= dol_nl2br ( $this -> fieldValue );
2022-05-11 16:05:06 +00:00
} elseif ( $this -> type == 'multiselect' ) {
2024-03-15 18:57:45 +00:00
$out .= $this -> generateOutputFieldMultiSelect ();
2022-05-11 16:05:06 +00:00
} elseif ( $this -> type == 'select' ) {
2024-03-15 18:57:45 +00:00
$out .= $this -> generateOutputFieldSelect ();
2023-03-14 14:04:15 +00:00
} elseif ( $this -> type == 'selectUser' ) {
2024-03-15 18:57:45 +00:00
$out .= $this -> generateOutputFieldSelectUser ();
2023-10-15 13:32:35 +00:00
} elseif ( $this -> type == 'html' ) {
2024-03-15 18:57:45 +00:00
$out .= $this -> fieldValue ;
2023-10-15 13:32:35 +00:00
} elseif ( $this -> type == 'color' ) {
2024-03-15 18:57:45 +00:00
$out .= $this -> generateOutputFieldColor ();
2021-10-23 23:38:13 +00:00
} elseif ( $this -> type == 'yesno' ) {
2022-08-05 15:43:33 +00:00
if ( ! empty ( $conf -> use_javascript_ajax )) {
2025-03-31 09:36:53 +00:00
$revertonoff = empty ( $this -> fieldParams [ 'revertonoff' ]) ? 0 : 1 ;
$forcereload = empty ( $this -> fieldParams [ 'forcereload' ]) ? 0 : 1 ;
2024-10-11 23:50:18 +00:00
2025-11-03 13:05:58 +00:00
$out .= ajax_constantonoff ( $this -> confKey , array (), $this -> entity , $revertonoff , 0 , $forcereload , 2 , 0 , 0 , '' , '' , $this -> cssClass ); // TODO possibility to add $input parameter
2022-08-05 15:43:33 +00:00
} else {
2022-08-05 15:55:39 +00:00
if ( $this -> fieldValue == 1 ) {
2024-03-15 18:57:45 +00:00
$out .= $langs -> trans ( 'yes' );
2022-08-05 15:43:33 +00:00
} else {
2024-03-15 18:57:45 +00:00
$out .= $langs -> trans ( 'no' );
2022-08-05 15:43:33 +00:00
}
}
2021-10-23 23:38:13 +00:00
} elseif ( preg_match ( '/emailtemplate:/' , $this -> type )) {
2023-01-25 16:34:57 +00:00
if ( $this -> fieldValue > 0 ) {
2023-01-18 11:10:58 +00:00
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php' ;
$formmail = new FormMail ( $this -> db );
2021-10-23 23:38:13 +00:00
2023-01-18 11:10:58 +00:00
$tmp = explode ( ':' , $this -> type );
2021-10-23 23:38:13 +00:00
2025-02-25 16:54:34 +00:00
$template = $formmail -> getEMailTemplate ( $this -> db , $tmp [ 1 ], $user , $this -> langs , ( int ) $this -> fieldValue );
2023-01-26 01:21:27 +00:00
if ( is_numeric ( $template ) && $template < 0 ) {
2023-01-18 11:10:58 +00:00
$this -> setErrors ( $formmail -> errors );
}
2024-03-15 18:57:45 +00:00
$out .= $this -> langs -> trans ( $template -> label );
2021-10-23 23:38:13 +00:00
}
} elseif ( preg_match ( '/category:/' , $this -> type )) {
2022-05-20 20:05:13 +00:00
require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php' ;
2021-10-23 23:38:13 +00:00
$c = new Categorie ( $this -> db );
2025-02-25 16:54:34 +00:00
$result = $c -> fetch (( int ) $this -> fieldValue );
2021-10-23 23:38:13 +00:00
if ( $result < 0 ) {
$this -> setErrors ( $c -> errors );
}
2025-10-29 15:50:09 +00:00
$ways = $c -> print_all_ways ( 'auto' , 'none' , 0 , 1 ); // $ways[0] = "ccc2 >> ccc2a >> ccc2a1" with html formatted text
2021-10-23 23:38:13 +00:00
$toprint = array ();
foreach ( $ways as $way ) {
$toprint [] = '<li class="select2-search-choice-dolibarr noborderoncategories"' . ( $c -> color ? ' style="background: #' . $c -> color . ';"' : ' style="background: #bbb"' ) . '>' . $way . '</li>' ;
}
2024-03-15 18:57:45 +00:00
$out .= '<div class="select2-container-multi-dolibarr" style="width: 90%;"><ul class="select2-choices-dolibarr">' . implode ( ' ' , $toprint ) . '</ul></div>' ;
2021-10-23 23:38:13 +00:00
} elseif ( preg_match ( '/thirdparty_type/' , $this -> type )) {
2024-03-15 18:57:45 +00:00
if ( $this -> fieldValue == 2 ) {
$out .= $this -> langs -> trans ( " Prospect " );
} elseif ( $this -> fieldValue == 3 ) {
$out .= $this -> langs -> trans ( " ProspectCustomer " );
} elseif ( $this -> fieldValue == 1 ) {
$out .= $this -> langs -> trans ( " Customer " );
} elseif ( $this -> fieldValue == 0 ) {
$out .= $this -> langs -> trans ( " NorProspectNorCustomer " );
2021-10-23 23:38:13 +00:00
}
} elseif ( $this -> type == 'product' ) {
2022-07-27 09:41:31 +00:00
require_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php' ;
2023-01-26 01:21:27 +00:00
2021-10-23 23:38:13 +00:00
$product = new Product ( $this -> db );
2025-02-25 16:54:34 +00:00
$resprod = $product -> fetch (( int ) $this -> fieldValue );
2021-10-23 23:38:13 +00:00
if ( $resprod > 0 ) {
2025-03-05 09:05:05 +00:00
$out .= $product -> getNomUrl ( 1 , '' , 0 , - 1 , 0 , '' , 1 );
2021-10-23 23:38:13 +00:00
} elseif ( $resprod < 0 ) {
$this -> setErrors ( $product -> errors );
}
2024-01-16 11:10:12 +00:00
} elseif ( $this -> type == 'selectBankAccount' ) {
require_once DOL_DOCUMENT_ROOT . '/compta/bank/class/account.class.php' ;
$bankaccount = new Account ( $this -> db );
2025-03-15 15:34:35 +00:00
$resbank = $bankaccount -> fetch (( int ) $this -> fieldValue );
2024-01-16 11:10:12 +00:00
if ( $resbank > 0 ) {
2024-03-15 18:57:45 +00:00
$out .= $bankaccount -> label ;
2024-01-16 11:10:12 +00:00
} elseif ( $resbank < 0 ) {
$this -> setErrors ( $bankaccount -> errors );
}
2024-03-13 10:49:03 +00:00
} elseif ( $this -> type == 'password' || $this -> type == 'genericpassword' ) {
2024-03-15 18:57:45 +00:00
$out .= str_repeat ( '*' , strlen ( $this -> fieldValue ));
2021-10-23 23:38:13 +00:00
} else {
2025-03-08 13:40:52 +00:00
$out .= dolPrintHTML ( $this -> fieldValue );
2021-10-23 23:38:13 +00:00
}
return $out ;
}
2021-11-02 12:55:12 +00:00
2022-05-11 16:05:06 +00:00
/**
2023-03-27 06:54:57 +00:00
* generateOutputFieldMultiSelect
2023-03-27 06:55:42 +00:00
*
2022-05-11 16:05:06 +00:00
* @ return string
*/
public function generateOutputFieldMultiSelect ()
{
$outPut = '' ;
$TSelected = array ();
if ( ! empty ( $this -> fieldValue )) {
$TSelected = explode ( ',' , $this -> fieldValue );
}
if ( ! empty ( $TSelected )) {
foreach ( $TSelected as $selected ) {
if ( ! empty ( $this -> fieldOptions [ $selected ])) {
2024-03-15 18:57:45 +00:00
$outPut .= dolGetBadge ( '' , $this -> fieldOptions [ $selected ], 'info' ) . ' ' ;
2022-05-11 16:05:06 +00:00
}
}
}
return $outPut ;
}
2022-05-21 14:35:10 +00:00
/**
2023-03-27 06:54:57 +00:00
* generateOutputFieldColor
2023-03-27 06:55:42 +00:00
*
2022-05-21 14:35:10 +00:00
* @ return string
*/
public function generateOutputFieldColor ()
{
2024-01-27 11:08:28 +00:00
global $langs ;
2024-12-05 13:03:09 +00:00
$out = '' ;
2024-03-15 18:57:45 +00:00
$this -> fieldAttr [ 'disabled' ] = null ;
2024-01-27 11:08:28 +00:00
$color = colorArrayToHex ( colorStringToArray ( $this -> fieldValue , array ()), '' );
2024-12-05 13:03:09 +00:00
$useDefaultColor = false ;
if ( ! $color && ! empty ( $this -> defaultFieldValue )) {
$color = $this -> defaultFieldValue ;
$useDefaultColor = true ;
}
2024-01-27 11:08:28 +00:00
if ( $color ) {
2025-02-25 16:54:34 +00:00
$out .= '<input type="color" class="colorthumb" disabled="disabled" style="padding: 1px; margin-top: 0; margin-bottom: 0; " value="#' . $color . '">' ;
2024-01-27 11:08:28 +00:00
}
2024-12-05 13:03:09 +00:00
2024-12-05 13:15:29 +00:00
if ( $useDefaultColor ) {
2025-02-25 16:54:34 +00:00
$out .= ' ' . $langs -> trans ( " Default " );
2024-12-05 13:15:29 +00:00
} else {
2025-02-25 16:54:34 +00:00
$out .= ' #' . $color ;
2024-12-05 13:15:29 +00:00
}
2024-12-05 13:03:09 +00:00
return $out ;
2022-05-21 14:35:10 +00:00
}
/**
2023-03-27 06:54:57 +00:00
* generateInputFieldColor
2023-03-27 06:55:42 +00:00
*
2022-05-21 14:35:10 +00:00
* @ return string
*/
public function generateInputFieldColor ()
{
2024-03-15 18:57:45 +00:00
$this -> fieldAttr [ 'type' ] = 'color' ;
2024-01-27 11:08:28 +00:00
$default = $this -> defaultFieldValue ;
include_once DOL_DOCUMENT_ROOT . '/core/class/html.formother.class.php' ;
$formother = new FormOther ( $this -> db );
2025-03-15 15:34:35 +00:00
return $formother -> selectColor ( colorArrayToHex ( colorStringToArray (( string ) $this -> fieldAttr [ 'value' ], array ()), '' ), $this -> fieldAttr [ 'name' ], '' , 1 , array (), '' , '' , ( string ) $default ) . ' ' ;
2022-05-21 14:35:10 +00:00
}
2022-05-11 16:05:06 +00:00
/**
2023-03-27 06:54:57 +00:00
* generateOutputFieldSelect
*
2022-05-11 16:05:06 +00:00
* @ return string
*/
public function generateOutputFieldSelect ()
{
$outPut = '' ;
if ( ! empty ( $this -> fieldOptions [ $this -> fieldValue ])) {
$outPut = $this -> fieldOptions [ $this -> fieldValue ];
}
return $outPut ;
}
2023-03-14 14:04:15 +00:00
/**
2023-03-27 06:54:57 +00:00
* generateOutputFieldSelectUser
*
2023-03-14 14:04:15 +00:00
* @ return string
*/
public function generateOutputFieldSelectUser ()
{
$outPut = '' ;
$user = new User ( $this -> db );
2025-02-25 16:54:34 +00:00
$user -> fetch (( int ) $this -> fieldValue );
2023-03-14 14:04:15 +00:00
$outPut = $user -> firstname . " " . $user -> lastname ;
return $outPut ;
}
2023-03-27 06:55:42 +00:00
2021-10-30 10:54:13 +00:00
/*
* METHODS FOR SETTING DISPLAY TYPE
*/
/**
* Set type of input as string
2023-03-27 06:54:57 +00:00
*
2021-10-30 14:36:51 +00:00
* @ return self
2021-10-30 10:54:13 +00:00
*/
public function setAsString ()
{
$this -> type = 'string' ;
2021-10-30 14:36:51 +00:00
return $this ;
2021-10-30 10:54:13 +00:00
}
2025-04-14 19:08:53 +00:00
/**
* Set type of input as number
* @ param int $min minimum value for input number
* @ param int $max maximum value for input number
* @ param int $step legal number intervals
*
* @ return self
*/
public function setAsNumber ( $min = null , $max = null , $step = null )
{
$this -> type = 'number' ; //for GETPOSTINT
$this -> fieldAttr [ 'type' ] = 'number' ; //generic thanks to generateAttributesStringFromArray
if ( ! is_null ( $min )) {
$this -> fieldAttr [ 'min' ] = $min ;
}
if ( ! is_null ( $max )) {
$this -> fieldAttr [ 'max' ] = $max ;
}
if ( ! is_null ( $step )) {
$this -> fieldAttr [ 'step' ] = $step ;
}
return $this ;
}
2025-03-08 13:40:52 +00:00
/**
* Set type of input as string
*
* @ return self
*/
public function setAsEmail ()
{
$this -> type = 'email' ;
return $this ;
}
2025-10-18 11:56:33 +00:00
/**
* Set type of input as string
*
* @ return self
*/
public function setAsUrl ()
{
$this -> type = 'url' ;
return $this ;
}
2022-05-21 14:35:10 +00:00
/**
* Set type of input as color
2023-03-27 06:54:57 +00:00
*
2022-05-21 14:35:10 +00:00
* @ return self
*/
public function setAsColor ()
{
$this -> type = 'color' ;
return $this ;
}
2021-10-30 10:54:13 +00:00
/**
* Set type of input as textarea
2023-03-27 06:54:57 +00:00
*
2021-10-30 14:36:51 +00:00
* @ return self
2021-10-30 10:54:13 +00:00
*/
public function setAsTextarea ()
{
$this -> type = 'textarea' ;
2021-10-30 14:36:51 +00:00
return $this ;
2021-10-30 10:54:13 +00:00
}
/**
* Set type of input as html editor
2023-03-27 06:54:57 +00:00
*
2021-10-30 14:36:51 +00:00
* @ return self
2021-10-30 10:54:13 +00:00
*/
public function setAsHtml ()
{
$this -> type = 'html' ;
2021-10-30 14:36:51 +00:00
return $this ;
2021-10-30 10:54:13 +00:00
}
/**
* Set type of input as emailtemplate selector
2023-03-27 06:54:57 +00:00
*
2021-10-30 14:36:51 +00:00
* @ param string $templateType email template type
* @ return self
2021-10-30 10:54:13 +00:00
*/
2021-10-30 14:36:51 +00:00
public function setAsEmailTemplate ( $templateType )
2021-10-30 10:54:13 +00:00
{
2021-10-30 14:36:51 +00:00
$this -> type = 'emailtemplate:' . $templateType ;
return $this ;
2021-10-30 10:54:13 +00:00
}
/**
* Set type of input as thirdparty_type selector
2023-03-27 06:54:57 +00:00
*
2021-10-30 14:36:51 +00:00
* @ return self
2021-10-30 10:54:13 +00:00
*/
public function setAsThirdpartyType ()
{
$this -> type = 'thirdparty_type' ;
2021-10-30 14:36:51 +00:00
return $this ;
2021-10-30 10:54:13 +00:00
}
/**
* Set type of input as Yes
2023-03-27 06:54:57 +00:00
*
2021-10-30 14:36:51 +00:00
* @ return self
2021-10-30 10:54:13 +00:00
*/
public function setAsYesNo ()
{
$this -> type = 'yesno' ;
2021-10-30 14:36:51 +00:00
return $this ;
2021-10-30 10:54:13 +00:00
}
/**
* Set type of input as secure key
2023-03-27 06:54:57 +00:00
*
2021-10-30 14:36:51 +00:00
* @ return self
2021-10-30 10:54:13 +00:00
*/
public function setAsSecureKey ()
{
$this -> type = 'securekey' ;
2021-10-30 14:36:51 +00:00
return $this ;
}
/**
* Set type of input as product
2023-03-27 06:54:57 +00:00
*
2021-10-30 14:36:51 +00:00
* @ return self
*/
public function setAsProduct ()
{
$this -> type = 'product' ;
return $this ;
2021-10-30 10:54:13 +00:00
}
2025-10-18 11:56:33 +00:00
/**
* Set type of input as product
*
* @ return self
*/
public function setAsPrice ()
{
$this -> type = 'price' ;
return $this ;
}
2021-10-30 10:54:13 +00:00
/**
* Set type of input as a category selector
* TODO add default value
2023-03-27 06:54:57 +00:00
*
2024-08-16 18:13:53 +00:00
* @ param string $catType Type of category ( 'customer' , 'supplier' , 'contact' , 'product' , 'member' ) . Old mode ( 0 , 1 , 2 , ... ) is deprecated .
* @ return self
2021-10-30 10:54:13 +00:00
*/
public function setAsCategory ( $catType )
{
$this -> type = 'category:' . $catType ;
2021-10-30 14:36:51 +00:00
return $this ;
2021-10-30 10:54:13 +00:00
}
2021-10-31 08:29:20 +00:00
/**
2023-03-27 06:54:57 +00:00
* Set type of input as a simple title . No data to store
*
2021-10-31 08:29:20 +00:00
* @ return self
*/
public function setAsTitle ()
{
$this -> type = 'title' ;
return $this ;
}
2022-05-11 16:05:06 +00:00
/**
2026-02-26 13:42:38 +00:00
* Set type of input as a multiselect list .
2023-03-27 06:54:57 +00:00
*
2026-04-12 11:52:10 +00:00
* @ param array < int | string , string | array { id : string , label : string , color : string , picto : string , labelhtml : string } > $fieldOptions A table of field options
2022-05-11 16:05:06 +00:00
* @ return self
*/
public function setAsMultiSelect ( $fieldOptions )
{
if ( is_array ( $fieldOptions )) {
$this -> fieldOptions = $fieldOptions ;
}
$this -> type = 'multiselect' ;
return $this ;
}
/**
2026-02-26 13:42:38 +00:00
* Set type of input as a select list .
2023-03-27 06:54:57 +00:00
*
2026-07-10 15:50:47 +00:00
* @ param ? array < int | string , string | array { id : string , label : string , color ? : string , picto ? : string , labelhtml ? : string , note ? : string } > $fieldOptions A table of field options
2022-05-11 16:05:06 +00:00
* @ return self
*/
public function setAsSelect ( $fieldOptions )
{
if ( is_array ( $fieldOptions )) {
$this -> fieldOptions = $fieldOptions ;
}
$this -> type = 'select' ;
return $this ;
}
2023-03-14 14:04:15 +00:00
2025-10-24 09:19:13 +00:00
/**
2026-02-26 13:42:38 +00:00
* Set type of input as a radio button .
2025-10-24 09:19:13 +00:00
*
2026-04-12 11:52:10 +00:00
* @ param ? array < int | string , string | array { id : string , label : string , picto ? : string , labelIsHtml ? : bool } > $fieldOptions A table of field options
2025-10-24 09:19:13 +00:00
* @ return self
*/
public function setAsRadio ( $fieldOptions )
{
if ( is_array ( $fieldOptions )) {
$this -> fieldOptions = $fieldOptions ;
}
$this -> type = 'radio' ;
return $this ;
}
2023-03-14 14:04:15 +00:00
/**
2026-02-26 13:42:38 +00:00
* Set type of input as a selection of a user from dolibarr users list
2023-03-27 06:54:57 +00:00
*
2023-03-14 14:04:15 +00:00
* @ return self
*/
public function setAsSelectUser ()
{
$this -> type = 'selectUser' ;
return $this ;
}
2024-01-16 11:10:12 +00:00
/**
2026-02-26 13:42:38 +00:00
* Set type of input as a bank account selection from dolibarr bank accounts list
2024-01-16 11:10:12 +00:00
*
* @ return self
*/
public function setAsSelectBankAccount ()
{
$this -> type = 'selectBankAccount' ;
return $this ;
}
2024-03-13 10:49:03 +00:00
/**
* Set type of input as a password with dolibarr password rules apply .
* Hide entry on display .
*
* @ return self
2026-01-13 18:00:00 +00:00
* @ see setAsGenericPassword ()
2024-03-13 10:49:03 +00:00
*/
public function setAsPassword ()
{
$this -> type = 'password' ;
return $this ;
}
/**
* Set type of input as a generic password without dolibarr password rules ( for external passwords for example ) .
* Hide entry on display .
*
* @ return self
2026-01-13 18:00:00 +00:00
* @ see setAsPassword ()
2024-03-13 10:49:03 +00:00
*/
public function setAsGenericPassword ()
{
$this -> type = 'genericpassword' ;
return $this ;
}
2021-10-23 23:38:13 +00:00
}