* 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'; $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'); // Do not use alpha here $debug=GETPOST('debug','int'); $consts=GETPOST('const','array'); $constname=GETPOST('constname','alpha'); $constvalue=GETPOST('constvalue'); $constnote=GETPOST('constnote','alpha'); /* * Actions */ if ($action == 'add' || (GETPOST('add') && $action != 'update')) { $error=0; if (empty($constname)) { setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Name")),'errors'); $error++; } if ($constvalue == '') { setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Value")),'errors'); $error++; } if (! $error) { if (dolibarr_set_const($db, $constname, $constvalue, 'chaine', 1, $constnote, $entity) >= 0) { setEventMessage($langs->trans("RecordSaved")); $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) setEventMessage($langs->trans("RecordSaved")); $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) setEventMessage($langs->trans("RecordDeleted")); $action=''; } // Delete line from delete picto if ($action == 'delete') { if (dolibarr_del_const($db, $rowid, $entity) >= 0) { setEventMessage($langs->trans("RecordDeleted")); } else { dol_print_error($db); } } /* * View */ $form = new Form($db); llxHeader('',$langs->trans("OtherSetup")); // Add logic to show/hide buttons if ($conf->use_javascript_ajax) { ?> trans("OtherSetup"),'','title_setup'); print $langs->trans("ConstDesc")."
\n"; print "
\n"; print '
entity) && $debug)?'?debug=1':'').'" method="POST">'; print ''; print ''; print ''; print ''; print ''; print ''; print ''; if (! empty($conf->multicompany->enabled) && !$user->entity) print ''; print ''; print "\n"; // Line to add new record $var=false; print "\n"; print ''."\n"; 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.= ", 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 else if (! 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.= " ORDER BY entity, name ASC"; dol_syslog("Const::listConstant", LOG_DEBUG); $result = $db->query($sql); if ($result) { $num = $db->num_rows($result); $i = 0; $var=false; while ($i < $num) { $obj = $db->fetch_object($result); $var=!$var; print "\n"; print ''."\n"; // Value print ''; // Note print ''; // Entity limit to superadmin if (! empty($conf->multicompany->enabled) && !$user->entity) { print ''; print '\n"; print "\n"; $i++; } } print '
'.$langs->trans("Name").''.$langs->trans("Value").''.$langs->trans("Comment").''.$langs->trans("Entity").''.$langs->trans("Action").'
'; print ''; print ''; print ''; print ''; print ''; print ''; } else { print ''; print ''; } print ''; print "
'.$obj->name.''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; } else { print ''; print ''; } if ($conf->use_javascript_ajax) { print ''; } else { print ''.img_delete().''; } print "
'; if ($conf->use_javascript_ajax) { print '
'; print '
'; print ''; print '
'; print '
'; print ''; print '
'; } print "
\n"; llxFooter(); $db->close();