Jump to content

Produkty promocyjne wyróżnione za pomocą css - features product


lukasz_biovico

Recommended Posts

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

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

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

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

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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...