/modules/storecommander/ead6f6fce09/SC/lib/cat/quicksearch/cat_quicksearch_get.php

https://gitlab.com/ptisky/API_prestashop · PHP · 111 lines · 86 code · 4 blank · 21 comment · 7 complexity · 66f7f204e74fe3a8ed8a28aef4864311 MD5 · raw file

  1. <?php
  2. /**
  3. * Store Commander
  4. *
  5. * @category administration
  6. * @author Store Commander - support@storecommander.com
  7. * @version 2015-09-15
  8. * @uses Prestashop modules
  9. * @since 2009
  10. * @copyright Copyright &copy; 2009-2015, Store Commander
  11. * @license commercial
  12. * All rights reserved! Copying, duplication strictly prohibited
  13. *
  14. * *****************************************
  15. * * STORE COMMANDER *
  16. * * http://www.StoreCommander.com *
  17. * * V 2015-09-15 *
  18. * *****************************************
  19. *
  20. * Compatibility: PS version: 1.1 to 1.6.1
  21. *
  22. **/
  23. $id_product=Tools::getValue('id_product',1);
  24. $id_product_attribute=Tools::getValue('id_product_attribute',1);
  25. $name=Tools::getValue('name',1);
  26. $reference=Tools::getValue('reference',1);
  27. $supplier_reference=Tools::getValue('supplier_reference',1);
  28. $ean=Tools::getValue('ean',1);
  29. $upc=0;
  30. if (version_compare(_PS_VERSION_, '1.4.0.2', '>='))
  31. $upc=Tools::getValue('upc',1);
  32. $limit=25*$nblanguages;
  33. $res='';
  34. $shop_where = "";
  35. if(SCMS)
  36. {
  37. if(SCI::getSelectedShop()>0)
  38. $shop_where = " '".(int)SCI::getSelectedShop()."' ";
  39. else
  40. $shop_where = " p.id_shop_default ";
  41. }
  42. if(is_numeric($_GET['q'])){
  43. $sql = "SELECT p.id_product,p.id_category_default,pl.name as pname,cl.name as cname,pl2.name as pname2,pa.id_product_attribute
  44. ".(SCMS ? " ,ps.id_category_default,pas.default_on ":"")."
  45. FROM `"._DB_PREFIX_."product` p
  46. LEFT JOIN `"._DB_PREFIX_."product_lang` pl ON (p.id_product=pl.id_product ".(SCMS?"AND pl.id_shop=".$shop_where:"").")
  47. LEFT JOIN `"._DB_PREFIX_."product_lang` pl2 ON (p.id_product=pl2.id_product AND pl2.id_lang=".intval($sc_agent->id_lang)." ".(SCMS?"AND pl2.id_shop=".$shop_where:"").")
  48. ".(SCMS?" LEFT JOIN `"._DB_PREFIX_."product_shop` ps ON (ps.id_product = p.id_product AND ps.id_shop=".$shop_where.") ":"")."
  49. LEFT JOIN `"._DB_PREFIX_."product_attribute` pa ON (p.id_product=pa.id_product)
  50. ".(SCMS?" LEFT JOIN `"._DB_PREFIX_."product_attribute_shop` pas ON (pas.id_product_attribute = pa.id_product_attribute AND pas.id_shop=".$shop_where.") ":"")."
  51. LEFT JOIN `"._DB_PREFIX_."category_lang` cl ON (cl.id_category=".(SCMS?"ps":"p").".id_category_default AND cl.id_lang=".intval($sc_agent->id_lang).")
  52. WHERE (0
  53. ".(($id_product==1)?" OR p.id_product = '".(float)$_GET['q']."'":"")."
  54. ".(($id_product_attribute==1)?" OR pa.id_product_attribute = '".(float)$_GET['q']."'":"")."
  55. ".(($ean==1)?" OR p.ean13 LIKE '%".psql($_GET['q'])."%'":"")."
  56. ".(($ean==1)?" OR pa.ean13 LIKE '%".psql($_GET['q'])."%'":"")."
  57. ".(($reference==1)?" OR p.reference LIKE '%".psql($_GET['q'])."%'":"")."
  58. ".(($supplier_reference==1)?" OR p.supplier_reference LIKE '%".psql($_GET['q'])."%'":"")."
  59. ".(($reference==1)?" OR pa.reference LIKE '%".psql($_GET['q'])."%'":"")."
  60. ".(($supplier_reference==1)?" OR pa.supplier_reference LIKE '%".psql($_GET['q'])."%'":"")."
  61. ".(version_compare(_PS_VERSION_,"1.4.0.2",">=")&&($upc==1)?" OR p.upc LIKE '%".psql($_GET['q'])."%'":"")."
  62. ".(version_compare(_PS_VERSION_,"1.4.0.2",">=")&&($upc==1)?" OR pa.upc LIKE '%".psql($_GET['q'])."%'":"")."
  63. )
  64. ".(SCMS?" AND ps.id_shop=".$shop_where:"")."
  65. ORDER BY pl.name ASC,".(SCMS?"pas":"pa").".default_on DESC
  66. LIMIT ".(int)$limit;
  67. $res = Db::getInstance()->ExecuteS($sql);
  68. }else{
  69. $sql = "SELECT p.id_product,p.id_category_default,pl.name as pname,cl.name as cname,pl2.name as pname2,pa.id_product_attribute
  70. ".(SCMS ? " ,ps.id_category_default ":"")."
  71. FROM `"._DB_PREFIX_."product` p
  72. LEFT JOIN `"._DB_PREFIX_."product_lang` pl ON (p.id_product=pl.id_product ".(SCMS?"AND pl.id_shop=".$shop_where:"").")
  73. LEFT JOIN `"._DB_PREFIX_."product_lang` pl2 ON (p.id_product=pl2.id_product AND pl2.id_lang=".intval($sc_agent->id_lang)." ".(SCMS?"AND pl2.id_shop=".$shop_where:"").")
  74. ".(SCMS?" LEFT JOIN `"._DB_PREFIX_."product_shop` ps ON (ps.id_product = p.id_product AND ps.id_shop=".$shop_where.") ":"")."
  75. LEFT JOIN `"._DB_PREFIX_."product_attribute` pa ON (p.id_product=pa.id_product)
  76. ".(SCMS?" LEFT JOIN `"._DB_PREFIX_."product_attribute_shop` pas ON (pas.id_product_attribute = pa.id_product_attribute AND pas.id_shop=".$shop_where.") ":"")."
  77. LEFT JOIN `"._DB_PREFIX_."category_lang` cl ON (cl.id_category=".(SCMS?"ps":"p").".id_category_default AND cl.id_lang=".intval($sc_agent->id_lang).")
  78. WHERE (0
  79. ".(($reference==1)?" OR p.reference LIKE '%".psql($_GET['q'])."%'":"")."
  80. ".(($supplier_reference==1)?" OR p.supplier_reference LIKE '%".psql($_GET['q'])."%'":"")."
  81. ".(($name==1)?" OR pl.name LIKE '%".psql($_GET['q'])."%'":"")."
  82. ".(($reference==1)?" OR pa.reference LIKE '%".psql($_GET['q'])."%'":"")."
  83. ".(($supplier_reference==1)?" OR pa.supplier_reference LIKE '%".psql($_GET['q'])."%'":"")."
  84. )
  85. ".(SCMS?" AND ps.id_shop=".$shop_where:"")."
  86. ORDER BY pl.name ASC,".(SCMS?"pas":"pa").".default_on DESC
  87. LIMIT ".(int)$limit;
  88. $res = Db::getInstance()->ExecuteS($sql);
  89. }
  90. if ($res!='')
  91. {
  92. $content='';
  93. $plist=array();
  94. echo '[';
  95. foreach($res as $row)
  96. {
  97. if (!in_array($row['id_product'],$plist))
  98. {
  99. $content.='{"id_category":"'.$row['id_category_default'].'","id_product":"'.$row['id_product'].'","id_product_attribute":"'.(int)$row['id_product_attribute'].'","pname":"'.str_replace("\'",'',addslashes($row['pname2'])).'","cname":"'.str_replace("\'",'',addslashes(hideCategoryPosition($row['cname']))).'"},';
  100. $plist[]=$row['id_product'];
  101. }
  102. if (count($plist)>25) break;
  103. }
  104. $content=trim($content,',');
  105. echo $content;
  106. echo ']';
  107. }