28require_once DOL_DOCUMENT_ROOT.
"/core/class/html.form.class.php";
29require_once DOL_DOCUMENT_ROOT.
"/resource/class/dolresource.class.php";
45 public $substit = array();
47 public $param = array();
84 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)
94 $resources_used = $resourcestat->fetchAll(
'ASC',
't.rowid', $limit, 0, $filter);
96 if (!empty($selected) && !is_array($selected)) {
97 $selected = array($selected);
100 if ($outputmode != 2) {
101 $out =
'<form action="'.$_SERVER[
"PHP_SELF"].
'" method="POST">';
102 $out .=
'<input type="hidden" name="token" value="'.newToken().
'">';
107 $out .=
'<select id="'.$htmlname.
'" class="flat'.($morecss ?
' '.$morecss :
'').
'" name="'.$htmlname.($multiple ?
'[]' :
'').
'" '.($multiple ?
'multiple' :
'').
'>'.
"\n";
109 $out .=
'<option value="-1"> </option>'.
"\n";
113 if (is_array($resourcestat->lines)) {
114 $num = count($resourcestat->lines);
121 $resourceclass = ucfirst($resourcestat->lines[$i]->element);
123 $label = $resourcestat->lines[$i]->ref ? $resourcestat->lines[$i]->ref :
''.$resourcestat->lines[$i]->label;
124 if ($resourceclass !=
'Dolresource') {
125 $label .=
' ('.$langs->trans($resourceclass).
')';
129 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))) {
130 $out .=
'<option value="'.$resourcestat->lines[$i]->id.
'" selected>'.$label.
'</option>';
132 $out .=
'<option value="'.$resourcestat->lines[$i]->id.
'">'.$label.
'</option>';
135 array_push($outarray, array(
'key'=>$resourcestat->lines[$i]->id,
'value'=>$resourcestat->lines[$i]->id,
'label'=>$label));
138 if (($i % 10) == 0) {
143 $out .=
'</select>'.
"\n";
145 if (!empty($conf->use_javascript_ajax) &&
getDolGlobalString(
'RESOURCE_USE_SEARCH_TO_SELECT') && !$forcecombo) {
147 $out .=
ajax_combobox($htmlname, $event, $conf->global->RESOURCE_USE_SEARCH_TO_SELECT);
152 if ($outputmode != 2) {
153 $out .=
'<input type="submit" class="button" value="'.$langs->trans(
"Search").
'"> ';
161 if ($outputmode && $outputmode != 2) {
182 public function select_types_resource($selected =
'', $htmlname =
'type_resource', $filtertype =
'', $format = 0, $empty = 0, $noadmininfo = 0, $maxlength = 0, $usejscombo = 0, $morecss =
'minwidth100')
185 global $langs, $user;
189 dol_syslog(get_class($this).
"::select_types_resource ".$selected.
", ".$htmlname.
", ".$filtertype.
", ".$format, LOG_DEBUG);
191 $filterarray = array();
193 if ($filtertype !=
'' && $filtertype !=
'-1') {
194 $filterarray = explode(
',', $filtertype);
197 $resourcestat->loadCacheCodeTypeResource();
198 print
'<select id="select'.$htmlname.
'" class="flat maxwidthonsmartphone select_'.$htmlname.($morecss ?
' '.$morecss :
'').
'" name="'.$htmlname.
'">';
200 print
'<option value=""> </option>';
202 if (is_array($resourcestat->cache_code_type_resource) && count($resourcestat->cache_code_type_resource)) {
203 foreach ($resourcestat->cache_code_type_resource as
$id => $arraytypes) {
205 if ($empty && empty($arraytypes[
'code'])) {
210 print
'<option value="'.$id.
'"';
211 } elseif ($format == 1) {
212 print
'<option value="'.$arraytypes[
'code'].
'"';
213 } elseif ($format == 2) {
214 print
'<option value="'.$arraytypes[
'code'].
'"';
215 } elseif ($format == 3) {
216 print
'<option value="'.$id.
'"';
219 if (!empty($selected) && preg_match(
'/[a-z]/i', $selected) && $selected == $arraytypes[
'code']) {
221 } elseif ($selected ==
$id) {
226 $value = ($maxlength ?
dol_trunc($arraytypes[
'label'], $maxlength) : $arraytypes[
'label']);
227 } elseif ($format == 1) {
228 $value = $arraytypes[
'code'];
229 } elseif ($format == 2) {
230 $value = ($maxlength ?
dol_trunc($arraytypes[
'label'], $maxlength) : $arraytypes[
'label']);
231 } elseif ($format == 3) {
232 $value = $arraytypes[
'code'];
246 if ($user->admin && !$noadmininfo) {
247 print
info_admin($langs->trans(
"YouCanChangeValuesForThisListFromDictionarySetup"), 1);
264 public function select_ziptown($selected =
'', $htmlname =
'zipcode', $fields = array(), $fieldsize = 0, $disableautocomplete = 0, $moreattrib =
'', $morecss =
'')
272 if (!empty($fieldsize)) {
273 $size =
'size="' . $fieldsize .
'"';
276 if ($conf->use_javascript_ajax && empty($disableautocomplete)) {
278 $moreattrib .=
' autocomplete="off"';
280 $out .=
'<input id="' . $htmlname .
'" class="maxwidthonsmartphone' . ($morecss ?
' ' . $morecss :
'') .
'" type="text"' . ($moreattrib ?
' ' . $moreattrib :
'') .
' name="' . $htmlname .
'" ' . $size .
' value="' . $selected .
'">' .
"\n";
299 public function select_state($selected = 0, $country_codeid = 0, $htmlname =
'state_id', $morecss =
'maxwidth200onsmartphone minwidth300')
302 global $conf, $langs, $user;
304 dol_syslog(get_class($this) .
"::select_departement selected=" . $selected .
", country_codeid=" . $country_codeid, LOG_DEBUG);
306 $langs->load(
"dict");
311 $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";
312 $sql .=
" " . $this->db->prefix() .
"c_departements as d, " . $this->db->prefix() .
"c_regions as r," . $this->db->prefix() .
"c_country as c";
313 $sql .=
" WHERE d.fk_region=r.code_region and r.fk_pays=c.rowid";
314 $sql .=
" AND d.active = 1 AND r.active = 1 AND c.active = 1";
315 if ($country_codeid && is_numeric($country_codeid)) {
316 $sql .=
" AND c.rowid = '" . $this->db->escape($country_codeid) .
"'";
318 if ($country_codeid && !is_numeric($country_codeid)) {
319 $sql .=
" AND c.code = '" . $this->db->escape($country_codeid) .
"'";
321 $sql .=
" ORDER BY c.code, d.code_departement";
323 $result = $this->db->query($sql);
325 if (!empty($htmlname)) {
326 $out .=
'<select id="' . $htmlname .
'" class="flat' . ($morecss ?
' ' . $morecss :
'') .
'" name="' . $htmlname .
'">';
328 if ($country_codeid) {
329 $out .=
'<option value="0"> </option>';
331 $num = $this->db->num_rows($result);
333 dol_syslog(get_class($this) .
"::select_departement num=" . $num, LOG_DEBUG);
337 $obj = $this->db->fetch_object($result);
338 if ($obj->code ==
'0') {
339 $out .=
'<option value="0"> </option>';
341 if (!$country || $country != $obj->country) {
343 if (!$country_codeid && $obj->country_code) {
344 $out .=
'<option value="-1" disabled data-html="----- ' . $obj->country .
' -----">----- ' . $obj->country .
" -----</option>\n";
345 $country = $obj->country;
349 if (!empty($selected) && $selected == $obj->rowid) {
350 $out .=
'<option value="' . $obj->rowid .
'" selected>';
352 $out .=
'<option value="' . $obj->rowid .
'">';
361 $out .= $obj->region_name .
' - ' . $obj->code .
' - ' . ($langs->trans($obj->code) != $obj->code ? $langs->trans($obj->code) : ($obj->name !=
'-' ? $obj->name :
''));
363 $out .= $obj->code .
' - ' . ($langs->trans($obj->code) != $obj->code ? $langs->trans($obj->code) : ($obj->name !=
'-' ? $obj->name :
''));
367 $out .= $obj->region_name .
' - ' . ($langs->trans($obj->code) != $obj->code ? $langs->trans($obj->code) : ($obj->name !=
'-' ? $obj->name :
''));
369 $out .= ($langs->trans($obj->code) != $obj->code ? $langs->trans($obj->code) : ($obj->name !=
'-' ? $obj->name :
''));
378 if (!empty($htmlname)) {
381 if (!empty($htmlname) && $user->admin) {
382 $out .=
' ' .
info_admin($langs->trans(
"YouCanChangeValuesForThisListFromDictionarySetup"), 1);
389 if (!empty($htmlname)) {
390 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 a 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.