= $y; } }; $title= "Guide de choix pour votre armoire de sécurité"; $lang = "_1"; $custom_page = new CharteCustomPages( "custom_page.tpl" , stripslashes($title) ); $custom_page->setData("title", $title); $custom_page->setData("meta_description",mb_convert_encoding(html_entity_decode(stripslashes("Toutes les informations nécessaires et les différents critères à prendre en considération pour bien choisir son Armoire de sécurité professionnelle.")), "UTF-8", "ASCII")); $custom_page->setData("meta_keywords",utf8_encode(html_entity_decode(html_entity_decode(stripslashes(""))))); //$custom_page->setData("meta_author",utf8_encode($meta_author)); $rsamarques=DBUtil::query("SELECT idbrand FROM custom_pages WHERE filename='guidechoix' LIMIT 1"); //Page specifique $rsidpageprod = DBUtil::getDBValue( "idpage_prod", "custom_pages", "idpage", 23); $rsidbrand = DBUtil::getDBValue( "idbrand", "custom_pages", "idpage", 23); if ($rsidpageprod !== false) { $custom_page->setData("idpage_prod", 1); if ($rsidbrand && $rsidbrand != null) { $products_specific_page = DBUtil::query("SELECT * FROM page_product pp, product p WHERE pp.idpage = ".intval($rsidpageprod)." AND pp.idproduct = p.idproduct AND p.idbrand = $rsidbrand"); if ($products_specific_page->RecordCount() ) { $select = "SELECT pp.idproduct, p.idcategory, c.name_1 AS cat_name"; $from = " FROM page_product pp, product p, category c"; $where = " AND pp.idpage = ".intval($rsidpageprod)." AND pp.idproduct = p.idproduct AND p.idbrand = $rsidbrand"; } else { $select = "SELECT p.idproduct, p.idcategory, c.name_1 AS cat_name"; $from = " FROM product p, category c"; $where = " AND p.idbrand = $rsidbrand"; } } else { $select = "SELECT pp.idproduct, p.idcategory, c.name_1 AS cat_name"; $from = " FROM page_product pp, product p, category c"; $where = "AND pp.idpage = ".intval($rsidpageprod)." AND pp.idproduct = p.idproduct"; } } else { if ($rsidbrand && $rsidbrand != null) { $custom_page->setData("idpage_prod", 1); $select = "SELECT p.idproduct, p.idcategory, c.name_1 AS cat_name"; $from = " FROM product p, category c"; $where = " AND p.idbrand = $rsidbrand" ; } else $custom_page->setData("idpage_prod", 0); } if ($select) { $rsproducts = DBUtil::query(" $select$from WHERE p.available <>0 AND p.idcategory = c.idcategory $where ORDER BY c.name_1 ASC "); //regroupement des produits par categorie $category_ids = array(); $categories_list = array(); include_once ("$GLOBAL_START_PATH/objects/catalog/CProduct.php"); include_once ("$GLOBAL_START_PATH/objects/flexy/proxies/CProductProxy.php"); while (!$rsproducts->EOF()) { $product_object = new CProductProxy(new CProduct($rsproducts->fields("idproduct"))); if (!in_array($rsproducts->fields("idcategory"), $category_ids)) { $category_ids[] = $rsproducts->fields("idcategory"); $categories_list[intval($rsproducts->fields("idcategory"))] = array( "cat_name" => $rsproducts->fields("cat_name"), "products" => array( 0 => $product_object ) ); } else { $categories_list[intval($rsproducts->fields("idcategory"))]["products"][] = $product_object; } $rsproducts->MoveNext(); } $i = 0; $cat_lists = array(); foreach ($categories_list as $k => $v) { $cat_lists[$i] = $v; $i++; } $custom_page->setData("product_categories", $cat_lists); } //fin page specifique //breadcrumbs function makeBreadcrub(){ global $rsidbrand; if ($rsidbrand) $lmarque = '
  • Marques
  • '; else $lmarque = ""; return ''; } $custom_page->setData("breadcrumbs",makeBreadcrub()); //fin breadcrumbs $content=stripslashes("

    Guide de choix pour votre armoire de sécurité

    De nos jours, les produits dangereux sont présents dans tous les domaines d\'activité et présentent un risque pour les personnes.

    Il est donc important de stocker ces produits, qu\'ils soient inflammables, corrosifs, toxiques ou phytosanitaires, dans des armoires de sécurité afin que les personnes puissent travailler sans danger.

    De nombreuses possibilités de stockage sécurisé s\'offrent à vous à travers ce site, par le biais de nos armoires de sûreté multirisques et autres, afin que chaque type de produits chimiques, aussi nombreux soient-ils, puissent être stockés.


    I) Premier critère : le type de produits stockés

    Selon le type de produit à stocker, les caractéristiques de l\'armoire et les mesures de sécurité ne seront pas les mêmes. C\'est pourquoi il faut bien définir la dangerosité des produits.

    A) Les armoires de sécurité pour produits inflammables et explosifs

    Ces armoires permettent de stocker les matières inflammables et explosives afin d\'éviter ou de retarder toute explosion en cas d\'incendie.

    Il existe 4 classes de résistance au feu définies par la norme et à définir en fonction du risque évalué :
       -   15 minutes
       -   30 minutes
       -   60 minutes
       -   90 minutes

    Toutes ces armoires sont testées et homologuées selon la norme EN 14470-1 datant d\'avril 2004.

    B) Les armoires de sécurité pour le stockage des produits corrosifs (acides et bases)

    Ces armoires sont conçues pour entreposer les produits corrosifs afin d\'éviter tout risque de fuite ou de casse d\'un flacon. Il est important de bien séparer les acides des bases car ils sont incompatibles. Il existe des armoires compartimentées qui vous permettront de les stocker séparément.

    Deux grands types d\'armoires existent pour le stockage des produits corrosifs :
      -  Si vous stockez des produits peu corrosifs : vous pouvez choisir des armoires en construction acier et comportant des surp rotections en polyéthylène haute densité ou PVC au niveau des étagères et du bac de rétention
      -   Si vous stockez des produits très corrosifs (acides nitriques, sulfuriques, chlorhydriques, fluorhydriques...) : vous devrez utiliser une armoire en polyéthylène haute densité ou en PVC cellulaire.


    Les armoires pour produits corrosifs répondent aux normes suivantes :
       -   FM (FactoryMutual) : Assurance internationale et organe accréditant le matériel de sécurité et conseillant les entreprises.
       -   Article R.5132-68 : Les produits incompatibles entre eux (acides et bases) doivent être stockés dans des armoires différentes ou dans des compartiments séparés.
       -   Arrêté du 2 février 1998 : Tout produit susceptible de créer une pollution des eaux ou des sols doit être mis sur rétention.
      -  Norme européenne EN14470-1 : Concerne les produits inflammables en laboratoire. Les produits inflammables utilisés et manipulés en laboratoire doivent être stockés dans une ou plusieurs armoires de sécurité ayant une résistance minimale de 15mn au feu. 4 types de résistance au feu : 15, 30, 60 et 90 minutes.


    C) Les armoires de sécurité pour produits toxiques et multirisques

    Avec ces armoires, il est possible de stocker différents types de produits dangereux au même endroit. Chaque famille de produits (inflammables, toxiques, corrosifs...) possède son propre compartiment pour ne pas mélanger les produits incompatibles et créer des explosions, vapeurs toxiques...


    Ces armoires de sûreté répondent à plusieurs articles et normes :
       -   Article R.5132-66 : Les produits toxiques doivent être stockés dans un endroit spécifique prévu à cet effet avec fermeture à clef.
       -   Article R.5132-68 : Les produits incompatibles entre eux doivent être stockés dans des armoires ou compartiments séparés.
       -   Arrêté du 2 février 1998 installations classées : Tout produit susceptible de créer une pollution des eaux ou des sols doit être mis sur rétention.
       -   Norme européenne EN14470-1 : Les produits inflammables stockés dans le laboratoire doivent être stockés dans une ou plusieurs armoires ayant une résistance minimale de 15mn au feu.


    D) Les armoires de sécurité pour produits phytosanitaires et dangereux


    Ces armoires permettent le stockage des produits phytosanitaires (pesticides, fongicides...) pouvant entrainer une pollution ou un danger pour l\'homme. Elles doivent être aérées ou ventilées et fermées à clef.


    Ces armoires répondent aux normes suivantes :
       -   Article 3 : Les produits antiparasitaires doivent être conservés dans leur emballage d\'origine jusqu\'au moment de leur utilisation.
       -   Article 4 : Les produits antiparasitaires doivent être placés dans un local réservé à cet usage. Ce local doit être aéré ou ventilé. Il doit être fermé à clef s\'il contient des produits antiparasitaires classés très toxiques, toxiques, cancérigènes, tératogènes ou mutagènes. Cette clef est conservée par l\'employeur.
       -   Article 5 : Seul peut être utilisé du matériel réservé à l\'usage des produits antiparasitaires. Les ustensiles également réservés à cet usage doivent être placés dans un local prévu à l\'article 4 ci-dessus.
       -   Article 8 : Les équipements de protection doivent, après leur nettoyage, être placés dans une armoire vestiaire individuelle destinée à ce seul usage et situés dans un local autre que celui visé à l\'article 4 ci-dessus.
       -   Article 10 : L\'employeur doit interdire aux travailleurs de priser, de fumer, de boire et de manger lors de toute exposition aux produits antiparasitaires et avant qu\'il ait été procédé au nettoyage corporel.
       -   Article R5132-66 : Les substances ou préparations dangereuses sont placées dans des armoires fermées à clef ou dans des locaux où n\'ont pas librement accès les personnes étrangères à l\'établissement.
       -   Article R5132-68 : Les substances ou préparations dangereuses, mentionnées à l\'article R.5132-67 (classées comme nocives, corrosives ou irritantes), détenues en vue de leur mise sur le marché ou de leur emploi, sont conservées séparément des autres substances ou préparations.


    II) Deuxième critère : le format de l\'armoire

    Plusieurs tailles d\'armoires sont disponibles afin de s\'adapter à votre espace de travail et à vos besoins.
       -   Les armoires de table : armoires de stockage à usage très fréquent, à poser sur une paillasse.
       -   Les armoires de sécurité sous paillasse : armoires à placer sous votre plan de travail pour le stockage de flacons, à usage réguliers et à porter de mains.
       -   Les armoires de sécurité hautes : armoires prévues pour stocker un maximum de produits dangereux et existant sous différentes tailles.
    Toutes nos armoires peuvent être vendues en version 1 ou 2 portes.


    III) Troisième critère : le volume et le poids des contenants

    La taille des produits à stocker est également importante dans le choix d\'une armoire de sécurité. En effet, suivant le volume, le poids et le nombre de contenants, l\'armoire ne sera pas la même. Il faudra adapter les étagères selon la charge maximale acceptée par étagère et la distance entre chacune d\'elles.


    IV) Quatrième critère : le système de ventilation

    Il est possible d\'installer un caisson de ventilation, filtration ou circulation d\'air au sein de votre armoire de sécurité pour prolonger la durée de vie de l\'armoire en luttant contre les vapeurs corrosives et pour éviter les intoxications liées à la formation de gaz dangereux.


    Si votre pièce est équipée d\'une VMC,vous pourrez vous orienter vers un caisson de ventilation qui sera raccordé à cette VMC pour évacuer l\'air de l\'armoire et le rejeter à l\'extérieur du bâtiment.

     

    Si votre pièce n\'est pas équipée d\'une VMC, il est alors nécessaire d\'ajouter un caisson de filtration qui rejettera l\'air dans la pièce après l\'avoir purifié.

     

    Il faudra ensuite déterminer le type de filtre le mieux adapté aux produits stockés dans l\'armoire.

    "); $content_plus=stripslashes(""); $scriptName = $GLOBAL_START_URL."/guidechoix"; /* include_once( "HTML/Template/Flexy.php" ); include_once( "HTML/Template/Flexy/Element.php" ); $options["templateDir"][] = "$GLOBAL_START_PATH/templates/catalog/"; $options["strict"][]="false"; $options[ "compileDir" ] = "$GLOBAL_START_PATH/catalog/templates/"; if($rsamarques->RecordCount() > 0 && $rsamarques->fields("idbrand")){ $idmarque=$rsamarques->fields("idbrand"); $rsdelaamarque=DBUtil::query("SELECT idbrand, brand, logo, brand_url FROM brand WHERE idbrand=$idmarque"); $brandName=$rsdelaamarque->fields("brand"); $brandLogo=$GLOBAL_START_URL."/www/".$rsdelaamarque->fields("logo"); if($rsdelaamarque->fields("brand_url") && $rsdelaamarque->fields("brand_url")!=""){ $brandLink="$GLOBAL_START_URL/".$rsdelaamarque->fields("brand_url"); }else{ $brandLink="$GLOBAL_START_URL/catalog/product_brand?IdBrand=$idmarque"; } $custom_page_subcontent = new HTML_Template_Flexy($options); $catalog_right = Session::getInstance()->getCustomer() ? Session::getInstance()->getCustomer()->get( "catalog_right" ) : 0; $ANDLINES=""; $FROMLINE=""; $idcategory = ""; if(isset($_REQUEST["IdCateg"]) && $_REQUEST["IdCateg"]!=""){ $idcategory=$_REQUEST["IdCateg"]; $ParameterOutputArray["IdCateg"] = $idcategory; $ANDLINES.=" AND p.idcategory LIKE '".$idcategory."%' "; } // TRUC DE MERDE POUR LES INTITULES // if((isset($_REQUEST["Size"]) && $_REQUEST["Size"]!="") || (isset($_REQUEST["Color"]) && $_REQUEST["Color"]!="") || (isset($_REQUEST["Field"]) && $_REQUEST["Field"]!="")){ $FROMLINE.=" , intitule_link il "; $ANDLINES.=" AND d.idarticle=il.idarticle "; } if(isset($_REQUEST["Size"]) && $_REQUEST["Size"]!=""){ $size=$_REQUEST["Size"]; $rsintit=DBUtil::query("SELECT idintitule_value as idintitule FROM intitule_value WHERE intitule_value_1='$size' LIMIT 1"); $idintitule_value=$rsintit->fields("idintitule"); $ANDLINES.=" AND il.idintitule_value=$idintitule_value"; } $queryOfBrand = " SELECT p.idproduct, p.name$lang AS name, p.description$lang AS description, p.desc_tech$lang AS desc_tech, p.desc_more$lang AS desc_more, p.text_commercial$lang AS text_commercial, p.space_msg_1, p.space_msg_2, p.space_msg_3, p.space_msg_4, p.space_msg_5, p.space_msg_6, p.idsupplier FROM product p, detail d $FROMLINE WHERE p.idbrand = $idmarque $ANDLINES AND p.available = 1 AND p.catalog_right <= '$catalog_right' AND p.idproduct=d.idproduct AND p.idproduct>0 AND d.stock_level<>0 GROUP BY p.idproduct ORDER BY p.display_product_order ASC"; $rsProductsOfBrand = DBUtil::query($queryOfBrand); $zobi=0; $arrayReferences = ""; $custom_page_subcontent->setData("baseURL",$GLOBAL_START_URL); $custom_page_subcontent->compile("subcontent_custom_pages.tpl"); $subcontent=$custom_page_subcontent->toString(); $subcontent="".$subcontent.""; $content=str_replace("",$subcontent,$content); $content_plus=str_replace("",$subcontent,$content_plus); //fonction de la mort ki tue pour la barre de gauche. Bisou bisouuuu $IdBrand=$idmarque; class LBCustomPages extends FlexyController{ function __construct($template,$IdBrand){ global $GLOBAL_START_URL,$GLOBAL_START_PATH; parent::__construct( $template ); $recupSizes=array(); $recupSizes=$this->GetIntitulesFromCategory($IdBrand,"Taille"); $recupColors=array(); $recupColors=$this->GetIntitulesFromCategory($IdBrand,"Couleur"); $recupMatieres=array(); $recupMatieres=$this->GetIntitulesFromCategory($IdBrand,"Matière"); $recupTrades=array(); $recupTrades=$this->GetTradesFromCategory($IdBrand); $recupCategories=array(); $recupCategories=$this->GetCategoriesOf("idbrand",$IdBrand); $recupAafficher=array(); $recupAafficher=$this->GetArrayOfCategories("idbrand",$IdBrand); $this->setData("searchSizes", $recupSizes); $this->setData("searchColors",$recupColors); $this->setData("searchMatieres",$recupMatieres); $this->setData("searchTrades",$recupTrades); $this->setData("searchCategories",$recupCategories); $this->setData("categoriesToShow",$recupAafficher); $this->initMenu(); //$outputImageMenu = $this->outputImageMenu(); $outputMenu = $this->outputMenu(); //$this->setData("outputImageMenu",$outputImageMenu); $this->setData("outputMenu",$outputMenu); } function initMenu($home = ""){ global $GLOBAL_START_URL,$GLOBAL_START_PATH; include_once("$GLOBAL_START_PATH/objects/CSSMenu.php" ); $this->navbabar = new CSSMenu(); $showHome = false; if($home!=""){ $showHome = true; } $this->navbabar->showHomeItem( $showHome ); } function addItemMenu($item,$link,$style = ""){ global $GLOBAL_START_URL,$GLOBAL_START_PATH; $this->navbabar->addStaticItem($item,$link,$style); } function outputMenu(){ global $GLOBAL_START_URL,$GLOBAL_START_PATH; //$this->navbabar->buildMenuCP(); $this->navbabar->buildMenu(); return $this->navbabar->getHTML(); } function outputImageMenu(){ global $GLOBAL_START_URL,$GLOBAL_START_PATH; $this->navbabar->buildImageMenuCP(); return $this->navbabar->getHTML(); } function GetIntitulesFromCategory($idbrand,$intitule){ global $lang; $rqTaille="SELECT idintitule_title FROM intitule_title WHERE intitule_title$lang LIKE '$intitule' LIMIT 1"; $rsTaile=DBUtil::query($rqTaille); $idTitleTaille=$rsTaile->fields("idintitule_title"); $arrayCountByTaille=array(); if($rsTaile->RecordCount()){ $rqToutesLesTailles="SELECT iv.intitule_value_1, COUNT( p.idproduct ) as count FROM product p, intitule_link il, intitule_value iv WHERE p.idproduct = il.idproduct AND il.idintitule_value=iv.idintitule_value AND il.idintitule_title=$idTitleTaille AND p.idbrand =$idbrand "; if( isset( $_POST[ "intitule_value" ] ) && $_POST[ "intitule_value" ]!="" ){ $intitvalue=$_POST[ "intitule_value" ]; $rqToutesLesTailles.="AND iv.intitule_value_1=$intitvalue "; } $rqToutesLesTailles.="GROUP BY il.idintitule_value ORDER BY iv.intitule_value_1 ASC"; $rsToutesLesTailles=DBUtil::query($rqToutesLesTailles); $i=0; while(!$rsToutesLesTailles->EOF()){ $arrayCountByTaille[$i]["name"]=$rsToutesLesTailles->fields("intitule_value_1"); $arrayCountByTaille[$i]["count"]=$rsToutesLesTailles->fields("count"); $i++; $rsToutesLesTailles->MoveNext(); } } return $arrayCountByTaille; } function GetTradesFromCategory($idbrand){ global $lang, $GLOBAL_START_PATH, $GLOBAL_START_URL; $rqTousLesMetiers=" SELECT t.idtrade, t.trade$lang as trade,image, COUNT( p.idproduct ) as count FROM product p, trade t, trade_product tp WHERE p.idproduct = tp.idproduct AND t.idtrade = tp.idtrade AND p.idbrand = $idbrand GROUP BY t.idtrade ORDER BY t.display ASC"; $rsTousLesMetiers=DBUtil::query($rqTousLesMetiers); $arrayCountByTrades=array(); $i=0; while(!$rsTousLesMetiers->EOF()){ $arrayCountByTrades[$i]["id"]=$rsTousLesMetiers->fields("idtrade"); $arrayCountByTrades[$i]["name"]=$rsTousLesMetiers->fields("trade"); $arrayCountByTrades[$i]["count"]=$rsTousLesMetiers->fields("count"); $imagePath = $GLOBAL_START_PATH."/www/".$rsTousLesMetiers->fields( "image" ); $imageUrl = $GLOBAL_START_URL."/www/".$rsTousLesMetiers->fields( "image" ); if($rsTousLesMetiers->fields( "image" ) != "" && file_exists($imagePath)){ $arrayCountByTrades[$i]["image"] = $imageUrl; }else{ $arrayCountByTrades[$i]["image"] = ""; } $i++; $rsTousLesMetiers->MoveNext(); } return $arrayCountByTrades; } function GetCategoriesOf($field,$value){ global $lang; $rsCatOf=DBUtil::query("SELECT p.idcategory as id,c.name$lang as name, COUNT( p.idproduct ) as count FROM product p, category c WHERE c.idcategory=p.idcategory AND p.$field=$value GROUP BY p.idcategory"); $arrayCountBy=array(); $i=0; while(!$rsCatOf->EOF()){ $arrayCountBy[$i]["id"]=$rsCatOf->fields("id"); $arrayCountBy[$i]["name"]=$rsCatOf->fields("name"); $arrayCountBy[$i]["count"]=$rsCatOf->fields("count"); $i++; $rsCatOf->MoveNext(); } return $arrayCountBy; } function GetArrayOfCategories($field,$value){ global $lang; $rsCatOf=DBUtil::query("SELECT p.idcategory as id FROM product p, category c WHERE c.idcategory=p.idcategory AND p.$field=$value GROUP BY p.idcategory ORDER BY p.idcategory"); $arrayCategs=array(); $i=0; while(!$rsCatOf->EOF()){ $stop = false; $child = $rsCatOf->fields("id"); while(!$stop){ $rsCat=DBUtil::query("SELECT idcategoryparent as parent FROM category_link WHERE idcategorychild = $child LIMIT 1"); if($rsCat->RecordCount() == 0 || $rsCat->fields("parent") == 0){ $stop = true; }else{ $stop = false; $child = $rsCat->fields("parent"); if (!in_array($rsCat->fields("parent"), $arrayCategs)) { $arrayCategs[$i]=$rsCat->fields("parent"); } $i++; } } $arrayCategs[$i]=$rsCatOf->fields("id"); $i++; $rsCatOf->MoveNext(); } return $arrayCategs; } }; $custom_page_left_bar = new LBCustomPages( "left_bar_custom_pages.tpl",$IdBrand ); $custom_page_left_bar->setData("IdBrand",$IdBrand); $custom_page_left_bar->setData("idcategory",$idcategory); $custom_page_left_bar->setData("scriptName",$scriptName); $custom_page_left_bar->setData("baseURL",$GLOBAL_START_URL); //$leftbarcontent=$custom_page_left_bar->string(); //remplacement des tag de barbares par le contenu compilé //$leftbarcontent="".$leftbarcontent.""; //$content=str_replace("",$leftbarcontent,$content); //enfin fini, je commençais a être chauve //OH MON DIEU! J AI PERDU UNE TOUFFE! }*/ function param_pagination($Idbrand){ ?>
    EOF() ) { $idcategory = $result->fields( "idcategory" ); if(!in_array($idcategory,$results)) { array_push( $results, $idcategory ); } $result->MoveNext(); } $total = count($results); $res1 = DBUtil::query( "SELECT per_page FROM custom_pages WHERE `idbrand` = $Idbrand LIMIT 1" ); $perpage = $res1->fields( "per_page" ); // nombre d'entrées à afficher par page if ($perpage== 0) $perpage = 6; if ($perpage >= $total ) $perpage = $total; $nbPages = ceil($total/$perpage); // calcul du nombre de pages $nbPages (on arrondit à l'entier supérieur avec la fonction ceil()) // Récupération du numéro de la page courante depuis l'URL avec la méthode GET // S'il s'agit d'un nombre on traite, sinon on garde la valeur par défaut : 1 $current = 1; if (isset($_POST["page"]) && is_numeric($_POST["page"])) { $page = intval($_POST["page"]); if ($page >= 1 && $page <= $nbPages) { // cas normal $current=$page; } else if ($page < 1) { // cas où le numéro de page est inférieure 1 : on affecte 1 à la page courante $current=1; } else { //cas où le numéro de page est supérieur au nombre total de pages : on affecte le numéro de la dernière page à la page courante $current = $nbPages; } } // $start est la valeur de départ du LIMIT dans notre requête SQL (dépend de la page courante) $start = ($current * $perpage) - $perpage; //stockage des paramètres à utiliser dans un tableau $params = array(); $params["start"] = $start; $params["perpage"] = $perpage; $params["total"] = $total; $params["nbpage"] = $nbPages; $params["current"] = $current; return $params; } function ListProducts($Idbrand, $idcategory){ global $GLOBAL_START_PATH, $GLOBAL_START_URL; include_once( "$GLOBAL_START_PATH/objects/productobject.php" ); include_once( dirname( __FILE__ ) . "/objects/URLFactory.php" ); //$params = param_pagination($Idbrand); //$start=$params["start"]; //$perpage=$params["perpage"]; $res = DBUtil::query("SELECT p.idproduct, p.name_1 AS name, p.idcategory, p.novelty, c.name_1 AS categoryName, p.idlabel, p.description_1 AS description, p.desc_tech_1 AS desc_tech, p.desc_more_1 AS desc_more, p.text_commercial_1, p.space_msg_1, p.space_msg_2, p.space_msg_3, p.space_msg_4, p.space_msg_5, p.space_msg_6, p.idbrand, p.idsupplier,d.sellingcost FROM product p, detail d, category c WHERE p.idcategory = c.idcategory AND p.available = 1 AND p.catalog_right <= 0 AND d.idproduct=p.idproduct AND p.idbrand= $Idbrand AND p.idproduct>0 AND p.idcategory = $idcategory GROUP BY p.idproduct ORDER BY p.novelty DESC "); $i = 0; $list = array(); while( !$res->EOF() ) { $idproduct = $res->fields( "idproduct" ); $productName = $res->fields( "name" ); $list[$i]["name"]=$productName; $productDescription = $res->fields( "description" ); $list[$i]["description"]=utf8_encode(strip_tags(substr($productDescription, 0, 200))); $productText_commercial = $res->fields( "text_commercial_1" ); //$list[$i]["text_commercial"]=utf8_encode(strip_tags(substr($productText_commercial, 0, 200))); $list[$i]["text_commercial"]=$productText_commercial; $productDate = $res->fields( "novelty" ); $list[$i]["date"]=$productDate; $productPrice = $res->fields( "sellingcost" ); $list[$i]["sellingcost"]=$productPrice; $rsreference = DBUtil::query("SELECT reference FROM detail WHERE idproduct = $idproduct LIMIT 1"); $productReferenceCount = $rsreference->RecordCount(); $list[$i]["referenceCount"]=$productReferenceCount; //Labels $idlabel = $res->fields( "idlabel" ); $list[$i]["idlabel"]=$idlabel; if($idlabel>0){ $rslabel = DBUtil::query("SELECT name, description, image FROM product_labels WHERE idlabel = $idlabel LIMIT 1"); if($rslabel->RecordCount()>0){ while(!$rslabel->EOF()){ $list[$i]["label"]=$rslabel->fields("name"); $list[$i]["labelDescription"]=$rslabel->fields("description"); $list[$i]["labelText_commercial"]=$rslabel->fields("text_commercial"); $list[$i]["labelImage"]="$GLOBAL_START_URL/www/labels/".$rslabel->fields("image"); $rslabel->MoveNext(); } }else{ $list[$i]["label"]=""; $list[$i]["labelDescription"]=""; $list[$i]["labelText_commercial"]=""; $list[$i]["labelImage"]=""; } }else{ $list[$i]["label"]=""; $list[$i]["labelDescription"]=""; $list[$i]["labelText_commercial"]=""; $list[$i]["labelImage"]=""; } $list[$i]["imageURL"]= URLFactory::getProductImageURI( $res->fields( "idproduct" ) ); //URLs $productURL = URLFactory::getProductURL( $idproduct); $list[$i]["productURL"]=$productURL; $lowerPrice = PRODUCT::getLowerPrice( $idproduct ); $pxmin = $lowerPrice ? Util::priceFormat( $lowerPrice ) : false; $list[$i]["pxmin"]=$pxmin; //promotions if(PRODUCT::hasPromotionInStock( $idproduct )) $list[$i]["haspromos"]="yes"; $i++; $res->MoveNext(); } return $list; } function NameBrand($Idbrand) { $rs = DBUtil::query("SELECT brand FROM brand WHERE idbrand = $Idbrand LIMIT 1"); $brand_name = $rs->fields("brand"); return $brand_name; } function NameCategOfBrand($Idbrand) { include_once( dirname( __FILE__ ) . "/objects/URLFactory.php" ); $rs = DBUtil::query("SELECT p.idcategory, c.name_1 FROM product p, category c WHERE p.idbrand = $Idbrand AND c.idcategory = p.idcategory AND p.available = 1"); $i = 0; $listcateg = array(); $results = array(); while( !$rs->EOF() ) { //print $Idbrand; $idcategory = $rs->fields( "idcategory" ); if(!in_array($idcategory,$results)) { array_push( $results, $idcategory ); $listcateg[$i]["id"]=$idcategory; $categoryName = $rs->fields( "name_1" ); $listcateg[$i]["name"]=$categoryName; //URLs $categoryURL = URLFactory::getCategoryURL( $idcategory ); $listcateg[$i]["categoryURL"]=$categoryURL; $i++; } $rs->MoveNext(); } return $listcateg; } function NameCategOfProduct($Idbrand) { include_once( dirname( __FILE__ ) . "/objects/URLFactory.php" ); $params = param_pagination($Idbrand); $start=$params["start"]; $perpage=$params["perpage"]; $rs = DBUtil::query("SELECT DISTINCT p.idcategory, c.name_1 FROM product p, category c WHERE p.idbrand = $Idbrand AND c.idcategory = p.idcategory AND p.available = 1 LIMIT $start, $perpage"); $i = 0; $categproduct = array(); $results = array(); while( !$rs->EOF() ) { $idcategory = $rs->fields( "idcategory" ); if(!in_array($idcategory,$results)) { array_push( $results, $idcategory ); $categproduct[$i]["id"]=$idcategory; $categoryName = $rs->fields( "name_1" ); $categproduct[$i]["name"]=$categoryName; //URLs $categoryURL = URLFactory::getCategoryURL( $idcategory ); $categproduct[$i]["categoryURL"]=$categoryURL; $categproduct[$i]["listprod"] = ListProducts( $Idbrand, $idcategory ); $i++; } $rs->MoveNext(); } return $categproduct; } $custom_page->setData("Content",stripslashes($content)); $custom_page->setData("Content_plus",stripslashes($content_plus)); //$custom_page->setData( "list", isset( $IdBrand ) ? ListProducts( intval( $IdBrand ) ) : null ); $custom_page->setData( "params", isset( $IdBrand ) ? param_pagination( $IdBrand ) : null ); $custom_page->setData( "brand_name", isset( $IdBrand ) ? NameBrand( $IdBrand ) : null ); $custom_page->setData( "listcateg", isset( $IdBrand ) ? NameCategOfBrand( $IdBrand ) : null ); $custom_page->setData( "categproduct", isset( $IdBrand ) ? NameCategOfProduct( $IdBrand ) : null ); $custom_page->setData("notArrayReferences","ok"); $custom_page->setData("arrayRefs",$arrayReferences); $custom_page->output(); //----------------------------------------------------------------------------------------------// // Fonctions pour la barre de gauche // //----------------------------------------------------------------------------------------------// function GetIntitulesFromCategory($idbrand,$intitule){ global $lang; $rqTaille="SELECT idintitule_title FROM intitule_title WHERE intitule_title$lang LIKE '$intitule' LIMIT 1"; $rsTaile=DBUtil::query($rqTaille); $idTitleTaille=$rsTaile->fields("idintitule_title"); $arrayCountByTaille=array(); if($rsTaile->RecordCount()){ $rqToutesLesTailles="SELECT iv.intitule_value_1, COUNT( p.idproduct ) as count FROM product p, intitule_link il, intitule_value iv WHERE p.idproduct = il.idproduct AND il.idintitule_value=iv.idintitule_value AND il.idintitule_title=$idTitleTaille AND p.idbrand =$idbrand "; if( isset( $_POST[ "intitule_value" ] ) && $_POST[ "intitule_value" ]!="" ){ $intitvalue=$_POST[ "intitule_value" ]; $rqToutesLesTailles.="AND iv.intitule_value_1=$intitvalue "; } $rqToutesLesTailles.="GROUP BY il.idintitule_value ORDER BY iv.intitule_value_1 ASC"; $rsToutesLesTailles=DBUtil::query($rqToutesLesTailles); $i=0; while(!$rsToutesLesTailles->EOF()){ $arrayCountByTaille[$i]["name"]=$rsToutesLesTailles->fields("intitule_value_1"); $arrayCountByTaille[$i]["count"]=$rsToutesLesTailles->fields("count"); $i++; $rsToutesLesTailles->MoveNext(); } } return $arrayCountByTaille; } function GetTradesFromCategory($idbrand){ global $lang, $GLOBAL_START_PATH, $GLOBAL_START_URL; $rqTousLesMetiers=" SELECT t.idtrade, t.trade$lang as trade,image, COUNT( p.idproduct ) as count FROM product p, trade t, trade_product tp WHERE p.idproduct = tp.idproduct AND t.idtrade = tp.idtrade AND p.idbrand = $idbrand GROUP BY t.idtrade ORDER BY t.display ASC"; $rsTousLesMetiers=DBUtil::query($rqTousLesMetiers); $arrayCountByTrades=array(); $i=0; while(!$rsTousLesMetiers->EOF()){ $arrayCountByTrades[$i]["id"]=$rsTousLesMetiers->fields("idtrade"); $arrayCountByTrades[$i]["name"]=$rsTousLesMetiers->fields("trade"); $arrayCountByTrades[$i]["count"]=$rsTousLesMetiers->fields("count"); $imagePath = $GLOBAL_START_PATH."/www/".$rsTousLesMetiers->fields( "image" ); $imageUrl = $GLOBAL_START_URL."/www/".$rsTousLesMetiers->fields( "image" ); if($rsTousLesMetiers->fields( "image" ) != "" && file_exists($imagePath)){ $arrayCountByTrades[$i]["image"] = $imageUrl; }else{ $arrayCountByTrades[$i]["image"] = ""; } $i++; $rsTousLesMetiers->MoveNext(); } return $arrayCountByTrades; } function GetCategoriesOf($field,$value){ global $lang; $rsCatOf=DBUtil::query("SELECT p.idcategory as id,c.name$lang as name, COUNT( p.idproduct ) as count FROM product p, category c WHERE c.idcategory=p.idcategory AND p.$field=$value GROUP BY p.idcategory"); $arrayCountBy=array(); $i=0; while(!$rsCatOf->EOF()){ $arrayCountBy[$i]["id"]=$rsCatOf->fields("id"); $arrayCountBy[$i]["name"]=$rsCatOf->fields("name"); $arrayCountBy[$i]["count"]=$rsCatOf->fields("count"); $i++; $rsCatOf->MoveNext(); } return $arrayCountBy; } function GetArrayOfCategories($field,$value){ global $lang; $rsCatOf=DBUtil::query("SELECT p.idcategory as id FROM product p, category c WHERE c.idcategory=p.idcategory AND p.$field=$value GROUP BY p.idcategory ORDER BY p.idcategory"); $arrayCategs=array(); $i=0; while(!$rsCatOf->EOF()){ $stop = false; $child = $rsCatOf->fields("id"); while(!$stop){ $rsCat=DBUtil::query("SELECT idcategoryparent as parent FROM category_link WHERE idcategorychild = $child LIMIT 1"); if($rsCat->RecordCount() == 0 || $rsCat->fields("parent") == 0){ $stop = true; }else{ $stop = false; $child = $rsCat->fields("parent"); if (!in_array($rsCat->fields("parent"), $arrayCategs)) { $arrayCategs[$i]=$rsCat->fields("parent"); } $i++; } } $arrayCategs[$i]=$rsCatOf->fields("id"); $i++; $rsCatOf->MoveNext(); } return $arrayCategs; } function SetGlobalReferencesJsDataCP($IdProduct,&$arrayReferences){ $Product = new PRODUCT($IdProduct); $details = $Product->GetRefArray(""); $IdCategory = $Product->GetCategoryID(); //echo print_r($details[0]); if(isset($details[0])){ $rows = $details[0]; foreach ($rows["id"] as $row => $idrow) { $idarticle = $rows["id"][ $row ]; $arrayReferences.="articles[ '$idarticle' ] = new Array();"; $arrayReferences.="articles[ '$idarticle' ][ 'reference' ] = '".jsFormat( $rows[ 'reference' ][ $row ] )."';"; $arrayReferences.="articles[ '$idarticle' ][ 'weight' ] = '".jsFormat( $rows[ 'weight' ][ $row ] )."';"; $arrayReferences.="articles[ '$idarticle' ][ 'unit' ] = '".jsFormat( $rows[ 'unit' ][ $row ] )."';"; $arrayReferences.="articles[ '$idarticle' ][ 'lot' ] = '". jsFormat( $rows[ 'lot' ][ $row ] )."';"; $arrayReferences.="articles[ '$idarticle' ][ 'delay' ] = '".jsFormat( $rows[ 'delay' ][ $row ] )."';"; $arrayReferences.="articles[ '$idarticle' ][ 'promo' ] = '".jsFormat( $rows[ 'promo' ][ $row ] )."';"; $arrayReferences.="articles[ '$idarticle' ][ 'hidecost' ] = '". jsFormat( $rows[ 'hidecost' ][ $row ] )."';"; $arrayReferences.="articles[ '$idarticle' ][ 'hasPromo' ] = '". jsFormat( $rows[ 'hasPromo' ][ $row ] )."';"; $arrayReferences.="articles[ '$idarticle' ][ 'promo_rate' ] = '". jsFormat( $rows[ 'promo_rate' ][ $row ] )."';"; $arrayReferences.="articles[ '$idarticle' ][ 'promo_price' ] = '". jsFormat( $rows[ 'promo_price' ][ $row ] )."';"; $arrayReferences.="articles[ '$idarticle' ][ 'isDestocking' ] = '". jsFormat( $rows[ 'isDestocking' ][ $row ] )."';"; $arrayReferences.="articles[ '$idarticle' ][ 'destocking_price' ] = '". jsFormat( $rows[ 'destocking_price' ][ $row ] )."';"; $arrayReferences.="articles[ '$idarticle' ][ 'destocking_rate' ] = '". jsFormat( $rows[ 'destocking_rate' ][ $row ] )."';"; $arrayReferences.="articles[ '$idarticle' ][ 'stock_level' ] = '". jsFormat( $rows[ 'stock_level' ][ $row ] )."';"; $arrayReferences.="articles[ '$idarticle' ][ 'wtprice' ] = '". str_replace(" ¤","",jsFormat($rows[ "wtprice" ][ $row ] ))."';"; $arrayReferences.="articles[ '$idarticle' ][ 'IdProduct' ] = '".$IdProduct ."';"; $arrayReferences.="articles[ '$idarticle' ][ 'IdCategory' ] = '". $IdCategory ."';"; } foreach ($rows["hiddenFields"] as $rowx => $hiddenFields) { $idarticle = $rows["id"][$rowx]; foreach ($hiddenFields as $fieldname => $value) { if(htmlentities($fieldname)!="delay"){ $arrayReferences.="articles[ '$idarticle' ][ '".htmlentities($fieldname)."' ] = '".html_entity_decode(jsFormat( $value) )."' ;"; } } } } } function jsFormat($string) { return str_replace("'", "\'", htmlentities($string)); } ?>