Jump to content

[Solucionado]Descripcion larga en product_list


Recommended Posts

Tengo un problemilla.

Estoy intentando meter la descripcion larga en el listado de productos en vez de la corta, pero no va... Tengo activado forzar compilación asi que se muestran los cambios que hago, de hecho me aparecen las etiquetas <p> entre las que tengo metido el $product.descripcion

 

¿Alguna idea?

Edited by chupetite (see edit history)
Link to comment
Share on other sites

Tengo un problemilla.

Estoy intentando meter la descripcion larga en el listado de productos en vez de la corta, pero no va... Tengo activado forzar compilación asi que se muestran los cambios que hago, de hecho me aparecen las etiquetas <p> entre las que tengo metido el $product.descripcion

 

¿Alguna idea?

 

En principio asi:

 

{$product.description}

 

funciona en el listado de productos por categorias. (Al menos lo acabo de probar en Prestashop 1.5)

 

Aunque quizas, te refieres a cuando haces uso del buscador, que en ese caso si que no se ve.

  • Like 1
Link to comment
Share on other sites

gracias por responder!

Pues si en principio como bien dices debería ser así... pero no lo es o al menos no me está funcionando. No es a través del buscador, simplemente entro en una categoría y los productos que aparecen me salen sin descripción ninguna. Inspeccionando el código se ve que las etiquetas de párrafo están pero aparecen vacías

Link to comment
Share on other sites

gracias por responder!

Pues si en principio como bien dices debería ser así... pero no lo es o al menos no me está funcionando. No es a través del buscador, simplemente entro en una categoría y los productos que aparecen me salen sin descripción ninguna. Inspeccionando el código se ve que las etiquetas de párrafo están pero aparecen vacías

 

¿Usas la version 1.5?

Link to comment
Share on other sites

Me instalare luego una 1.4.8.2 en mi servidor de pruebas y lo mirare por si las moscas.

 

Un Saludo

 

Gracias! Aunque he conseguido acotar algo más el problema, haciendo un var_dump de $product vemos que tiene

 

array(63) {
["id_product"]=> string(3) "562"
["id_supplier"]=> string(1) "0"
["id_manufacturer"]=> string(2) "26"
["id_tax_rules_group"]=> string(1) "0"
["id_category_default"]=> string(3) "164"
["id_color_default"]=> string(1) "0"
["on_sale"]=> string(1) "0"
["online_only"]=> string(1) "0"
["ean13"]=> string(0) ""
["upc"]=> string(0) ""
["ecotax"]=> string(8) "0.000000"
["quantity"]=> string(2) "10"
["minimal_quantity"]=> string(1) "1"
["price"]=> float(10.5)
["wholesale_price"]=> string(8) "0.000000"
["unity"]=> string(0) ""
["unit_price_ratio"]=> string(8) "0.000000"
["additional_shipping_cost"]=> string(4) "0.00"
["reference"]=> string(0) ""
["supplier_reference"]=> string(0) ""
["location"]=> string(0) ""
["width"]=> string(1) "0"
["height"]=> string(1) "0"
["depth"]=> string(1) "0"
["weight"]=> string(1) "1"
["out_of_stock"]=> string(1) "2"
["quantity_discount"]=> string(1) "0"
["customizable"]=> string(1) "0"
["uploadable_files"]=> string(1) "0"
["text_fields"]=> string(1) "0"
["active"]=> string(1) "1"
["available_for_order"]=> string(1) "1"
["condition"]=> string(3) "new"
["show_price"]=> string(1) "1"
["indexed"]=> string(1) "1"
["cache_is_pack"]=> string(1) "0"
["cache_has_attachments"]=> string(1) "0"
["cache_default_attribute"]=> string(1) "0"
["date_add"]=> string(19) "2012-12-29 19:27:45"
["date_upd"]=> string(19) "2013-05-14 18:53:31"
["id_product_importerosc"]=> string(1) "0"
["available_later"]=> string(0) ""
["description_short"]=> string(0) ""
["link_rewrite"]=> string(20) "multi-enzyme-100caps"
["name"]=> string(20) "MULTI ENZYME 100CAPS"
["id_image"]=> string(6) "562-66"
["legend"]=> string(20) "MULTI ENZYME 100CAPS"
["manufacturer_name"]=> string(17) "SCITEC ESSENTIALS"
["new"]=> string(1) "0" ["allow_oosp"]=> int(0)
["id_product_attribute"]=> string(1) "0"
["category"]=> string(18) "enzimas-digestivas"
["link"]=> string(74) "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
["attribute_price"]=> int(0)
["price_tax_exc"]=> float(10.5)
["price_without_reduction"]=> float(10.5)
["reduction"]=> int(0)
["specific_prices"]=> bool(false)
["features"]=> array(0) { }
["attachments"]=> array(0) { }
["pack"]=> int(0)
["packItems"]=> array(0) { }
["nopackprice"]=> int(0) }

 

 

Con lo cual la descripción corta si la tenemos pero la larga, supongo que tendremos que asignarla en productController para poder usarla...

Link to comment
Share on other sites

Gracias! Aunque he conseguido acotar algo más el problema, haciendo un var_dump de $product vemos que tiene

 

array(63) {
["id_product"]=> string(3) "562"
["id_supplier"]=> string(1) "0"
["id_manufacturer"]=> string(2) "26"
["id_tax_rules_group"]=> string(1) "0"
["id_category_default"]=> string(3) "164"
["id_color_default"]=> string(1) "0"
["on_sale"]=> string(1) "0"
["online_only"]=> string(1) "0"
["ean13"]=> string(0) ""
["upc"]=> string(0) ""
["ecotax"]=> string(8) "0.000000"
["quantity"]=> string(2) "10"
["minimal_quantity"]=> string(1) "1"
["price"]=> float(10.5)
["wholesale_price"]=> string(8) "0.000000"
["unity"]=> string(0) ""
["unit_price_ratio"]=> string(8) "0.000000"
["additional_shipping_cost"]=> string(4) "0.00"
["reference"]=> string(0) ""
["supplier_reference"]=> string(0) ""
["location"]=> string(0) ""
["width"]=> string(1) "0"
["height"]=> string(1) "0"
["depth"]=> string(1) "0"
["weight"]=> string(1) "1"
["out_of_stock"]=> string(1) "2"
["quantity_discount"]=> string(1) "0"
["customizable"]=> string(1) "0"
["uploadable_files"]=> string(1) "0"
["text_fields"]=> string(1) "0"
["active"]=> string(1) "1"
["available_for_order"]=> string(1) "1"
["condition"]=> string(3) "new"
["show_price"]=> string(1) "1"
["indexed"]=> string(1) "1"
["cache_is_pack"]=> string(1) "0"
["cache_has_attachments"]=> string(1) "0"
["cache_default_attribute"]=> string(1) "0"
["date_add"]=> string(19) "2012-12-29 19:27:45"
["date_upd"]=> string(19) "2013-05-14 18:53:31"
["id_product_importerosc"]=> string(1) "0"
["available_later"]=> string(0) ""
["description_short"]=> string(0) ""
["link_rewrite"]=> string(20) "multi-enzyme-100caps"
["name"]=> string(20) "MULTI ENZYME 100CAPS"
["id_image"]=> string(6) "562-66"
["legend"]=> string(20) "MULTI ENZYME 100CAPS"
["manufacturer_name"]=> string(17) "SCITEC ESSENTIALS"
["new"]=> string(1) "0" ["allow_oosp"]=> int(0)
["id_product_attribute"]=> string(1) "0"
["category"]=> string(18) "enzimas-digestivas"
["link"]=> string(74) "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
["attribute_price"]=> int(0)
["price_tax_exc"]=> float(10.5)
["price_without_reduction"]=> float(10.5)
["reduction"]=> int(0)
["specific_prices"]=> bool(false)
["features"]=> array(0) { }
["attachments"]=> array(0) { }
["pack"]=> int(0)
["packItems"]=> array(0) { }
["nopackprice"]=> int(0) }

 

 

Con lo cual la descripción corta si la tenemos pero la larga, supongo que tendremos que asignarla en productController para poder usarla...

 

Sera en todo caso.

.

/controllers/CategoryController

 

esto no tiene nada que ver con la ficha del producto.

 

Es decir es referente a listado de productos por categoria... que dices que no se te ve...

 

En tu version de Prestashop, he visto dicho controlador, y llama a esta funcion:

 

  $this->cat_products = $this->category->getProducts((int)(self::$cookie->id_lang), (int)($this->p), (int)($this->n), $this->orderBy, $this->orderWay);

 

Que si nos vamos a la clase:

 

/classes/Category.php

 

La funcion

 

getProducts

 

Tiene esto:

 

public function getProducts($id_lang, $p, $n, $orderBy = NULL, $orderWay = NULL, $getTotal = false, $active = true, $random = false, $randomNumberProducts = 1, $checkAccess = true)
{
 global $cookie;
 if (!$checkAccess OR !$this->checkAccess($cookie->id_customer))
  return false;
 if ($p < 1) $p = 1;
 if (empty($orderBy))
  $orderBy = 'position';
 else
  /* Fix for all modules which are now using lowercase values for 'orderBy' parameter */
  $orderBy = strtolower($orderBy);
 if (empty($orderWay))
  $orderWay = 'ASC';
 if ($orderBy == 'id_product' OR $orderBy == 'date_add')
  $orderByPrefix = 'p';
 elseif ($orderBy == 'name')
  $orderByPrefix = 'pl';
 elseif ($orderBy == 'manufacturer')
 {
  $orderByPrefix = 'm';
  $orderBy = 'name';
 }
 elseif ($orderBy == 'position')
  $orderByPrefix = 'cp';
 if ($orderBy == 'price')
  $orderBy = 'orderprice';
 if (!Validate::isBool($active) OR !Validate::isOrderBy($orderBy) OR !Validate::isOrderWay($orderWay))
  die (Tools::displayError());
 $id_supplier = (int)(Tools::getValue('id_supplier'));
 /* Return only the number of products */
 if ($getTotal)
 {
  $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
  SELECT COUNT(cp.`id_product`) AS total
  FROM `'._DB_PREFIX_.'product` p
  LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON p.`id_product` = cp.`id_product`
  WHERE cp.`id_category` = '.(int)($this->id).($active ? ' AND p.`active` = 1' : '').'
  '.($id_supplier ? 'AND p.id_supplier = '.(int)($id_supplier) : ''));
  return isset($result) ? $result['total'] : 0;
 }
 $sql = '
 SELECT p.*, pa.`id_product_attribute`, pl.`description`, pl.`description_short`, pl.`available_now`, pl.`available_later`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, i.`id_image`, il.`legend`, m.`name` AS manufacturer_name, tl.`name` AS tax_name, t.`rate`, cl.`name` AS category_default, DATEDIFF(p.`date_add`, DATE_SUB(NOW(), INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0 AS new,
  (p.`price` * IF(t.`rate`,((100 + (t.`rate`))/100),1)) AS orderprice
 FROM `'._DB_PREFIX_.'category_product` cp
 LEFT JOIN `'._DB_PREFIX_.'product` p ON p.`id_product` = cp.`id_product`
 LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON (p.`id_product` = pa.`id_product` AND default_on = 1)
 LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (p.`id_category_default` = cl.`id_category` AND cl.`id_lang` = '.(int)($id_lang).')
 LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)($id_lang).')
 LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1)
 LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)($id_lang).')
 LEFT JOIN `'._DB_PREFIX_.'tax_rule` tr ON (p.`id_tax_rules_group` = tr.`id_tax_rules_group`
										 AND tr.`id_country` = '.(int)Country::getDefaultCountryId().'
											AND tr.`id_state` = 0)
 LEFT JOIN `'._DB_PREFIX_.'tax` t ON (t.`id_tax` = tr.`id_tax`)
 LEFT JOIN `'._DB_PREFIX_.'tax_lang` tl ON (t.`id_tax` = tl.`id_tax` AND tl.`id_lang` = '.(int)($id_lang).')
 LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer`
 WHERE cp.`id_category` = '.(int)($this->id).($active ? ' AND p.`active` = 1' : '').'
 '.($id_supplier ? 'AND p.id_supplier = '.(int)$id_supplier : '');
 if ($random === true)
 {
  $sql .= ' ORDER BY RAND()';
  $sql .= ' LIMIT 0, '.(int)($randomNumberProducts);
 }
 else
 {
  $sql .= ' ORDER BY '.(isset($orderByPrefix) ? $orderByPrefix.'.' : '').'`'.pSQL($orderBy).'` '.pSQL($orderWay).'
  LIMIT '.(((int)($p) - 1) * (int)($n)).','.(int)($n);
 }
 $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS($sql);
 if ($orderBy == 'orderprice')
  Tools::orderbyPrice($result, $orderWay);
 if (!$result)
  return false;
 /* Modify SQL result */
 return Product::getProductsProperties($id_lang, $result);
}

 

Que sinos fijamos yo al menos si veo el description en esta consulta..

 

Aqui:

 

$sql = '
 SELECT p.*, pa.`id_product_attribute`, pl.`description`, pl.`description_short`, pl.`available_now`, pl.`available_later`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, i.`id_image`, il.`legend`, m.`name` AS manufacturer_name, tl.`name` AS tax_name, t.`rate`, cl.`name` AS category_default, DATEDIFF(p.`date_add`, DATE_SUB(NOW(), INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0 AS new,
  (p.`price` * IF(t.`rate`,((100 + (t.`rate`))/100),1)) AS orderprice
 FROM `'._DB_PREFIX_.'category_product` cp
 LEFT JOIN `'._DB_PREFIX_.'product` p ON p.`id_product` = cp.`id_product`
 LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON (p.`id_product` = pa.`id_product` AND default_on = 1)
 LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (p.`id_category_default` = cl.`id_category` AND cl.`id_lang` = '.(int)($id_lang).')
 LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)($id_lang).')
 LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1)
 LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)($id_lang).')
 LEFT JOIN `'._DB_PREFIX_.'tax_rule` tr ON (p.`id_tax_rules_group` = tr.`id_tax_rules_group`
										 AND tr.`id_country` = '.(int)Country::getDefaultCountryId().'
											AND tr.`id_state` = 0)
 LEFT JOIN `'._DB_PREFIX_.'tax` t ON (t.`id_tax` = tr.`id_tax`)
 LEFT JOIN `'._DB_PREFIX_.'tax_lang` tl ON (t.`id_tax` = tl.`id_tax` AND tl.`id_lang` = '.(int)($id_lang).')
 LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer`
 WHERE cp.`id_category` = '.(int)($this->id).($active ? ' AND p.`active` = 1' : '').'
 '.($id_supplier ? 'AND p.id_supplier = '.(int)$id_supplier : '');

 

¿Tu no lo tienes asi?

 

Esto lo he obtenido de la 1.4.8.2

Link to comment
Share on other sites

Otra cosa, es como te he dicho que te refieres al filtrado, busqueda que por ejemplo en la busqueda, sinos vamos al fichero:

 

/controllers/SearchController.php

 

Vemos que hace esta llamada:

 

Search::find((int)(self::$cookie->id_lang), $query, $this->p, $this->n, $this->orderBy, $this->orderWay);

 

Si nos vamos a la clase...

 

/classes/Search.php

 

Encontramos la funcion "find"

 

public static function find($id_lang, $expr, $pageNumber = 1, $pageSize = 1, $orderBy = 'position', $orderWay = 'desc', $ajax = false, $useCookie = true)
{
 global $cookie;
 $db = Db::getInstance(_PS_USE_SQL_SLAVE_);
 // Only use cookie if id_customer is not present
 if ($useCookie)
  $id_customer = (int)$cookie->id_customer;
 else
  $id_customer = 0;
 // TODO : smart page management
 if ($pageNumber < 1) $pageNumber = 1;
 if ($pageSize < 1) $pageSize = 1;
 if (!Validate::isOrderBy($orderBy) OR !Validate::isOrderWay($orderWay))
  return false;
 $intersectArray = array();
 $scoreArray = array();
 $words = explode(' ', Search::sanitize($expr, (int)$id_lang));
 foreach ($words AS $key => $word)
  if (!empty($word) AND strlen($word) >= (int)Configuration::get('PS_SEARCH_MINWORDLEN'))
  {
$word = str_replace('%', '\\%', $word);
$word = str_replace('_', '\\_', $word);
$intersectArray[] = 'SELECT id_product
 FROM '._DB_PREFIX_.'search_word sw
 LEFT JOIN '._DB_PREFIX_.'search_index si ON sw.id_word = si.id_word
 WHERE sw.id_lang = '.(int)$id_lang.'
 AND sw.word LIKE
 '.($word[0] == '-'
  ? ' \''.pSQL(Tools::substr($word, 1, PS_SEARCH_MAX_WORD_LENGTH)).'%\''
  : '\''.pSQL(Tools::substr($word, 0, PS_SEARCH_MAX_WORD_LENGTH)).'%\''
 );
if ($word[0] != '-')
 $scoreArray[] = 'sw.word LIKE \''.pSQL(Tools::substr($word, 0, PS_SEARCH_MAX_WORD_LENGTH)).'%\'';
  }
  else
unset($words[$key]);
 if (!sizeof($words))
  return ($ajax ? array() : array('total' => 0, 'result' => array()));
 $score = '';
 if (sizeof($scoreArray))
  $score = ',(
SELECT SUM(weight)
FROM '._DB_PREFIX_.'search_word sw
LEFT JOIN '._DB_PREFIX_.'search_index si ON sw.id_word = si.id_word
WHERE sw.id_lang = '.(int)$id_lang.'
AND si.id_product = p.id_product
AND ('.implode(' OR ', $scoreArray).')
  ) position';
 $result = $db->ExecuteS('
 SELECT cp.`id_product`
 FROM `'._DB_PREFIX_.'category_group` cg
 INNER JOIN `'._DB_PREFIX_.'category_product` cp ON cp.`id_category` = cg.`id_category`
 INNER JOIN `'._DB_PREFIX_.'category` c ON cp.`id_category` = c.`id_category`
 INNER JOIN `'._DB_PREFIX_.'product` p ON cp.`id_product` = p.`id_product`
 WHERE c.`active` = 1 AND p.`active` = 1 AND indexed = 1
 AND cg.`id_group` '.(!$id_customer ?  '= 1' : 'IN (
  SELECT id_group FROM '._DB_PREFIX_.'customer_group
  WHERE id_customer = '.(int)$id_customer.'
 )'), false);
 $eligibleProducts = array();
 while ($row = $db->nextRow($result))
  $eligibleProducts[] = $row['id_product'];
 foreach ($intersectArray as $query)
 {
  $result = $db->ExecuteS($query, false);
  $eligibleProducts2 = array();
  while ($row = $db->nextRow($result))
$eligibleProducts2[] = $row['id_product'];
  $eligibleProducts = array_intersect($eligibleProducts, $eligibleProducts2);
  if (!count($eligibleProducts))
return ($ajax ? array() : array('total' => 0, 'result' => array()));
 }
 array_unique($eligibleProducts);
 $productPool = '';
 foreach ($eligibleProducts AS $id_product)
  if ($id_product)
$productPool .= (int)$id_product.',';
 if (empty($productPool))
  return ($ajax ? array() : array('total' => 0, 'result' => array()));
 $productPool = ((strpos($productPool, ',') === false) ? (' = '.(int)$productPool.' ') : (' IN ('.rtrim($productPool, ',').') '));
 if ($ajax)
 {
  return $db->ExecuteS('
  SELECT DISTINCT p.id_product, pl.name pname, cl.name cname,
cl.link_rewrite crewrite, pl.link_rewrite prewrite '.$score.'
  FROM '._DB_PREFIX_.'product p
  INNER JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)$id_lang.')
  INNER JOIN `'._DB_PREFIX_.'category_lang` cl ON (p.`id_category_default` = cl.`id_category` AND cl.`id_lang` = '.(int)$id_lang.')
  WHERE p.`id_product` '.$productPool.'
  ORDER BY position DESC LIMIT 10');
 }
 $queryResults = '
 SELECT p.*, pl.`description_short`, pl.`available_now`, pl.`available_later`, pl.`link_rewrite`, pl.`name`,
  tax.`rate`, i.`id_image`, il.`legend`, m.`name` manufacturer_name '.$score.', DATEDIFF(p.`date_add`, DATE_SUB(NOW(), INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0 new
 FROM '._DB_PREFIX_.'product p
 INNER JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)$id_lang.')
 LEFT JOIN `'._DB_PREFIX_.'tax_rule` tr ON (p.`id_tax_rules_group` = tr.`id_tax_rules_group`
										 AND tr.`id_country` = '.(int)Country::getDefaultCountryId().'
											AND tr.`id_state` = 0)
 LEFT JOIN `'._DB_PREFIX_.'tax` tax ON (tax.`id_tax` = tr.`id_tax`)
 LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer`
 LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1)
 LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang.')
 WHERE p.`id_product` '.$productPool.'
 '.($orderBy ? 'ORDER BY  '.$orderBy : '').($orderWay ? ' '.$orderWay : '').'
 LIMIT '.(int)(($pageNumber - 1) * $pageSize).','.(int)$pageSize;
 $result = $db->ExecuteS($queryResults);
 $total = $db->getValue('SELECT COUNT(*)
 FROM '._DB_PREFIX_.'product p
 INNER JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)$id_lang.')
 LEFT JOIN `'._DB_PREFIX_.'tax_rule` tr ON (p.`id_tax_rules_group` = tr.`id_tax_rules_group`
										 AND tr.`id_country` = '.(int)Country::getDefaultCountryId().'
											AND tr.`id_state` = 0)
 LEFT JOIN `'._DB_PREFIX_.'tax` tax ON (tax.`id_tax` = tr.`id_tax`)
 LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer`
 LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1)
 LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang.')
 WHERE p.`id_product` '.$productPool);
 if (!$result)
  $resultProperties = false;
 else
  $resultProperties = Product::getProductsProperties((int)$id_lang, $result);
 return array('total' => $total,'result' => $resultProperties);
}

 

Donde sinos fijamos bien..... aqui:

 

$queryResults = '
 SELECT p.*, pl.`description_short`, pl.`available_now`, pl.`available_later`, pl.`link_rewrite`, pl.`name`,
  tax.`rate`, i.`id_image`, il.`legend`, m.`name` manufacturer_name '.$score.', DATEDIFF(p.`date_add`, DATE_SUB(NOW(), INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0 new
 FROM '._DB_PREFIX_.'product p
 INNER JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)$id_lang.')
 LEFT JOIN `'._DB_PREFIX_.'tax_rule` tr ON (p.`id_tax_rules_group` = tr.`id_tax_rules_group`
										 AND tr.`id_country` = '.(int)Country::getDefaultCountryId().'
											AND tr.`id_state` = 0)
 LEFT JOIN `'._DB_PREFIX_.'tax` tax ON (tax.`id_tax` = tr.`id_tax`)
 LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer`
 LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1)
 LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang.')
 WHERE p.`id_product` '.$productPool.'
 '.($orderBy ? 'ORDER BY  '.$orderBy : '').($orderWay ? ' '.$orderWay : '').'
 LIMIT '.(int)(($pageNumber - 1) * $pageSize).','.(int)$pageSize;
 $result = $db->ExecuteS($queryResults);
 $total = $db->getValue('SELECT COUNT(*)
 FROM '._DB_PREFIX_.'product p
 INNER JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)$id_lang.')
 LEFT JOIN `'._DB_PREFIX_.'tax_rule` tr ON (p.`id_tax_rules_group` = tr.`id_tax_rules_group`
										 AND tr.`id_country` = '.(int)Country::getDefaultCountryId().'
											AND tr.`id_state` = 0)
 LEFT JOIN `'._DB_PREFIX_.'tax` tax ON (tax.`id_tax` = tr.`id_tax`)
 LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer`
 LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1)
 LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang.')
 WHERE p.`id_product` '.$productPool);

 

no tenemos la columna description, prueba agregarla, dejando por ejemplo la consulta asi... a ver si se lo traga..

 

$queryResults = '
 SELECT p.*, pl.`description_short`, pl.`description`,  pl.`available_now`, pl.`available_later`, pl.`link_rewrite`, pl.`name`,
  tax.`rate`, i.`id_image`, il.`legend`, m.`name` manufacturer_name '.$score.', DATEDIFF(p.`date_add`, DATE_SUB(NOW(), INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0 new
 FROM '._DB_PREFIX_.'product p
 INNER JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)$id_lang.')
 LEFT JOIN `'._DB_PREFIX_.'tax_rule` tr ON (p.`id_tax_rules_group` = tr.`id_tax_rules_group`
										 AND tr.`id_country` = '.(int)Country::getDefaultCountryId().'
											AND tr.`id_state` = 0)
 LEFT JOIN `'._DB_PREFIX_.'tax` tax ON (tax.`id_tax` = tr.`id_tax`)
 LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer`
 LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1)
 LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang.')
 WHERE p.`id_product` '.$productPool.'
 '.($orderBy ? 'ORDER BY  '.$orderBy : '').($orderWay ? ' '.$orderWay : '').'
 LIMIT '.(int)(($pageNumber - 1) * $pageSize).','.(int)$pageSize;
 $result = $db->ExecuteS($queryResults);
 $total = $db->getValue('SELECT COUNT(*)
 FROM '._DB_PREFIX_.'product p
 INNER JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)$id_lang.')
 LEFT JOIN `'._DB_PREFIX_.'tax_rule` tr ON (p.`id_tax_rules_group` = tr.`id_tax_rules_group`
										 AND tr.`id_country` = '.(int)Country::getDefaultCountryId().'
											AND tr.`id_state` = 0)
 LEFT JOIN `'._DB_PREFIX_.'tax` tax ON (tax.`id_tax` = tr.`id_tax`)
 LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer`
 LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1)
 LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang.')
 WHERE p.`id_product` '.$productPool);

Link to comment
Share on other sites

Wow! cuanta información en tan poco tiempo! Voy a empezar por la última respuesta, en la que se refiere a search

 

/classes/Search.php

 

no aparece description y modificando la query tal y como me indicas se consigue que en la búsqueda aparezca la descripción (tal y como me gustaría que pasara en product-list)

 

ahora si nos vamos a

/classes/Category.php

 

efectivamente aparece todo tal y cual me pones aquí pero no incluye la descripción de ninguna de las maneras. A parte de eso me confunde un poco que sea category el que accede a un atributo del producto, aunque claro se está viendo una categoría...

La cosa es esa, que parece estar correcto con lo que debería de aparecer la descripción larga al igual que la corta, pero nada

Link to comment
Share on other sites

Bueno estas cosas pasan hasta en las mejores familias... anteriormente había habilitado el reporte de errores y no había tenido ningún problema, ahora en cambio me ha dado un error con blocklayered y desactivandolo me aparecen sin ningún problema usando {$product.description} , así que todo solucionado, bueno me toca ver que pasa con la navegación por facetas pero eso es otro cantar.

 

Muchas gracias!

Link to comment
Share on other sites

Bueno estas cosas pasan hasta en las mejores familias... anteriormente había habilitado el reporte de errores y no había tenido ningún problema, ahora en cambio me ha dado un error con blocklayered y desactivandolo me aparecen sin ningún problema usando {$product.description} , así que todo solucionado, bueno me toca ver que pasa con la navegación por facetas pero eso es otro cantar.

 

Muchas gracias!

 

Ummm, y si dentro del fichero:

 

/modules/blocklayered.php

 

Buscas esto:

 

pl.available_later, pl.description_short, pl.link_rewrite, pl.name,

 

y lo dejas asi:

 

pl.available_later, pl.description_short, pl.description, pl.link_rewrite, pl.name,

 

¿funciona?

Link to comment
Share on other sites

Ummm, y si dentro del fichero:

 

/modules/blocklayered.php

 

Buscas esto:

 

pl.available_later, pl.description_short, pl.link_rewrite, pl.name,

 

y lo dejas asi:

 

pl.available_later, pl.description_short, pl.description, pl.link_rewrite, pl.name,

 

¿funciona?

 

Pues funciona a la perfección y me elimina el warning que me estaba dando

Link to comment
Share on other sites

Pues funciona a la perfección y me elimina el warning que me estaba dando

Un placer ayudarte y servirte!

 

Si das el tema como solucionado, edita el titulo del tema, editando el primer mensaje, pulsando en editar, y después en "Usar editor completo", añadiendo la palabra "Solucionado" al titulo, esto ayudara, a mantener una mayor organización en el foro.

 

Un saludo y recuerda que estaremos en el foro, para guiarte por este mundo oscuro y tenebroso.

Link to comment
Share on other sites

Un placer ayudarte y servirte!

 

Si das el tema como solucionado, edita el titulo del tema, editando el primer mensaje, pulsando en editar, y después en "Usar editor completo", añadiendo la palabra "Solucionado" al titulo, esto ayudara, a mantener una mayor organización en el foro.

 

Un saludo y recuerda que estaremos en el foro, para guiarte por este mundo oscuro y tenebroso.

 

Gracias! Ahora mismo lo marco como solucionado. ya puestos ¿me podrías decir porque faltaba pedir la descripción en esa consulta? porque he probado con una instalación limpia y no he tenido que cambiar nada para que me muestre la descripción.

 

Un saludo

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...