chupetite Posted May 20, 2013 Share Posted May 20, 2013 (edited) 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 May 20, 2013 by chupetite (see edit history) Link to comment Share on other sites More sharing options...
nadie Posted May 20, 2013 Share Posted May 20, 2013 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. 1 Link to comment Share on other sites More sharing options...
chupetite Posted May 20, 2013 Author Share Posted May 20, 2013 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 More sharing options...
nadie Posted May 20, 2013 Share Posted May 20, 2013 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 More sharing options...
chupetite Posted May 20, 2013 Author Share Posted May 20, 2013 ¿Usas la version 1.5? Estoy usando una versión anterior, la 1.4.8.2 Link to comment Share on other sites More sharing options...
nadie Posted May 20, 2013 Share Posted May 20, 2013 Estoy usando una versión anterior, la 1.4.8.2 Me instalare luego una 1.4.8.2 en mi servidor de pruebas y lo mirare por si las moscas. Un Saludo Link to comment Share on other sites More sharing options...
chupetite Posted May 20, 2013 Author Share Posted May 20, 2013 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 More sharing options...
nadie Posted May 20, 2013 Share Posted May 20, 2013 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 More sharing options...
nadie Posted May 20, 2013 Share Posted May 20, 2013 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 More sharing options...
chupetite Posted May 20, 2013 Author Share Posted May 20, 2013 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 More sharing options...
nadie Posted May 20, 2013 Share Posted May 20, 2013 ¿Has habilitado el reporte de errores: http://www.prestashop.com/forums/topic/232476-%C2%BFque-hacer-cuando-se-queda-la-pantalla-en-blanco-en-prestashop/ por si las moscas ? ¿? Link to comment Share on other sites More sharing options...
chupetite Posted May 20, 2013 Author Share Posted May 20, 2013 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 More sharing options...
chupetite Posted May 20, 2013 Author Share Posted May 20, 2013 ¿soy hoy la persona más torpe del mundo? ¿donde puedo editar el tema del hilo para marcarlo como solucionado? Link to comment Share on other sites More sharing options...
nadie Posted May 20, 2013 Share Posted May 20, 2013 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 More sharing options...
chupetite Posted May 20, 2013 Author Share Posted May 20, 2013 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 More sharing options...
nadie Posted May 20, 2013 Share Posted May 20, 2013 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 More sharing options...
chupetite Posted May 20, 2013 Author Share Posted May 20, 2013 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 More sharing options...
Recommended Posts