* Copyright (C) 2004-2013 Laurent Destailleur * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2013 Juanjo Menent * * 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/admin/const.php * \ingroup setup * \brief Admin page to define miscellaneous constants */ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; // Load translation files required by the page $langs->load("admin"); if (! $user->admin) accessforbidden(); $rowid=GETPOST('rowid', 'int'); $entity=GETPOST('entity', 'int'); $action=GETPOST('action', 'alpha'); $update=GETPOST('update', 'alpha'); $delete=GETPOST('delete', 'none'); // Do not use alpha here $debug=GETPOST('debug', 'int'); $consts=GETPOST('const', 'array'); $constname=GETPOST('constname', 'alpha'); $constvalue=GETPOST('constvalue', 'none'); // We shoul dbe able to send everything here $constnote=GETPOST('constnote', 'alpha'); // Load variable for pagination $limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit; $sortfield = GETPOST('sortfield', 'alpha'); $sortorder = GETPOST('sortorder', 'alpha'); $page = GETPOST('page', 'int'); if (empty($page) || $page == -1 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha') || (empty($toselect) && $massaction === '0')) { $page = 0; } // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; if (empty($sortfield)) $sortfield = 'entity,name'; if (empty($sortorder)) $sortorder = 'ASC'; /* * Actions */ if ($action == 'add' || (GETPOST('add') && $action != 'update')) { $error=0; if (empty($constname)) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Name")), null, 'errors'); $error++; } if ($constvalue == '') { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Value")), null, 'errors'); $error++; } if (! $error) { if (dolibarr_set_const($db, $constname, $constvalue, 'chaine', 1, $constnote, $entity) >= 0) { setEventMessages($langs->trans("RecordSaved"), null, 'mesgs'); $action=""; $constname=""; $constvalue=""; $constnote=""; } else { dol_print_error($db); } } } // Mass update if (! empty($consts) && $action == 'update') { $nbmodified=0; foreach($consts as $const) { if (! empty($const["check"])) { if (dolibarr_set_const($db, $const["name"], $const["value"], $const["type"], 1, $const["note"], $const["entity"]) >= 0) { $nbmodified++; } else { dol_print_error($db); } } } if ($nbmodified > 0) setEventMessages($langs->trans("RecordSaved"), null, 'mesgs'); $action=''; } // Mass delete if (! empty($consts) && $action == 'delete') { $nbdeleted=0; foreach($consts as $const) { if (! empty($const["check"])) // Is checkbox checked { if (dolibarr_del_const($db, $const["rowid"], -1) >= 0) { $nbdeleted++; } else { dol_print_error($db); } } } if ($nbdeleted > 0) setEventMessages($langs->trans("RecordDeleted"), null, 'mesgs'); $action=''; } // Delete line from delete picto if ($action == 'delete') { if (dolibarr_del_const($db, $rowid, $entity) >= 0) { setEventMessages($langs->trans("RecordDeleted"), null, 'mesgs'); } else { dol_print_error($db); } } /* * View */ $form = new Form($db); $wikihelp='EN:Setup_Other|FR:Paramétrage_Divers|ES:Configuración_Varios'; llxHeader('', $langs->trans("Setup"), $wikihelp); // Add logic to show/hide buttons if ($conf->use_javascript_ajax) { ?> trans("OtherSetup"), '', 'title_setup'); print ''.$langs->trans("ConstDesc")."
\n"; print "
\n"; $param = ''; print '
entity) && $debug)?'?debug=1':'').'" method="POST">'; print ''; print ''; print ''; print ''; print '
'; print ''; print ''; print getTitleFieldOfList('Name', 0, $_SERVER['PHP_SELF'], 'name', '', $param, '', $sortfield, $sortorder, '')."\n"; print ''; print ''; print getTitleFieldOfList('DateModificationShort', 0, $_SERVER['PHP_SELF'], 'tms', '', $param, '', $sortfield, $sortorder, 'center')."\n"; if (! empty($conf->multicompany->enabled) && !$user->entity) { print getTitleFieldOfList('Entity', 0, $_SERVER['PHP_SELF'], 'tms', '', $param, '', $sortfield, $sortorder, 'center')."\n"; } print ''; print "\n"; // Line to add new record print "\n"; print ''."\n"; print ''; print ''; // Limit to superadmin if (! empty($conf->multicompany->enabled) && !$user->entity) { print ''; print '\n"; print ''; // Show constants $sql = "SELECT"; $sql.= " rowid"; $sql.= ", ".$db->decrypt('name')." as name"; $sql.= ", ".$db->decrypt('value')." as value"; $sql.= ", type"; $sql.= ", note"; $sql.= ", tms"; $sql.= ", entity"; $sql.= " FROM ".MAIN_DB_PREFIX."const"; $sql.= " WHERE entity IN (".$user->entity.",".$conf->entity.")"; if ((empty($user->entity) || $user->admin) && $debug) {} // to force for superadmin to debug elseif (! GETPOST('visible') || GETPOST('visible') != 'all') $sql.= " AND visible = 1"; // We must always have this. Otherwise, array is too large and submitting data fails due to apache POST or GET limits if (GETPOST('name')) $sql.=natural_search("name", GETPOST('name')); $sql.= $db->order($sortfield, $sortorder); dol_syslog("Const::listConstant", LOG_DEBUG); $result = $db->query($sql); if ($result) { $num = $db->num_rows($result); $i = 0; while ($i < $num) { $obj = $db->fetch_object($result); print "\n"; print ''."\n"; // Value print ''; // Note print ''; // Date last change print ''; // Entity limit to superadmin if (! empty($conf->multicompany->enabled) && !$user->entity) { print ''; print '\n"; print "\n"; $i++; } } print '
'.$langs->trans("Value").''.$langs->trans("Comment").''.$langs->trans("Action").'
'; print ''; print ''; print ''; print ''; print ''; print ''; print ''; } else { print ''; print ''; } print ''; print "
'.$obj->name.''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print dol_print_date($db->jdate($obj->tms), 'dayhour'); print ''; print ''; print ''; } else { print ''; print ''; } if ($conf->use_javascript_ajax) { print ''; } else { print ''.img_delete().''; } print "
'; print '
'; if ($conf->use_javascript_ajax) { print '
'; print '
'; print ''; print '
'; print '
'; print ''; print '
'; } print "
\n"; // End of page llxFooter(); $db->close();