30require
'../main.inc.php';
38require_once DOL_DOCUMENT_ROOT.
'/core/lib/admin.lib.php';
39require_once DOL_DOCUMENT_ROOT.
'/core/lib/security.lib.php';
46$action =
GETPOST(
'action',
'aZ09');
47$massaction =
GETPOST(
'massaction',
'aZ09');
50$consts =
GETPOST(
'const',
'array');
51$constname =
GETPOST(
'constname',
'alphanohtml');
52$constvalue =
GETPOST(
'constvalue',
'restricthtml');
53$constnote =
GETPOST(
'constnote',
'alpha');
57$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
58$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
60if (empty($page) || $page == -1 ||
GETPOST(
'button_search',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha') || (empty($toselect) && $massaction ===
'0')) {
63$offset = $limit * $page;
66if (empty($sortfield)) {
67 $sortfield =
'entity,name';
69if (empty($sortorder)) {
73if ($action ==
'add' &&
GETPOST(
'update')) {
76if ($action ==
'add' &&
GETPOST(
'delete')) {
82if ($action ==
'delete' &&
GETPOST(
'add')) {
96if ($action ==
'add') {
99 if (empty($constname)) {
100 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"Name")),
null,
'errors');
103 if ($constvalue ==
'') {
104 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"Value")),
null,
'errors');
122if (!empty($consts) && $action ==
'update') {
124 foreach ($consts as $const) {
125 if (!empty($const[
"check"])) {
126 if (
dolibarr_set_const(
$db, $const[
"name"], $const[
"value"], $const[
"type"], 1, $const[
"note"], $const[
"entity"]) >= 0) {
133 if ($nbmodified > 0) {
140if (!empty($consts) && $action ==
'delete') {
142 foreach ($consts as $const) {
143 if (!empty($const[
"check"])) {
151 if ($nbdeleted > 0) {
158if ($action ==
'delete') {
173$wikihelp =
'EN:Setup_Other|FR:Paramétrage_Divers|ES:Configuración_Varios';
174llxHeader(
'', $langs->trans(
"Setup"), $wikihelp,
'', 0, 0,
'',
'',
'',
'mod-admin page-const');
177if (
$conf->use_javascript_ajax) {
179<script
type=
"text/javascript">
180jQuery(document).ready(
function() {
181 jQuery(
"#updateconst").hide();
182 jQuery(
"#delconst").hide();
183 jQuery(
".checkboxfordelete").click(
function() {
184 jQuery(
"#delconst").show();
186 jQuery(
".inputforupdate").keyup(
function() {
187 var field_id = jQuery(
this).attr(
"id");
188 var row_num = field_id.split(
"_");
189 jQuery(
"#updateconst").show();
190 jQuery(
"#action").val(
'update');
191 jQuery(
"#check_" + row_num[1]).prop(
"checked",
true);
200print
'<div class="info">'.$langs->trans(
"ConstDesc").
"</div><br>\n";
204print
'<form action="'.$_SERVER[
"PHP_SELF"].((empty($user->entity) && $debug) ?
'?debug=1' :
'').
'" method="POST">';
205print
'<input type="hidden" name="token" value="'.newToken().
'">';
206print
'<input type="hidden" id="action" name="action" value="add">';
207print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
208print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
210print
'<div class="div-table-responsive-no-min">';
211print
'<table class="noborder centpercent">';
212print
'<tr class="liste_titre">';
213print
getTitleFieldOfList(
'Name', 0, $_SERVER[
'PHP_SELF'],
'name',
'', $param,
'', $sortfield, $sortorder,
'') .
"\n";
214print
getTitleFieldOfList(
"Value", 0, $_SERVER[
"PHP_SELF"],
'',
'', $param,
'', $sortfield, $sortorder);
215print
getTitleFieldOfList(
"Comment", 0, $_SERVER[
"PHP_SELF"],
'',
'', $param,
'', $sortfield, $sortorder);
216print
getTitleFieldOfList(
'DateModificationShort', 0, $_SERVER[
'PHP_SELF'],
'tms',
'', $param,
'', $sortfield, $sortorder,
'center ') .
"\n";
218 print
getTitleFieldOfList(
'Entity', 0, $_SERVER[
'PHP_SELF'],
'tms',
'', $param,
'', $sortfield, $sortorder,
'center ') .
"\n";
220print
getTitleFieldOfList(
"", 0, $_SERVER[
"PHP_SELF"],
'',
'', $param,
'', $sortfield, $sortorder,
'center ');
227print
'<tr class="oddeven nohover"><td>';
228print
'<input type="text" class="flat minwidth300" name="constname" value="'.$constname.
'" spellcheck="false">';
231print
'<input type="text" class="flat minwidth100" name="constvalue" value="'.$constvalue.
'" spellcheck="false">';
234print
'<input type="text" class="flat minwidth100" name="constnote" value="'.$constnote.
'">';
241 print
'<input type="text" class="flat" size="1" name="entity" value="' .
$conf->entity .
'">';
243 print
'<td class="center">';
245 print
'<td class="center">';
246 print
'<input type="hidden" name="entity" value="' .
$conf->entity .
'">';
248print
'<input type="submit" class="button button-add small" id="add" name="add" value="'.$langs->trans(
"Add").
'">';
256$sql .=
", ".$db->decrypt(
'name').
" as name";
257$sql .=
", ".$db->decrypt(
'value').
" as value";
262$sql .=
" FROM ".MAIN_DB_PREFIX.
"const";
263$sql .=
" WHERE entity IN (".$db->sanitize($user->entity.
",".((
int)
$conf->entity)).
")";
264if ((empty($user->entity)) && $debug) {
268 $sql .=
" AND visible = 1";
273$sql .=
$db->order($sortfield, $sortorder);
276$result =
$db->query($sql);
278 $num =
$db->num_rows($result);
282 $obj =
$db->fetch_object($result);
288 print
'<tr class="oddeven" data-checkbox-id="check_'.$i.
'"><td>'.
dol_escape_htmltag($obj->name).
'</td>'.
"\n";
292 print
'<input type="hidden" name="const['.$i.
'][rowid]" value="'.$obj->rowid.
'">';
293 print
'<input type="hidden" name="const['.$i.
'][name]" value="'.$obj->name.
'">';
294 print
'<input type="hidden" name="const['.$i.
'][type]" value="'.$obj->type.
'">';
295 print
'<input type="text" id="value_'.$i.
'" class="flat inputforupdate minwidth150" name="const['.$i.
'][value]" value="'.(isset($value) ? htmlspecialchars($value) :
'').
'">';
300 print
'<input type="text" id="note_'.$i.
'" class="flat inputforupdate minwidth200" name="const['.$i.
'][note]" value="'.(empty($obj->note) ?
'' : htmlspecialchars($obj->note, 1)).
'">';
304 print
'<td class="nowraponall center">';
309 if (
isModEnabled(
'multicompany') && empty($user->entity)) {
311 print
'<input type="text" class="flat" size="1" name="const['.$i.
'][entity]" value="'.((int) $obj->entity).
'">';
313 print
'<td class="center">';
315 print
'<td class="center">';
316 print
'<input type="hidden" name="const['.$i.
'][entity]" value="'.((int) $obj->entity).
'">';
319 if (!empty(
$conf->use_javascript_ajax)) {
320 print
'<input type="checkbox" class="flat checkboxfordelete" id="check_'.$i.
'" name="const['.$i.
'][check]" value="1">';
322 print
'<a href="'.$_SERVER[
'PHP_SELF'].
'?rowid='.$obj->rowid.
'&entity='.$obj->entity.
'&action=delete&token='.
newToken().((empty($user->entity) && $debug) ?
'&debug=1' :
'').
'">'.
img_delete().
'</a>';
325 print
"</td></tr>\n";
336if (
$conf->use_javascript_ajax) {
338 print
'<div id="updateconst" class="right">';
339 print
'<input type="submit" class="button button-edit marginbottomonly" name="update" value="'.$langs->trans(
"Modify").
'">';
341 print
'<div id="delconst" class="right">';
342 print
'<input type="submit" class="button button-cancel marginbottomonly" name="delete" value="'.$langs->trans(
"Delete").
'">';
dolibarr_set_const($db, $name, $value, $type='chaine', $visible=0, $note='', $entity=1)
Insert a parameter (key,value) into database (delete old key then insert it again).
dolibarr_del_const($db, $name, $entity=1)
Delete a constant.
llxFooter($comment='', $zone='private', $disabledoutputofmessages=0)
Empty footer.
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
Empty header.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
img_delete($titlealt='default', $other='class="pictodelete"', $morecss='')
Show delete logo.
natural_search($fields, $value, $mode=0, $nofirstand=0, $sqltoadd='')
Generate natural SQL search string for a criteria (this criteria can be tested on one or several fiel...
newToken()
Return the value of token currently saved into session with name 'newtoken'.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0, $nodefault=0)
Return value of a param into GET or POST supervariable.
getTitleFieldOfList($name, $thead=0, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $disablesortlink=0, $tooltip='', $forcenowrapcolumntitle=0)
Get title line of an array.
GETPOSTINT($paramname, $method=0, $nodefault=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs=null, $encodetooutput=false, $decorate=0)
Output date in a string format according to outputlangs (or langs if not defined).
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='', $morecssonpicto='widthpictotitle')
Load a title with picto.
GETPOSTISSET($paramname)
Return true if we are in a context of submitting the parameter $paramname from a POST of a form.
isModEnabled($module)
Is Dolibarr module enabled.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
if(preg_match('/(crypted|dolcrypt):/i', $dolibarr_main_db_pass)||!empty($dolibarr_main_db_encrypted_pass)) $conf db type
'integer', 'integer:ObjectClass:PathToClass[:AddCreateButtonOrNot[:Filter[:Sortfield]]]',...
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.
dolDecrypt($chain, $key='', $patterntotest='')
Decode a string with a symmetric encryption.