dolibarr  13.0.2
htmlecm.form.class.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) 2008-2017 Laurent Destailleur <eldy@users.sourceforge.net>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program. If not, see <https://www.gnu.org/licenses/>.
16  */
17 
22 require_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmdirectory.class.php';
23 
24 
28 class FormEcm
29 {
33  public $db;
34 
38  public $error = '';
39 
40 
46  public function __construct($db)
47  {
48  $this->db = $db;
49  }
50 
51 
60  public function selectAllSections($selected = 0, $select_name = '', $module = 'ecm')
61  {
62  global $conf, $langs;
63  $langs->load("ecm");
64 
65  if ($select_name == '') $select_name = "catParent";
66 
67  $cate_arbo = null;
68  if ($module == 'ecm')
69  {
70  $cat = new EcmDirectory($this->db);
71  $cate_arbo = $cat->get_full_arbo();
72  } elseif ($module == 'medias')
73  {
74  include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
75  $path = $conf->medias->multidir_output[$conf->entity];
76  $cate_arbo = dol_dir_list($path, 'directories', 1, '', array('(\.meta|_preview.*\.png)$', '^\.'), 'relativename', SORT_ASC);
77  }
78 
79  $output = '<select class="flat minwidth100 maxwidth500" id="'.$select_name.'" name="'.$select_name.'">';
80  if (is_array($cate_arbo))
81  {
82  if (!count($cate_arbo)) $output .= '<option value="-1" disabled>'.$langs->trans("NoDirectoriesFound").'</option>';
83  else {
84  $output .= '<option value="-1">&nbsp;</option>';
85  foreach ($cate_arbo as $key => $value)
86  {
87  $valueforoption = empty($cate_arbo[$key]['id']) ? $cate_arbo[$key]['relativename'] : $cate_arbo[$key]['id'];
88  if ($selected && $valueforoption == $selected)
89  {
90  $add = 'selected ';
91  } else {
92  $add = '';
93  }
94  $output .= '<option '.$add.'value="'.dol_escape_htmltag($valueforoption).'">'.(empty($cate_arbo[$key]['fulllabel']) ? $cate_arbo[$key]['relativename'] : $cate_arbo[$key]['fulllabel']).'</option>';
95  }
96  }
97  }
98  $output .= '</select>';
99  $output .= ajax_combobox($select_name);
100  $output .= "\n";
101  return $output;
102  }
103 }
ajax_combobox($htmlname, $events=array(), $minLengthToAutocomplete=0, $forcefocus=0, $widthTypeOfAutocomplete= 'resolve')
Convert a html select field into an ajax combobox.
Definition: ajax.lib.php:391
$conf db
API class for accounts.
Definition: inc.php:54
Class to manage HTML component for ECM and generic filemanager.
__construct($db)
Constructor.
dol_dir_list($path, $types="all", $recursive=0, $filter="", $excludefilter=null, $sortcriteria="name", $sortorder=SORT_ASC, $mode=0, $nohook=0, $relativename="", $donotfollowsymlinks=0)
Scan a directory and return a list of files/directories.
Definition: files.lib.php:60
selectAllSections($selected=0, $select_name= '', $module= 'ecm')
Return list of sections.
Class to manage ECM directories.
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $keepmoretags= '', $escapeonlyhtmltags=0)
Returns text escaped for inclusion in HTML alt or title tags, or into values of HTML input fields...