123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- <?php
- /* Copyright (C) 2008-2017 Laurent Destailleur <eldy@users.sourceforge.net>
- *
- * 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/>.
- */
- /**
- * \file htdocs/ecm/class/htmlecm.form.class.php
- * \brief File of class to manage HTML component for ECM and generic filemanager
- */
- require_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmdirectory.class.php';
- /**
- * Class to manage HTML component for ECM and generic filemanager
- */
- class FormEcm
- {
- /**
- * @var DoliDB Database handler.
- */
- public $db;
- /**
- * @var string Error code (or message)
- */
- public $error = '';
- /**
- * Constructor
- *
- * @param DoliDB $db Database handler
- */
- public function __construct($db)
- {
- $this->db = $db;
- }
- /**
- * Return list of sections
- *
- * @param int $selected Id of preselected section
- * @param string $select_name Name of HTML select component
- * @param string $module Module ('ecm', 'medias', ...)
- * @param array $ids_to_ignore Array of id to ignore
- * @return string String with HTML select
- */
- public function selectAllSections($selected = 0, $select_name = '', $module = 'ecm', $ids_to_ignore = array())
- {
- global $conf, $langs;
- $langs->load("ecm");
- if ($select_name == '') {
- $select_name = "catParent";
- }
- if (!is_array($ids_to_ignore)) {
- $ids_to_ignore = array($ids_to_ignore);
- }
- $cate_arbo = null;
- if ($module == 'ecm') {
- $cat = new EcmDirectory($this->db);
- $cate_arbo = $cat->get_full_arbo();
- } elseif ($module == 'medias') {
- include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
- $path = $conf->medias->multidir_output[$conf->entity];
- $cate_arbo = dol_dir_list($path, 'directories', 1, '', array('(\.meta|_preview.*\.png)$', '^\.'), 'relativename', SORT_ASC);
- }
- $output = '<select class="flat minwidth100 maxwidth500" id="'.$select_name.'" name="'.$select_name.'">';
- if (is_array($cate_arbo)) {
- if (!count($cate_arbo)) {
- $output .= '<option value="-1" disabled>'.$langs->trans("NoDirectoriesFound").'</option>';
- } else {
- $output .= '<option value="-1"> </option>';
- foreach ($cate_arbo as $key => $value) {
- if (!in_array($cate_arbo[$key]['id'], $ids_to_ignore)) {
- $valueforoption = empty($cate_arbo[$key]['id']) ? $cate_arbo[$key]['relativename'] : $cate_arbo[$key]['id'];
- if ($selected && $valueforoption == $selected) {
- $add = 'selected ';
- } else {
- $add = '';
- }
- $output .= '<option '.$add.'value="'.dol_escape_htmltag($valueforoption).'">'.(empty($cate_arbo[$key]['fulllabel']) ? $cate_arbo[$key]['relativename'] : $cate_arbo[$key]['fulllabel']).'</option>';
- }
- }
- }
- }
- $output .= '</select>';
- $output .= ajax_combobox($select_name);
- $output .= "\n";
- return $output;
- }
- }
|