diff --git a/htdocs/admin/dict.php b/htdocs/admin/dict.php
index c739a261575..0d7ca6ae7ff 100644
--- a/htdocs/admin/dict.php
+++ b/htdocs/admin/dict.php
@@ -158,7 +158,7 @@ $tabsqlsort[2] ="pays ASC, code ASC";
$tabsqlsort[3] ="pays ASC, code ASC";
$tabsqlsort[4] ="code ASC";
$tabsqlsort[5] ="libelle ASC";
-$tabsqlsort[6] ="a.type ASC, a.module, a.position, a.code ASC";
+$tabsqlsort[6] ="a.type ASC, a.module ASC, a.position ASC, a.code ASC";
$tabsqlsort[7] ="pays ASC, code ASC, a.libelle ASC";
$tabsqlsort[8] ="libelle ASC";
$tabsqlsort[9] ="libelle ASC";
@@ -426,9 +426,9 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
}
}
// Other checks
- if ($tabname[$id] == MAIN_DB_PREFIX."c_actioncomm" && isset($_POST["type"]) && $_POST["type"]=='system') {
+ if ($tabname[$id] == MAIN_DB_PREFIX."c_actioncomm" && isset($_POST["type"]) && in_array($_POST["type"],array('system','systemauto'))) {
$ok=0;
- $msg.="Value 'system' for type is reserved. You can use 'user' as value to add your own record.
";
+ $msg.="Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record.
";
}
if (isset($_POST["code"]) && $_POST["code"]=='0') {
$ok=0;
@@ -661,19 +661,20 @@ if ($id)
// Complete requete recherche valeurs avec critere de tri
$sql=$tabsql[$id];
- if (GETPOST('sortfield'))
+
+ if ($sortfield)
{
// If sort order is "pays", we use pays_code instead
- if ($_GET["sortfield"] == 'pays') $_GET["sortfield"]='pays_code';
- $sql.= " ORDER BY ".$_GET["sortfield"];
- if ($_GET["sortorder"])
+ if ($sortfield == 'pays') $sortfield='pays_code';
+ $sql.= " ORDER BY ".$sortfield;
+ if ($sortorder)
{
- $sql.=" ".strtoupper($_GET["sortorder"]);
+ $sql.=" ".strtoupper($sortorder);
}
$sql.=", ";
- // Remove from default sort order the choosed order
- $tabsqlsort[$id]=preg_replace('/'.$_GET["sortfield"].' '.$_GET["sortorder"].',/i','',$tabsqlsort[$id]);
- $tabsqlsort[$id]=preg_replace('/'.$_GET["sortfield"].',/i','',$tabsqlsort[$id]);
+ // Clear the required sort criteria for the tabsqlsort to be able to force it with selected value
+ $tabsqlsort[$id]=preg_replace('/([a-z]+\.)?'.$sortfield.' '.$sortorder.',/i','',$tabsqlsort[$id]);
+ $tabsqlsort[$id]=preg_replace('/([a-z]+\.)?'.$sortfield.',/i','',$tabsqlsort[$id]);
}
else {
$sql.=" ORDER BY ";
@@ -1059,7 +1060,7 @@ if ($id)
if (isset($obj->code) && ($obj->code == '0' || $obj->code == '' || preg_match('/unknown/i',$obj->code))) $iserasable=0;
if (isset($obj->code) && $obj->code == 'RECEP') $iserasable=0;
if (isset($obj->code) && $obj->code == 'EF0') $iserasable=0;
- if (isset($obj->type) && $obj->type == 'system') $iserasable=0;
+ if (isset($obj->type) && in_array($obj->type, array('system', 'systemauto'))) $iserasable=0;
if ($iserasable) print 'rowid)?$obj->rowid:(! empty($obj->code)?$obj->code:'')).'&code='.(! empty($obj->code)?$obj->code:'').'&id='.$id.'&action='.$acts[$obj->active].'">'.$actl[$obj->active].'';
else print $langs->trans("AlwaysActive");