diff --git a/htdocs/categories/class/categorie.class.php b/htdocs/categories/class/categorie.class.php
index 7731bf8d2b0..12ae532e6d2 100644
--- a/htdocs/categories/class/categorie.class.php
+++ b/htdocs/categories/class/categorie.class.php
@@ -1958,17 +1958,6 @@ class Categorie extends CommonObject
return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables, 1);
}
- /**
- * Return a list with all selected categories of a category filter box
- *
- * @param string $type The category type (e.g Categorie::TYPE_WAREHOUSE)
- * @return Array A list with all selected categories (Note: "-2" is typical "without category")
- */
- public static function getPost($type)
- {
- return GETPOST("search_category_".$type."_list", "array");
- }
-
/**
* Return the addtional SQL JOIN query for filtering a list by a category
*
@@ -1986,11 +1975,11 @@ class Categorie extends CommonObject
* Return the addtional SQL SELECT query for filtering a list by a category
*
* @param string $type The category type (e.g Categorie::TYPE_WAREHOUSE)
- * @param Array $searchList A list with the selected categories
* @param string $rowIdName The name of the row id inside the whole sql query (e.g. "e.rowid")
+ * @param Array $searchList A list with the selected categories
* @return string A additional SQL SELECT query
*/
- public static function getFilterSelectQuery($type, $searchList, $rowIdName)
+ public static function getFilterSelectQuery($type, $rowIdName, $searchList)
{
if (empty($searchList) && !is_array($searchList))
{
@@ -2020,34 +2009,4 @@ class Categorie extends CommonObject
return "";
}
}
-
- /**
- * Return a HTML filter box for a list filter view
- *
- * @param string $type The category type (e.g Categorie::TYPE_WAREHOUSE)
- * @param Array $preSelected A list with the elements that should pre-selected
- * @param Form $form The form object (need for access form functions)
- * @param Translate $langs The translate object (need for access translations)
- * @return string A HTML filter box (Note: selected results can get with GETPOST("search_category_".$type."_list"))
- */
- public static function getFilterBox($type, $preSelected, $form, $langs)
- {
- if (empty($preSelected) || !is_array($preSelected))
- {
- $preSelected = array();
- }
-
- $htmlName = "search_category_".$type."_list";
-
- $categoryArray = $form->select_all_categories($type, "", "", 64, 0, 1);
- $categoryArray[-2] = "- ".$langs->trans('NotCategorized')." -";
-
- $filter = '';
- $filter .= '
';
- $filter .= $langs->trans('Categories').": ";
- $filter .= Form::multiselectarray($htmlName, $categoryArray, $preSelected, 0, 0, "minwidth300");
- $filter .= "
";
-
- return $filter;
- }
}
diff --git a/htdocs/core/class/html.formcategory.class.php b/htdocs/core/class/html.formcategory.class.php
new file mode 100644
index 00000000000..91a4d72cf42
--- /dev/null
+++ b/htdocs/core/class/html.formcategory.class.php
@@ -0,0 +1,58 @@
+
+ *
+ * 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/core/class/html.formcategory.class.php
+ * \ingroup core
+ * \brief File of class to build HTML component for category filtering
+ */
+
+require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php';
+
+class FormCategory extends Form
+{
+ /**
+ * Return a HTML filter box for a list filter view
+ *
+ * @param string $type The categorie type (e.g Categorie::TYPE_WAREHOUSE)
+ * @param Array $preSelected A list with the elements that should pre-selected
+ * @return string A HTML filter box (Note: selected results can get with GETPOST("search_category_".$type."_list"))
+ */
+ public function GetFilterBox($type, $preSelected)
+ {
+ // phpcs:enable
+ global $langs;
+
+ if (empty($preSelected) || !is_array($preSelected))
+ {
+ $preSelected = array();
+ }
+
+ $htmlName = "search_category_".$type."_list";
+
+ $categoryArray = $this->select_all_categories($type, "", "", 64, 0, 1);
+ $categoryArray[-2] = "- ".$langs->trans('NotCategorized')." -";
+
+ $filter = '';
+ $filter .= '';
+ $filter .= $langs->trans('Categories').": ";
+ $filter .= Form::multiselectarray($htmlName, $categoryArray, $preSelected, 0, 0, "minwidth300");
+ $filter .= "
";
+
+ return $filter;
+ }
+}
\ No newline at end of file
diff --git a/htdocs/product/stock/list.php b/htdocs/product/stock/list.php
index 03e9940e757..2b6ec559b71 100644
--- a/htdocs/product/stock/list.php
+++ b/htdocs/product/stock/list.php
@@ -3,6 +3,7 @@
* Copyright (C) 2004-2016 Laurent Destailleur
* Copyright (C) 2005-2014 Regis Houssin
* Copyright (C) 2015 Juanjo Menent
+ * Copyright (C) 2020 Tobias Sekan
*
* 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
@@ -26,6 +27,12 @@
require '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/product/stock/class/entrepot.class.php';
+require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcategory.class.php';
+
+if (!empty($conf->categorie->enabled))
+{
+ require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
+}
// Load translation files required by the page
$langs->loadLangs(array("stocks", "other"));
@@ -47,7 +54,7 @@ $search_status = GETPOST("search_status", "int");
if (!empty($conf->categorie->enabled))
{
- $search_category_list = Categorie::getPost(Categorie::TYPE_WAREHOUSE);
+ $search_category_list = GETPOST("search_category_".Categorie::TYPE_WAREHOUSE."_list", "array");
}
// Load variable for pagination
@@ -164,7 +171,7 @@ if (empty($reshook))
* View
*/
-$form = new Form($db);
+$form = new FormCategory($db);
$warehouse = new Entrepot($db);
$now = dol_now();
@@ -202,7 +209,7 @@ $sql .= " WHERE e.entity IN (".getEntity('stock').")";
if (!empty($conf->categorie->enabled))
{
- $sql .= Categorie::getFilterSelectQuery(Categorie::TYPE_WAREHOUSE, $search_category_list, "e.rowid");
+ $sql .= Categorie::getFilterSelectQuery(Categorie::TYPE_WAREHOUSE, "e.rowid", $search_category_list);
}
if ($search_ref) $sql .= natural_search("e.ref", $search_ref); // ref
@@ -334,7 +341,7 @@ $moreforfilter = '';
if (!empty($conf->categorie->enabled))
{
- $moreforfilter .= Categorie::getFilterBox(Categorie::TYPE_WAREHOUSE, $search_category_list, $form, $langs);
+ $moreforfilter .= $form->GetFilterBox(Categorie::TYPE_WAREHOUSE, $search_category_list);
}
/*$moreforfilter.='';