lukasz_biovico Posted November 15, 2013 Share Posted November 15, 2013 Hej witam Zwracam się do was z prośbą ponieważ nie mogę sobie poradzić z pewnym zagadnieniem, a dość długo już sam nad nim siedzę. Chodzi mi o moduł features product który pojawia się na stronie głównej sklepu - są w nim pokazane produkty które są promowane, nowe , promocyjne itp. Wszystkie produkty (wygląd css) mają ten sam styl rozmieszczenia itp. natomiast promocyjne mają dodatek - Niższa cena. Niestety nie posiadają one odrębnego stylu css. Chciałbym zrobić coś takiego aby własnie tylko produkty promocyjne wyświetlały się w innym stylu niż pozostałe. Czyli produkty prezentowane na stronie wyglądają identycznie natomiast promocyjne mają np. tło czerwone bądź inne. czy jest jakaś możliwość aby korzystały one z innej klasy css? tak aby można ją zedytować do własnych celów? Link to comment Share on other sites More sharing options...
presta4you.com Posted November 15, 2013 Share Posted November 15, 2013 Jeżeli chodzi o moduł homefeatures to ma on tylko możliwość wyświetlenia produktów promowanych, czyli znajdujących się w kategorii bazowej. Tobie chyba chodzi o inny moduł. Sprawdź dokładnie. Co do zmiany raczej da się to zrobić, ale musisz podać nazwę modułu lub umieścić strukturę pliku .tpl, żeby ją przeanalizować. Link to comment Share on other sites More sharing options...
Krystian Podemski Posted November 16, 2013 Share Posted November 16, 2013 (edited) Najprościej (chociaż bez sprawdzenia wszystkich elementów układanki): <li class="standardoweklasy {if $product.reduction != 0}mojaklasawyrozniajaca{/if}"> Można także nawet wczytać osobny plik .tpl pod tym warunkiem i wiele innych rzeczy. Edited November 16, 2013 by Krystian Podemski (see edit history) Link to comment Share on other sites More sharing options...
lukasz_biovico Posted November 18, 2013 Author Share Posted November 18, 2013 Witam Już tłumaczę co i jak. Sprawa wygląda tak że chodzi mi własnie o moduł homefeatured - z tego co widzę korzysta on z pliku product-list.tpl. Oczywiście moduł homefeatured wyświetla produkty promocyjne i chciałbym właśnie zrobić to tak aby produkty promocyjne wyświetlały się za pomocą innego stylu css (były zakodowane za pomocą innego diva, clasy itp). I tu właśnie pytanie do was czy można to jakoś szybko zmienić, dodać dla produktów promocyjnych inny styl css (a chodzi mi to dosłownie o inne tło dla tych produktów - wyróżnienie). Z góry dziękuje i pozdrawiam. Poniżej plik product-list.tpl który posiadam {* * 2007-2012 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-2012 PrestaShop SA * @version Release: $Revision: 7457 $ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA *} {if isset($products)} <!-- Products list --> <ul id="product_list" class="clear thumbnails"> {foreach from=$products item=product name=loop} <li class="ajax_block_product span3 {if $smarty.foreach.loop.index%4 == 0}alpha{/if}"> <div class="left_block"> <a href="{$product.link|escape:'htmlall':'UTF-8'}" class="product_img_link" title="{$product.name|escape:'htmlall':'UTF-8'}"> <img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home_atch')}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" class="scale"/> </a> {if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}<span class="discount label">{l s='On sale!'}</span> {elseif isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}<span class="discount label">{l s='Reduced price!'}</span>{/if} {if isset($product.new) && $product.new == 1}<span class="new">{l s='New'}</span>{/if} {if isset($product.online_only) && $product.online_only}<span class="online_only label">{l s='Online only!'}</span>{/if} </div> <div class="right_block"> <h3><a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.name|escape:'htmlall':'UTF-8'}">{$product.name|escape:'htmlall':'UTF-8'|truncate:35:'...'}</a></h3><!--<span style="font-size:1px; color:#666">{$product.category|escape:'htmlall':'UTF-8'|truncate:35:'...'}</span> --> <p class="product_desc"><a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.description_short|strip_tags:'UTF-8'|truncate:360:'...'}" >{$product.description_short|strip_tags:'UTF-8'|truncate:100:'...'}</a></p> {if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))} <div class="plavailability"> {if ($product.quantity > 1)}<span class="availability icon-meter-fast availabvisu">{l s='Available'}</span> {else} {if ($product.quantity > 0)}<span class="option icon-meter-medium availabvisu">{l s='stock limited'}</span> {else} <span class="outofstock icon-meter-slow availabvisu">{l s='Out of stock'}</span> {/if} {/if} </div> <div class="content_price"> {if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}<span class="price" style="display: inline;">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>{if isset($product.price_without_reduction) && $product.price_without_reduction && isset($product.reduction) && $product.reduction }<span class="oldprice">{convertPrice price=$product.price_without_reduction}</span>{/if}{/if} </div> {/if} {if $product.id_product_attribute != 0 && (isset($add_prod_display) && ($add_prod_display != 1))} <a class="button lnk_view exclusive" href="{$product.link|escape:'htmlall':'UTF-8'}" title="{l s='View'}">{l s='View'}</a> {elseif $product.available_for_order && !isset($restricted_country_mode) && $product.minimal_quantity <= 1 && $product.customizable != 2 && !$PS_CATALOG_MODE} {if ($product.allow_oosp || $product.quantity > 0)} {if isset($static_token)} <a class="button ajax_add_to_cart_button exclusive" rel="ajax_id_product_{$product.id_product|intval}" href="{$link->getPageLink('cart',false, NULL, "add&id_product={$product.id_product|intval}&token={$static_token}", false)}" title="{l s='Add to cart'}">{l s='Add to cart'}</a> {else} <a class="button ajax_add_to_cart_button exclusive" rel="ajax_id_product_{$product.id_product|intval}" href="{$link->getPageLink('cart',false, NULL, "add&id_product={$product.id_product|intval}", false)}" title="{l s='Add to cart'}">{l s='Add to cart'}</a> {/if} {else} <span class="exclusive" >{l s='Add to cart'}</span> {/if} {/if} {if isset($comparator_max_item) && $comparator_max_item} <p class="compare"> <input type="checkbox" class="comparator" id="comparator_item_{$product.id_product}" value="comparator_item_{$product.id_product}" {if isset($compareProducts) && in_array($product.id_product, $compareProducts)}checked="checked"{/if} /> <label for="comparator_item_{$product.id_product}">{l s='Select to compare'}</label> </p> {/if} </div> </li> {/foreach} </ul> <!-- /Products list --> {/if} Link to comment Share on other sites More sharing options...
vekia Posted November 18, 2013 Share Posted November 18, 2013 homefeatured z product-list.tpl ? chyba masz jakąś modyfikację, możesz pokazać jak wygląda funkcja public function hookdisplayHome($params) w pliku homefeatured.php ? Link to comment Share on other sites More sharing options...
lukasz_biovico Posted November 20, 2013 Author Share Posted November 20, 2013 Hej Vekia dla pewności prześlę Ci całość tego pliku: Jakbyś mógł się temu przyjrzeć ... <?php /* * 2007-2012 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-2012 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 HomeFeatured extends Module { private $_html = ''; private $_postErrors = array(); function __construct() { $this->name = 'homefeatured'; $this->tab = 'front_office_features'; $this->version = '0.9'; $this->author = 'PrestaShop'; $this->need_instance = 0; parent::__construct(); $this->displayName = $this->l('Featured Products on the homepage'); $this->description = $this->l('Displays Featured Products in the middle of your homepage.'); } function install() { if (!Configuration::updateValue('HOME_FEATURED_NBR', 8) || !parent::install() || !$this->registerHook('displayHome') || !$this->registerHook('header')) return false; return true; } public function getContent() { $output = '<h2>'.$this->displayName.'</h2>'; if (Tools::isSubmit('submitHomeFeatured')) { $nbr = (int)(Tools::getValue('nbr')); if (!$nbr OR $nbr <= 0 OR !Validate::isInt($nbr)) $errors[] = $this->l('Invalid number of products'); else Configuration::updateValue('HOME_FEATURED_NBR', (int)($nbr)); if (isset($errors) AND sizeof($errors)) $output .= $this->displayError(implode('<br />', $errors)); else $output .= $this->displayConfirmation($this->l('Settings updated')); } 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> <p>'.$this->l('In order to add products to your homepage, just add them to the "home" category.').'</p><br /> <label>'.$this->l('Number of products displayed').'</label> <div class="margin-form"> <input type="text" size="5" name="nbr" value="'.Tools::safeOutput(Tools::getValue('nbr', (int)(Configuration::get('HOME_FEATURED_NBR')))).'" /> <p class="clear">'.$this->l('The number of products displayed on homepage (default: 10).').'</p> </div> <center><input type="submit" name="submitHomeFeatured" value="'.$this->l('Save').'" class="button" /></center> </fieldset> </form>'; return $output; } public function hookDisplayHeader($params) { $this->hookHeader($params); } public function hookHeader($params) { $this->context->controller->addCss($this->_path.'homefeatured.css', 'all'); } public function hookDisplayHome($params) { $category = new Category(Context::getContext()->shop->getCategory(), (int)Context::getContext()->language->id); $nb = (int)(Configuration::get('HOME_FEATURED_NBR')); $products = $category->getProducts((int)Context::getContext()->language->id, 1, ($nb ? $nb : 10)); $this->smarty->assign(array( 'products' => $products, 'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'), 'homeSize' => Image::getSize(ImageType::getFormatedName('home')), )); return $this->display(__FILE__, 'homefeatured.tpl'); } } Link to comment Share on other sites More sharing options...
vekia Posted November 20, 2013 Share Posted November 20, 2013 product-list.tpl nie widzę, ale homefeatured.tpl jest, więc jest to standardowy moduł który korzysta z homefeatured.tpl Link to comment Share on other sites More sharing options...
lukasz_biovico Posted November 20, 2013 Author Share Posted November 20, 2013 Hej, Wiecie chyba troszkę się zaplątaliśmy w wątku (albo ja się pogubiłem w co nie wątpie To może inaczej - wiecie może w jaki sposób wykonać modyfikację która pozwalałaby dać inny styl css dla produktów promocyjnych w preście ? Tak aby produkty promocyjne, wyświetlane na stronie głównej, bądź na stronach kategorii miały właśnie inny styl. Jak narazie lista produktów która wyświetla się na stronie korzysta z jednego stylu a chciałbym to zmienić. Link to comment Share on other sites More sharing options...
vekia Posted November 20, 2013 Share Posted November 20, 2013 produkty promocyjne to nie produkty promowane. Trzeba tutaj postawić wyraźną kreskę. produkty promowane ustalasz dopisując je do kategorii "HOME", te produkty są promowane na stronie głównej za pomocą modułu homefeatured i pliku homefeatured.tpl produkty promocyjne to produkty, które mają ustaloną promocyjną cenę (UWAGA! nie są to produkty które mają zaznaczone "on sale"!), te produkty wyświetlane są na stronie promocji za pośrednictwem pliku szablonu tj. product-list.tpl Mamy więc dwie różne rzeczy które nie są w żaden sposób ze sobą powiązane. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now