Pabloladen Posted July 24, 2013 Share Posted July 24, 2013 Buenas! Podría aparecer los precios de los productos en el modulo "PRODUCTOS MÁS VISTOS"? Muchisimas gracias chicos un abrazo Link to comment Share on other sites More sharing options...
nadie Posted July 24, 2013 Share Posted July 24, 2013 Buenas! Podría aparecer los precios de los productos en el modulo "PRODUCTOS MÁS VISTOS"? Muchisimas gracias chicos un abrazo http://www.prestasho...ost__p__1238343 Hello, i am using 1.5.3.1 and standart blockviewd module. It is done in this way. Added blockviewed.php around line 138: $product_properties = Product::getProductProperties($params['cookie']->id_lang,array('id_product' => $obj->id),null); $obj->price = $product_properties['price']; $obj->price_without_reduction = $product_properties['price_without_reduction']; $obj->specific_prices = $product_properties['specific_prices']; $obj->static_token = Tools::getToken(false); Also in blockviewed.tpl in theme folder: <p> {convertPrice price=$viewedProduct->price}</p> {if $viewedProduct->specific_prices AND $viewedProduct->specific_prices.reduction_type == 'percentage'} <p> {convertPrice price=$viewedProduct->price_without_reduction}</p> <p> -{$viewedProduct->specific_prices.reduction*100}% </p> Link to comment Share on other sites More sharing options...
Pabloladen Posted July 24, 2013 Author Share Posted July 24, 2013 http://www.prestasho...ost__p__1238343 lo he probado nadie y nada, no me carga la web , se me queda en blanco Link to comment Share on other sites More sharing options...
nadie Posted July 24, 2013 Share Posted July 24, 2013 lo he probado nadie y nada, no me carga la web , se me queda en blanco ¿En blanco? Habilita el reporte de errores: http://www.prestashop.com/forums/index.php?/topic/232477-%c2%bfque-hacer-cuando-se-queda-la-pantalla-en-blanco-en-prestashop/ ¿Como has dejado los ficheros? (Pega contenido) Link to comment Share on other sites More sharing options...
Pabloladen Posted July 24, 2013 Author Share Posted July 24, 2013 El php: <?php /* * 2007-2013 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2013 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA */ if (!defined('_PS_VERSION_')) exit; class BlockViewed extends Module { private $_html = ''; private $_postErrors = array(); public function __construct() { $this->name = 'blockviewed'; $this->tab = 'front_office_features'; $this->version = 0.9; $this->author = 'PrestaShop'; $this->need_instance = 0; parent::__construct(); $this->displayName = $this->l('Viewed products block.'); $this->description = $this->l('Adds a block displaying recently viewed products.'); } public function install() { if (!parent::install() || !$this->registerHook('leftColumn') || !$this->registerHook('header') || !Configuration::updateValue('PRODUCTS_VIEWED_NBR', 2)) return false; return true; } public function getContent() { $output = '<h2>'.$this->displayName.'</h2>'; if (Tools::isSubmit('submitBlockViewed')) { if (!($productNbr = Tools::getValue('productNbr')) || empty($productNbr)) $output .= '<div class="alert error">'.$this->l('You must fill in the \'Products displayed\' field.').'</div>'; elseif ((int)($productNbr) == 0) $output .= '<div class="alert error">'.$this->l('Invalid number.').'</div>'; else { Configuration::updateValue('PRODUCTS_VIEWED_NBR', (int)$productNbr); $output .= '<div class="conf confirm">'.$this->l('Settings updated').'</div>'; } } return $output.$this->displayForm(); } public function displayForm() { $output = ' <form action="'.Tools::safeOutput($_SERVER['REQUEST_URI']).'" method="post"> <fieldset><legend><img src="'.$this->_path.'logo.gif" alt="" title="" />'.$this->l('Settings').'</legend> <label>'.$this->l('Products displayed').'</label> <div class="margin-form"> <input type="text" name="productNbr" value="'.(int)Configuration::get('PRODUCTS_VIEWED_NBR').'" /> <p class="clear">'.$this->l('Define the number of products displayed in this block.').'</p> </div> <center><input type="submit" name="submitBlockViewed" value="'.$this->l('Save').'" class="button" /></center> </fieldset> </form>'; return $output; } public function hookRightColumn($params) { $id_product = (int)Tools::getValue('id_product'); $productsViewed = (isset($params['cookie']->viewed) && !empty($params['cookie']->viewed)) ? array_slice(explode(',', $params['cookie']->viewed), 0, Configuration::get('PRODUCTS_VIEWED_NBR')) : array(); if (count($productsViewed)) { $defaultCover = Language::getIsoById($params['cookie']->id_lang).'-default'; $productIds = implode(',', $productsViewed); $productsImages = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' SELECT MAX(image_shop.id_image) id_image, p.id_product, il.legend, product_shop.active, pl.name, pl.description_short, pl.link_rewrite, cl.link_rewrite AS category_rewrite FROM '._DB_PREFIX_.'product p '.Shop::addSqlAssociation('product', 'p').' LEFT JOIN '._DB_PREFIX_.'product_lang pl ON (pl.id_product = p.id_product'.Shop::addSqlRestrictionOnLang('pl').') LEFT JOIN '._DB_PREFIX_.'image i ON (i.id_product = p.id_product)'. Shop::addSqlAssociation('image', 'i', false, 'image_shop.cover=1').' LEFT JOIN '._DB_PREFIX_.'image_lang il ON (il.id_image = image_shop.id_image) LEFT JOIN '._DB_PREFIX_.'category_lang cl ON (cl.id_category = product_shop.id_category_default'.Shop::addSqlRestrictionOnLang('cl').') WHERE p.id_product IN ('.$productIds.') AND pl.id_lang = '.(int)($params['cookie']->id_lang).' AND cl.id_lang = '.(int)($params['cookie']->id_lang).' GROUP BY product_shop.id_product' ); $productsImagesArray = array(); foreach ($productsImages as $pi) $productsImagesArray[$pi['id_product']] = $pi; $productsViewedObj = array(); foreach ($productsViewed as $productViewed) { $obj = (object)'Product'; if (!isset($productsImagesArray[$productViewed]) || (!$obj->active = $productsImagesArray[$productViewed]['active'])) continue; else { $obj->id = (int)($productsImagesArray[$productViewed]['id_product']); $obj->id_image = (int)$productsImagesArray[$productViewed]['id_image']; $obj->cover = (int)($productsImagesArray[$productViewed]['id_product']).'-'.(int)($productsImagesArray[$productViewed]['id_image']); $obj->legend = $productsImagesArray[$productViewed]['legend']; $obj->name = $productsImagesArray[$productViewed]['name']; $obj->description_short = $productsImagesArray[$productViewed]['description_short']; $obj->link_rewrite = $productsImagesArray[$productViewed]['link_rewrite']; $obj->category_rewrite = $productsImagesArray[$productViewed]['category_rewrite']; $product_properties = Product::getProductProperties($params['cookie']->id_lang,array('id_product' => $obj->id),null); $obj->price = $product_properties['price']; $obj->price_without_reduction = $product_properties['price_without_reduction']; $obj->specific_prices = $product_properties['specific_prices']; $obj->static_token = Tools::getToken(false); // $obj is not a real product so it cannot be used as argument for getProductLink() $obj->product_link = $this->context->link->getProductLink($obj->id, $obj->link_rewrite, $obj->category_rewrite); if (!isset($obj->cover) || !$productsImagesArray[$productViewed]['id_image']) { $obj->cover = $defaultCover; $obj->legend = ''; } $productsViewedObj[] = $obj; } } if ($id_product && !in_array($id_product, $productsViewed)) { // Check if the user to the right of access to this product $product = new Product((int)$id_product); if ($product->checkAccess((int)$this->context->customer->id)) array_unshift($productsViewed, $id_product); } $viewed = ''; foreach ($productsViewed as $id_product_viewed) $viewed .= (int)($id_product_viewed).','; $params['cookie']->viewed = rtrim($viewed, ','); if (!count($productsViewedObj)) return; $this->smarty->assign(array( 'productsViewedObj' => $productsViewedObj, 'mediumSize' => Image::getSize('medium'))); return $this->display(__FILE__, 'blockviewed.tpl'); } elseif ($id_product) $params['cookie']->viewed = (int)($id_product); return; } public function hookLeftColumn($params) { return $this->hookRightColumn($params); } public function hookHeader($params) { $this->context->controller->addCSS(($this->_path).'blockviewed.css', 'all'); } } El tpl: {* * 2007-2013 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2013 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA *} <!-- Block Viewed products --> <div id="viewed-products_block_left" class="block products_block"> <p class="title_block">{l s='Viewed products' mod='blockviewed'}</p> <div class="block_content"> <ul class="products clearfix"> {foreach from=$productsViewedObj item=viewedProduct name=myLoop} <li class="clearfix{if $smarty.foreach.myLoop.last} last_item{elseif $smarty.foreach.myLoop.first} first_item{else} item{/if}"> <a href="{$viewedProduct->product_link}" title="{l s='More about' mod='blockviewed'} {$viewedProduct->name|escape:html:'UTF-8'}" class="content_img"> <img src="{if isset($viewedProduct->id_image) && $viewedProduct->id_image}{$link->getImageLink($viewedProduct->link_rewrite, $viewedProduct->cover, 'medium_default')}{else}{$img_prod_dir}{$lang_iso}-default-medium_default.jpg{/if}" alt="{$viewedProduct->legend|escape:html:'UTF-8'}" /> </a> <div class="text_desc"> <p> {convertPrice price=$viewedProduct->price}</p> {if $viewedProduct->specific_prices AND $viewedProduct->specific_prices.reduction_type == 'percentage'} <p> {convertPrice price=$viewedProduct->price_without_reduction}</p> <p> -{$viewedProduct->specific_prices.reduction*100}% </p> <p class="s_title_block"><a href="{$viewedProduct->product_link}" title="{l s='More about' mod='blockviewed'} {$viewedProduct->name|escape:html:'UTF-8'}">{$viewedProduct->name|truncate:14:'...'|escape:html:'UTF-8'}</a></p> <p><a href="{$viewedProduct->product_link}" title="{l s='More about' mod='blockviewed'} {$viewedProduct->name|escape:html:'UTF-8'}">{$viewedProduct->description_short|strip_tags:'UTF-8'|truncate:44}</a></p> </div> </li> {/foreach} </ul> </div> </div> Muchas gracias tio Link to comment Share on other sites More sharing options...
Recommended Posts