* * 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.formwebsite.class.php * \ingroup core * \brief File of class to manage component html for module website */ /** * Class to manage component html for module website */ class FormWebsite { private $db; /** * @var string Error code (or message) */ public $error; /** * Constructor * * @param DoliDB $db Database handler */ public function __construct($db) { $this->db = $db; } /** * Return HTML select list of websites * * @param string $selected Id modele pre-selectionne * @param string $htmlname Name of HTML select * @param int $useempty Show empty value or not * @return string Html component */ public function selectWebsite($selected = '', $htmlname = 'exportmodelid', $useempty = 0) { $out=''; $sql = "SELECT rowid, ref"; $sql.= " FROM ".MAIN_DB_PREFIX."website"; $sql.= " WHERE 1 = 1"; $sql.= " ORDER BY rowid"; $result = $this->db->query($sql); if ($result) { $out.='"; } else { dol_print_error($this->db); } return $out; } /** * Return a HTML select list of type of containers from the dictionary * * @param string $htmlname Name of select zone * @param string $selected Selected value * @param int $useempty 1=Add an empty value in list, 2=Add an empty value in list only if there is more than 2 entries. * @param string $moreattrib More attributes on HTML select tag * @return void */ public function selectTypeOfContainer($htmlname, $selected = '', $useempty = 0, $moreattrib = '') { global $langs, $conf, $user; $langs->load("admin"); $sql = "SELECT rowid, code, label, entity"; $sql.= " FROM ".MAIN_DB_PREFIX.'c_type_container'; $sql.= " WHERE active = 1 AND entity IN (".getEntity('c_type_container').")"; $sql.= " ORDER BY label"; dol_syslog(get_class($this)."::selectTypeOfContainer", LOG_DEBUG); $result = $this->db->query($sql); if ($result) { $num = $this->db->num_rows($result); $i = 0; if ($num) { print '"; if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); } else { print $langs->trans("NoTypeOfPagePleaseEditDictionary"); } } else { dol_print_error($this->db); } } /** * Return a HTML select list of samples of containers content * * @param string $htmlname Name of select zone * @param string $selected Selected value * @param int $useempty 1=Add an empty value in list * @param string $moreattrib More attributes on HTML select tag * @return string HTML select component with list of type of containers */ public function selectSampleOfContainer($htmlname, $selected = '', $useempty = 0, $moreattrib = '') { global $langs, $conf, $user; $langs->load("admin"); $listofsamples = dol_dir_list(DOL_DOCUMENT_ROOT.'/website/samples', 'files', 0, '^page-sample-.*\.html$'); $arrayofsamples = array(); $arrayofsamples['empty']='EmptyPage'; // Always this one first foreach($listofsamples as $sample) { $reg = array(); if (preg_match('/^page-sample-(.*)\.html$/', $sample['name'], $reg)) { $key = $reg[1]; $labelkey = ucfirst($key); if ($key == 'empty') $labelkey = 'EmptyPage'; $arrayofsamples[$key] = $labelkey; } } $out = ''; $out .= '"; return $out; } /** * Return a HTML select list of containers of a website. * Note: $website->lines must have been loaded. * * @param Website $website Object Website * @param string $htmlname Name of select zone * @param int $pageid Preselected container ID * @param int $showempty Show empty record * @param string $action Action on page that use this select list * @return string HTML select component with list of type of containers */ public function selectContainer($website, $htmlname = 'pageid', $pageid = 0, $showempty = 0, $action = '') { global $langs; $atleastonepage = (is_array($website->lines) && count($website->lines) > 0); $out=''; if ($atleastonepage && $action != 'editsource') { $out.=''; } if ($showempty || ! $atleastonepage) $out.=''; if ($atleastonepage) { if (empty($pageid) && $action != 'createcontainer') // Page id is not defined, we try to take one { $firstpageid=0;$homepageid=0; foreach($website->lines as $key => $valpage) { if (empty($firstpageid)) $firstpageid=$valpage->id; if ($website->fk_default_home && $key == $website->fk_default_home) $homepageid=$valpage->id; } $pageid=$homepageid?$homepageid:$firstpageid; // We choose home page and if not defined yet, we take first page } foreach($website->lines as $key => $valpage) { $out.=''; } } $out.=''; if ($atleastonepage && $action != 'editsource') { $out.=ajax_combobox($htmlname); } else { $out.=''; $out.=ajax_combobox($htmlname); } return $out; } }