* Copyright (C) 2005-2011 Regis Houssin * Copyright (C) 2007 Patrick Raguin * * 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 . */ /** * \file htdocs/core/class/html.formadmin.class.php * \ingroup core * \brief File of class for html functions for admin pages */ /** * Class to generate html code for admin pages */ class FormAdmin { var $db; var $error; /** * Constructor * * @param DoliDB $db Database handler */ function __construct($db) { $this->db = $db; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps /** * Return html select list with available languages (key='en_US', value='United States' for example) * * @param string $selected Language pre-selected * @param string $htmlname Name of HTML select * @param int $showauto Show 'auto' choice * @param array $filter Array of keys to exclude in list * @param string $showempty '1'=Add empty value or string to show * @param int $showwarning Show a warning if language is not complete * @param int $disabled Disable edit of select * @param string $morecss Add more css styles * @param int $showcode Add language code into label * @param int $forcecombo Force to use combo box (so no ajax beautify effect) * @return string Return HTML select string with list of languages */ function select_language($selected='', $htmlname='lang_id', $showauto=0, $filter=null, $showempty='', $showwarning=0, $disabled=0, $morecss='', $showcode=0, $forcecombo=0) { // phpcs:enable global $langs; $langs_available=$langs->get_available_languages(DOL_DOCUMENT_ROOT,12); $out=''; $out.= ''; // Make select dynamic if (! $forcecombo) { include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php'; $out.= ajax_combobox($htmlname); } return $out; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps /** * Return list of available menus (eldy_backoffice, ...) * * @param string $selected Preselected menu value * @param string $htmlname Name of html select * @param array $dirmenuarray Array of directories to scan * @param string $moreattrib More attributes on html select tag * @return integer|null */ function select_menu($selected, $htmlname, $dirmenuarray, $moreattrib='') { // phpcs:enable global $langs,$conf; // Clean parameters // Check parameters if (! is_array($dirmenuarray)) return -1; $menuarray=array(); foreach ($conf->file->dol_document_root as $dirroot) { foreach($dirmenuarray as $dirtoscan) { $dir=$dirroot.$dirtoscan; //print $dir.'
'; if (is_dir($dir)) { $handle=opendir($dir); if (is_resource($handle)) { while (($file = readdir($handle))!==false) { if (is_file($dir."/".$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS' && substr($file, 0, 5) != 'index') { if (preg_match('/lib\.php$/i',$file)) continue; // We exclude library files if (preg_match('/eldy_(backoffice|frontoffice)\.php$/i',$file)) continue; // We exclude all menu manager files if (preg_match('/auguria_(backoffice|frontoffice)\.php$/i',$file)) continue; // We exclude all menu manager files if (preg_match('/smartphone_(backoffice|frontoffice)\.php$/i',$file)) continue; // We exclude all menu manager files $filelib=preg_replace('/\.php$/i','',$file); $prefix=''; // 0=Recommanded, 1=Experimental, 2=Developpement, 3=Other if (preg_match('/^eldy/i',$file)) $prefix='0'; else if (preg_match('/^smartphone/i',$file)) $prefix='2'; else $prefix='3'; if ($file == $selected) { $menuarray[$prefix.'_'.$file]=''; } else { $menuarray[$prefix.'_'.$file]=''; } } } closedir($handle); } } } } ksort($menuarray); // Output combo list of menus print ''; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps /** * Return combo list of available menu families * * @param string $selected Menu pre-selected * @param string $htmlname Name of html select * @param string[] $dirmenuarray Directories to scan * @return void */ function select_menu_families($selected, $htmlname, $dirmenuarray) { // phpcs:enable global $langs,$conf; //$expdevmenu=array('smartphone_backoffice.php','smartphone_frontoffice.php'); // Menu to disable if $conf->global->MAIN_FEATURES_LEVEL is not set $expdevmenu=array(); $menuarray=array(); foreach($dirmenuarray as $dirmenu) { foreach ($conf->file->dol_document_root as $dirroot) { $dir=$dirroot.$dirmenu; if (is_dir($dir)) { $handle=opendir($dir); if (is_resource($handle)) { while (($file = readdir($handle))!==false) { if (is_file($dir."/".$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS') { $filelib=preg_replace('/(_backoffice|_frontoffice)?\.php$/i','',$file); if (preg_match('/^index/i',$filelib)) continue; if (preg_match('/^default/i',$filelib)) continue; if (preg_match('/^empty/i',$filelib)) continue; if (preg_match('/\.lib/i',$filelib)) continue; if (empty($conf->global->MAIN_FEATURES_LEVEL) && in_array($file,$expdevmenu)) continue; $menuarray[$filelib]=1; } $menuarray['all']=1; } closedir($handle); } } } } ksort($menuarray); // Affichage liste deroulante des menus print ''; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps /** * Return a HTML select list of timezones * * @param string $selected Menu pre-selectionnee * @param string $htmlname Nom de la zone select * @return void */ function select_timezone($selected,$htmlname) { // phpcs:enable global $langs,$conf; print ''; } // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps /** * Return html select list with available languages (key='en_US', value='United States' for example) * * @param string $selected Paper format pre-selected * @param string $htmlname Name of HTML select field * @param string $filter Value to filter on code * @param int $showempty Add empty value * @return string Return HTML output */ function select_paper_format($selected='',$htmlname='paperformat_id',$filter=0,$showempty=0) { // phpcs:enable global $langs; $langs->load("dict"); $sql = "SELECT code, label, width, height, unit"; $sql.= " FROM ".MAIN_DB_PREFIX."c_paper_format"; $sql.= " WHERE active=1"; if ($filter) $sql.=" AND code LIKE '%".$this->db->escape($filter)."%'"; $resql=$this->db->query($sql); if ($resql) { $num=$this->db->num_rows($resql); $i=0; while ($i < $num) { $obj=$this->db->fetch_object($resql); $unitKey = $langs->trans('SizeUnit'.$obj->unit); $paperformat[$obj->code]= $langs->trans('PaperFormat'.strtoupper($obj->code)).' - '.round($obj->width).'x'.round($obj->height).' '.($unitKey == 'SizeUnit'.$obj->unit ? $obj->unit : $unitKey); $i++; } } else { dol_print_error($this->db); return ''; } $out=''; $out.= ''; return $out; } }