diff --git a/htdocs/categories/edit.php b/htdocs/categories/edit.php
index f4b7e12cc30..ba04cde0b54 100644
--- a/htdocs/categories/edit.php
+++ b/htdocs/categories/edit.php
@@ -35,7 +35,6 @@ $langs->load("categories");
$id = GETPOST('id', 'int');
$ref = GETPOST('ref', 'alphanohtml');
-$type = GETPOST('type', 'aZ09'); // Can be int or string
$action = (GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'edit');
$confirm = GETPOST('confirm');
$cancel = GETPOST('cancel', 'alpha');
@@ -56,10 +55,14 @@ if ($id == "") {
$result = restrictedArea($user, 'categorie', $id, '&category');
$object = new Categorie($db);
-if ($id > 0) {
- $result = $object->fetch($id);
+$result = $object->fetch($id, $label);
+if ($result <= 0) {
+ dol_print_error($db, $object->error); exit;
}
+$type = $object->type;
+if (is_numeric($type)) $type = Categorie::$MAP_ID_TO_CODE[$type]; // For backward compatibility
+
$extrafields = new ExtraFields($db);
$extrafields->fetch_name_optionals_label($object->table_element);
diff --git a/htdocs/categories/info.php b/htdocs/categories/info.php
index f64f3be8f9e..536b0c20a2c 100644
--- a/htdocs/categories/info.php
+++ b/htdocs/categories/info.php
@@ -37,16 +37,18 @@ $langs->loadLangs(array('categories', 'sendings'));
$socid = 0;
$id = GETPOST('id', 'int');
+$label = GETPOST('label', 'alpha');
// Security check
if ($user->socid) $socid = $user->socid;
$result = restrictedArea($user, 'categorie', $id, '&category');
$object = new Categorie($db);
-if (!$object->fetch($id) > 0) {
- dol_print_error($db);
- exit;
+$result = $object->fetch($id, $label);
+if ($result <= 0) {
+ dol_print_error($db, $object->error); exit;
}
+
$type = $object->type;
if (is_numeric($type)) $type = Categorie::$MAP_ID_TO_CODE[$type]; // For backward compatibility
@@ -63,11 +65,11 @@ llxHeader('', $langs->trans('Categories'), '');
$title = Categorie::$MAP_TYPE_TITLE_AREA[$type];
$head = categories_prepare_head($object, $type);
-
print dol_get_fiche_head($head, 'info', $langs->trans($title), -1, 'category');
+
$backtolist = (GETPOST('backtolist') ? GETPOST('backtolist') : DOL_URL_ROOT.'/categories/index.php?leftmenu=cat&type='.$type);
$linkback = ''.$langs->trans("BackToList").'';
-$object->next_prev_filter = ' type = '.$type;
+$object->next_prev_filter = ' type = '.$object->type;
$object->ref = $object->label;
$morehtmlref = '
'.$langs->trans("Root").' >> ';
$ways = $object->print_all_ways(" >> ", '', 1);
diff --git a/htdocs/categories/photos.php b/htdocs/categories/photos.php
index 73c7664f6c2..6bb5d79980c 100644
--- a/htdocs/categories/photos.php
+++ b/htdocs/categories/photos.php
@@ -38,7 +38,6 @@ $langs->loadlangs(array('categories', 'bills'));
$id = GETPOST('id', 'int');
$label = GETPOST('label', 'alpha');
-$type = GETPOST('type');
$action = GETPOST('action', 'aZ09');
$confirm = GETPOST('confirm');
@@ -52,18 +51,16 @@ if ($id == '' && $label == '')
$result = restrictedArea($user, 'categorie', $id, '&category');
$object = new Categorie($db);
-$result = $object->fetch($id, $label, $type);
+$result = $object->fetch($id, $label);
if ($result <= 0) {
dol_print_error($db, $object->error); exit;
}
-$object->fetch_optionals();
-if ($result <= 0) {
- dol_print_error($db, $object->error); exit;
-}
-$upload_dir = $conf->categorie->multidir_output[$object->entity];
+$type = $object->type;
if (is_numeric($type)) $type = Categorie::$MAP_ID_TO_CODE[$type]; // For backward compatibility
+$upload_dir = $conf->categorie->multidir_output[$object->entity];
+
/*
* Actions
*/
@@ -115,8 +112,6 @@ if ($object->id)
$title = Categorie::$MAP_TYPE_TITLE_AREA[$type];
$head = categories_prepare_head($object, $type);
-
-
print dol_get_fiche_head($head, 'photos', $langs->trans($title), -1, 'category');
$linkback = '
'.$langs->trans("BackToList").'';
diff --git a/htdocs/categories/traduction.php b/htdocs/categories/traduction.php
index 423819c49ac..898484d0d51 100644
--- a/htdocs/categories/traduction.php
+++ b/htdocs/categories/traduction.php
@@ -39,7 +39,6 @@ $id = GETPOST('id', 'int');
$label = GETPOST('label', 'alpha');
$action = GETPOST('action', 'aZ09');
$cancel = GETPOST('cancel', 'alpha');
-$type = GETPOST('type', 'aZ09');
if ($id == '' && $label == '')
{
@@ -51,15 +50,12 @@ if ($id == '' && $label == '')
$result = restrictedArea($user, 'categorie', $id, '&category');
$object = new Categorie($db);
-$result = $object->fetch($id, $label, $type);
-if ($result <= 0) {
- dol_print_error($db, $object->error); exit;
-}
-$object->fetch_optionals();
+$result = $object->fetch($id, $label);
if ($result <= 0) {
dol_print_error($db, $object->error); exit;
}
+$type = $object->type;
if (is_numeric($type)) $type = Categorie::$MAP_ID_TO_CODE[$type]; // For backward compatibility
/*
diff --git a/htdocs/categories/viewcat.php b/htdocs/categories/viewcat.php
index 864de6e2e98..20f54a40788 100644
--- a/htdocs/categories/viewcat.php
+++ b/htdocs/categories/viewcat.php
@@ -38,7 +38,6 @@ $langs->load("categories");
$id = GETPOST('id', 'int');
$label = GETPOST('label', 'alpha');
-$type = GETPOST('type', 'aZ09');
$removeelem = GETPOST('removeelem', 'int');
$elemid = GETPOST('elemid', 'int');
@@ -73,19 +72,12 @@ if ($id == "" && $label == "")
$result = restrictedArea($user, 'categorie', $id, '&category');
$object = new Categorie($db);
-$result = $object->fetch($id, $label, $type);
-if ($result <= 0) {
- dol_print_error($db, $object->error); exit;
-}
-$object->fetch_optionals();
+$result = $object->fetch($id, $label);
if ($result <= 0) {
dol_print_error($db, $object->error); exit;
}
-$objecttype = $object->type;
-if (is_numeric($objecttype)) $objecttype = Categorie::$MAP_ID_TO_CODE[$objecttype];
-if ($type === '') $type = $objecttype;
-
+$type = $object->type;
if (is_numeric($type)) $type = Categorie::$MAP_ID_TO_CODE[$type]; // For backward compatibility
$extrafields = new ExtraFields($db);
@@ -94,12 +86,6 @@ $extrafields->fetch_name_optionals_label($object->table_element);
// Initialize technical object to manage hooks. Note that conf->hooks_modules contains array array
$hookmanager->initHooks(array('categorycard', 'globalcard'));
-// Protection when type provided is not similare to type of category
-if ($objecttype != $type) {
- print 'Error: Value for type parameter does not match value of the type of the category with id='.$id;
- exit;
-}
-
/*
* Actions
*/
@@ -226,9 +212,8 @@ llxHeader("", $langs->trans("Categories"), $helpurl, '', 0, 0, $arrayofjs, $arra
$title = Categorie::$MAP_TYPE_TITLE_AREA[$type];
$head = categories_prepare_head($object, $type);
-
-
print dol_get_fiche_head($head, 'card', $langs->trans($title), -1, 'category');
+
$backtolist = (GETPOST('backtolist') ? GETPOST('backtolist') : DOL_URL_ROOT.'/categories/index.php?leftmenu=cat&type='.$type);
$linkback = '
'.$langs->trans("BackToList").'';
$object->next_prev_filter = ' type = '.$object->type;
diff --git a/htdocs/core/lib/categories.lib.php b/htdocs/core/lib/categories.lib.php
index e900e6ff424..f6942cb5265 100644
--- a/htdocs/core/lib/categories.lib.php
+++ b/htdocs/core/lib/categories.lib.php
@@ -57,7 +57,7 @@ function categories_prepare_head(Categorie $object, $type)
$h++;
}
- $head[$h][0] = DOL_URL_ROOT.'/categories/info.php?id='.$object->id;
+ $head[$h][0] = DOL_URL_ROOT.'/categories/info.php?id='.$object->id.'&type='.$type;
$head[$h][1] = $langs->trans("Info");
$head[$h][2] = 'info';
$h++;