27require_once DOL_DOCUMENT_ROOT.
"/core/class/html.form.class.php";
28require_once DOL_DOCUMENT_ROOT.
"/resource/class/dolresource.class.php";
44 public $substit = array();
46 public $param = array();
83 public function select_resource_list($selected = 0, $htmlname =
'fk_resource', array $filter = [], $showempty = 0, $showtype = 0, $forcecombo = 0, $event = [], $filterkey = [], $outputmode = 0, $limit = 20, $morecss =
'minwidth100', $multiple =
false)
93 $resources_used = $resourcestat->fetchAll(
'ASC',
't.rowid', $limit, 0, $filter);
95 if (!empty($selected) && !is_array($selected)) {
96 $selected = array($selected);
99 if ($outputmode != 2) {
100 $out =
'<form action="'.$_SERVER[
"PHP_SELF"].
'" method="POST">';
101 $out .=
'<input type="hidden" name="token" value="'.newToken().
'">';
106 $out .=
'<select id="'.$htmlname.
'" class="flat'.($morecss ?
' '.$morecss :
'').
'" name="'.$htmlname.($multiple ?
'[]' :
'').
'" '.($multiple ?
'multiple' :
'').
'>'.
"\n";
108 $out .=
'<option value="-1"> </option>'.
"\n";
112 if (is_array($resourcestat->lines)) {
113 $num = count($resourcestat->lines);
120 $resourceclass = ucfirst($resourcestat->lines[$i]->element);
122 $label = $resourcestat->lines[$i]->ref ? $resourcestat->lines[$i]->ref :
''.$resourcestat->lines[$i]->label;
123 if ($resourceclass !=
'Dolresource') {
124 $label .=
' ('.$langs->trans($resourceclass).
')';
128 if ((isset($selected[0]) && is_object($selected[0]) && $selected[0]->
id == $resourcestat->lines[$i]->id) || ((!isset($selected[0]) || !is_object($selected[0])) && !empty($selected) && in_array($resourcestat->lines[$i]->id, $selected))) {
129 $out .=
'<option value="'.$resourcestat->lines[$i]->id.
'" selected>'.$label.
'</option>';
131 $out .=
'<option value="'.$resourcestat->lines[$i]->id.
'">'.$label.
'</option>';
134 array_push($outarray, array(
'key'=>$resourcestat->lines[$i]->id,
'value'=>$resourcestat->lines[$i]->id,
'label'=>$label));
137 if (($i % 10) == 0) {
142 $out .=
'</select>'.
"\n";
144 if (!empty($conf->use_javascript_ajax) &&
getDolGlobalString(
'RESOURCE_USE_SEARCH_TO_SELECT') && !$forcecombo) {
146 $out .=
ajax_combobox($htmlname, $event, $conf->global->RESOURCE_USE_SEARCH_TO_SELECT);
151 if ($outputmode != 2) {
152 $out .=
'<input type="submit" class="button" value="'.$langs->trans(
"Search").
'"> ';
160 if ($outputmode && $outputmode != 2) {
179 public function select_types_resource($selected =
'', $htmlname =
'type_resource', $filtertype =
'', $format = 0, $empty = 0, $noadmininfo = 0, $maxlength = 0)
182 global $langs, $user;
186 dol_syslog(get_class($this).
"::select_types_resource ".$selected.
", ".$htmlname.
", ".$filtertype.
", ".$format, LOG_DEBUG);
188 $filterarray = array();
190 if ($filtertype !=
'' && $filtertype !=
'-1') {
191 $filterarray = explode(
',', $filtertype);
194 $resourcestat->loadCacheCodeTypeResource();
195 print
'<select id="select'.$htmlname.
'" class="flat maxwidthonsmartphone select_'.$htmlname.
'" name="'.$htmlname.
'">';
197 print
'<option value=""> </option>';
199 if (is_array($resourcestat->cache_code_type_resource) && count($resourcestat->cache_code_type_resource)) {
200 foreach ($resourcestat->cache_code_type_resource as $id => $arraytypes) {
202 if ($empty && empty($arraytypes[
'code'])) {
207 print
'<option value="'.$id.
'"';
208 } elseif ($format == 1) {
209 print
'<option value="'.$arraytypes[
'code'].
'"';
210 } elseif ($format == 2) {
211 print
'<option value="'.$arraytypes[
'code'].
'"';
212 } elseif ($format == 3) {
213 print
'<option value="'.$id.
'"';
216 if (!empty($selected) && preg_match(
'/[a-z]/i', $selected) && $selected == $arraytypes[
'code']) {
218 } elseif ($selected == $id) {
223 $value = ($maxlength ?
dol_trunc($arraytypes[
'label'], $maxlength) : $arraytypes[
'label']);
224 } elseif ($format == 1) {
225 $value = $arraytypes[
'code'];
226 } elseif ($format == 2) {
227 $value = ($maxlength ?
dol_trunc($arraytypes[
'label'], $maxlength) : $arraytypes[
'label']);
228 } elseif ($format == 3) {
229 $value = $arraytypes[
'code'];
239 if ($user->admin && !$noadmininfo) {
240 print
info_admin($langs->trans(
"YouCanChangeValuesForThisListFromDictionarySetup"), 1);
257 public function select_ziptown($selected =
'', $htmlname =
'zipcode', $fields = array(), $fieldsize = 0, $disableautocomplete = 0, $moreattrib =
'', $morecss =
'')
265 if (!empty($fieldsize)) {
266 $size =
'size="' . $fieldsize .
'"';
269 if ($conf->use_javascript_ajax && empty($disableautocomplete)) {
271 $moreattrib .=
' autocomplete="off"';
273 $out .=
'<input id="' . $htmlname .
'" class="maxwidthonsmartphone' . ($morecss ?
' ' . $morecss :
'') .
'" type="text"' . ($moreattrib ?
' ' . $moreattrib :
'') .
' name="' . $htmlname .
'" ' . $size .
' value="' . $selected .
'">' .
"\n";
292 public function select_state($selected = 0, $country_codeid = 0, $htmlname =
'state_id', $morecss =
'maxwidth200onsmartphone minwidth300')
295 global $conf, $langs, $user;
297 dol_syslog(get_class($this) .
"::select_departement selected=" . $selected .
", country_codeid=" . $country_codeid, LOG_DEBUG);
299 $langs->load(
"dict");
304 $sql =
"SELECT d.rowid, d.code_departement as code, d.nom as name, d.active, c.label as country, c.code as country_code, r.nom as region_name FROM";
305 $sql .=
" " . $this->db->prefix() .
"c_departements as d, " . $this->db->prefix() .
"c_regions as r," . $this->db->prefix() .
"c_country as c";
306 $sql .=
" WHERE d.fk_region=r.code_region and r.fk_pays=c.rowid";
307 $sql .=
" AND d.active = 1 AND r.active = 1 AND c.active = 1";
308 if ($country_codeid && is_numeric($country_codeid)) {
309 $sql .=
" AND c.rowid = '" . $this->db->escape($country_codeid) .
"'";
311 if ($country_codeid && !is_numeric($country_codeid)) {
312 $sql .=
" AND c.code = '" . $this->db->escape($country_codeid) .
"'";
314 $sql .=
" ORDER BY c.code, d.code_departement";
316 $result = $this->db->query($sql);
318 if (!empty($htmlname)) {
319 $out .=
'<select id="' . $htmlname .
'" class="flat' . ($morecss ?
' ' . $morecss :
'') .
'" name="' . $htmlname .
'">';
321 if ($country_codeid) {
322 $out .=
'<option value="0"> </option>';
324 $num = $this->db->num_rows($result);
326 dol_syslog(get_class($this) .
"::select_departement num=" . $num, LOG_DEBUG);
330 $obj = $this->db->fetch_object($result);
331 if ($obj->code ==
'0') {
332 $out .=
'<option value="0"> </option>';
334 if (!$country || $country != $obj->country) {
336 if (!$country_codeid && $obj->country_code) {
337 $out .=
'<option value="-1" disabled data-html="----- ' . $obj->country .
' -----">----- ' . $obj->country .
" -----</option>\n";
338 $country = $obj->country;
342 if (!empty($selected) && $selected == $obj->rowid) {
343 $out .=
'<option value="' . $obj->rowid .
'" selected>';
345 $out .=
'<option value="' . $obj->rowid .
'">';
354 $out .= $obj->region_name .
' - ' . $obj->code .
' - ' . ($langs->trans($obj->code) != $obj->code ? $langs->trans($obj->code) : ($obj->name !=
'-' ? $obj->name :
''));
356 $out .= $obj->code .
' - ' . ($langs->trans($obj->code) != $obj->code ? $langs->trans($obj->code) : ($obj->name !=
'-' ? $obj->name :
''));
360 $out .= $obj->region_name .
' - ' . ($langs->trans($obj->code) != $obj->code ? $langs->trans($obj->code) : ($obj->name !=
'-' ? $obj->name :
''));
362 $out .= ($langs->trans($obj->code) != $obj->code ? $langs->trans($obj->code) : ($obj->name !=
'-' ? $obj->name :
''));
371 if (!empty($htmlname)) {
374 if (!empty($htmlname) && $user->admin) {
375 $out .=
' ' .
info_admin($langs->trans(
"YouCanChangeValuesForThisListFromDictionarySetup"), 1);
382 if (!empty($htmlname)) {
383 include_once DOL_DOCUMENT_ROOT .
'/core/lib/ajax.lib.php';
ajax_combobox($htmlname, $events=array(), $minLengthToAutocomplete=0, $forcefocus=0, $widthTypeOfAutocomplete='resolve', $idforemptyvalue='-1', $morecss='')
Convert a html select field into an ajax combobox.
ajax_multiautocompleter($htmlname, $fields, $url, $option='', $minLength=2, $autoselect=0)
Generic function that return javascript to add to a page to transform a common input text field into ...
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
dol_trunc($string, $size=40, $trunc='right', $stringencoding='UTF-8', $nodot=0, $display=0)
Truncate a string to a particular length adding '…' if string larger than length.
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
info_admin($text, $infoonimgalt=0, $nodiv=0, $admin='1', $morecss='hideonsmartphone', $textfordropdown='', $picto='')
Show information in HTML for admin users or standard users.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.