From 33098783c8aa38fed368c822d852828cdeff281f Mon Sep 17 00:00:00 2001
From: Regis Houssin <regis@dolibarr.fr>
Date: Mon, 3 Apr 2006 08:06:35 +0000
Subject: [PATCH] =?UTF-8?q?Modification:=20les=20produits=20ne=20faisant?=
 =?UTF-8?q?=20pas=20partie=20d'une=20cat=E9gorie=20seront=20visible?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 htdocs/includes/boxes/box_produits.php | 7 +++----
 htdocs/product.class.php               | 7 +++----
 htdocs/service.class.php               | 7 +++----
 3 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/htdocs/includes/boxes/box_produits.php b/htdocs/includes/boxes/box_produits.php
index 1a9957b070b..d73e7537de8 100644
--- a/htdocs/includes/boxes/box_produits.php
+++ b/htdocs/includes/boxes/box_produits.php
@@ -69,10 +69,9 @@ class box_produits extends ModeleBoxes {
             $sql .= " FROM ".MAIN_DB_PREFIX."product as p";
             if ($conf->categorie->enabled && !$user->rights->categorie->voir)
             {
-            	$sql .= ", ".MAIN_DB_PREFIX."categorie_product as cp";
-            	$sql .= ", ".MAIN_DB_PREFIX."categorie as c";
-            	$sql .= " WHERE cp.fk_product = p.rowid";
-              $sql .= " AND cp.fk_categorie = c.rowid AND c.visible = 1";
+            	$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie_product as cp ON cp.fk_product = p.rowid";
+              $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie as c ON cp.fk_categorie = c.rowid";
+              $sql.= " WHERE IFNULL(c.visible,1)=1";
             }
             $sql .= " ORDER BY p.datec DESC";
             $sql .= $db->plimit($max, 0);
diff --git a/htdocs/product.class.php b/htdocs/product.class.php
index 21dfaf7deb7..3754b94e2d0 100644
--- a/htdocs/product.class.php
+++ b/htdocs/product.class.php
@@ -1955,14 +1955,13 @@ function get_each_prod()
         $sql.= " FROM ".MAIN_DB_PREFIX."product as p";
         if ($conf->categorie->enabled && !$user->rights->categorie->voir)
         {
-           $sql .= ", ".MAIN_DB_PREFIX."categorie_product as cp";
-           $sql .= ", ".MAIN_DB_PREFIX."categorie as ca";
+           $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie_product as cp ON cp.fk_product = p.rowid";
+           $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie as c ON cp.fk_categorie = c.rowid";
         }
         $sql.= " WHERE p.fk_product_type = 0";
         if ($conf->categorie->enabled && !$user->rights->categorie->voir)
         {
-           $sql .= " AND cp.fk_product = p.rowid";
-           $sql .= " AND cp.fk_categorie = ca.rowid AND ca.visible = 1";
+           $sql.= " AND IFNULL(c.visible,1)=1";
         }
         $resql=$this->db->query($sql);
         if ($resql)
diff --git a/htdocs/service.class.php b/htdocs/service.class.php
index fb28eabcf36..29b0d8bf7d5 100644
--- a/htdocs/service.class.php
+++ b/htdocs/service.class.php
@@ -208,14 +208,13 @@ class Service
         $sql.= " FROM ".MAIN_DB_PREFIX."product as p";
         if ($conf->categorie->enabled && !$user->rights->categorie->voir)
         {
-           $sql .= ", ".MAIN_DB_PREFIX."categorie_product as cp";
-           $sql .= ", ".MAIN_DB_PREFIX."categorie as ca";
+           $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie_product as cp ON cp.fk_product = p.rowid";
+           $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie as c ON cp.fk_categorie = c.rowid";
         }
         $sql.= " WHERE p.fk_product_type = 1";
         if ($conf->categorie->enabled && !$user->rights->categorie->voir)
         {
-           $sql .= " AND cp.fk_product = p.rowid";
-           $sql .= " AND cp.fk_categorie = ca.rowid AND ca.visible = 1";
+           $sql.= " AND IFNULL(c.visible,1)=1";
         }
         $resql=$this->db->query($sql);
         if ($resql)
-- 
GitLab