Jump to content

(Solucionado)Estrellas de valoracion en destacados de la home


neoset

Recommended Posts

Sabeis si existe algun modulo gratuito o un aporte de codigo que ponga las estrellas de valoracion de comentarios bajo los productos destacados del homepage y que se vean como en la mayoria de tiendas web.

Las estrellas de valoracion en la home bajo los productos es un reclamo enorme y hace subir las ventas, a dia de hoy casi todas las tiendas web las tienen pero en prestashop falta un modulo que venga por defecto para ese cometido.

Un saludo.

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

Lo que necesito es la manera de  enseñar las estrellas de valoracion y numero de comentarios de modo informativo en la home de la tienda de esta manera:

 

 

131017122207567082.png

Y es que tiene que haber una manera por defecto en prestashop de poder hacerlo pero no la encuentro.

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

¿Alguien sabria como generar el codigo para enseñar las estrellas de valoracion y numero de comentarios en el bloque productos destacados?, es lo unico que le falta a prestashop, muchisimas webs por no decir todas usan las estrellas en productos destacados de sus home:

http://www.amazon.es/b/ref=sa_menu_comp?ie=UTF8&node=937912031

http://www.pccomponentes.com/

http://www.pixmania.es/index.html

Pero prestashop no tiene esa opcion y Yotpo tampoco la tiene ademas de estar muy mal traducido.

Para el que entienda un poco de programacion no le llevara mas de 10 minutos plasmar las estrellas y el numero de comentarios en productos destacados de la home.

 

Muchas gracias.

Link to comment
Share on other sites

Vamos a seguir esta guía: http://nemops.com/prestashop-product-rating-product-list/ que esta preparada para el listado de productos, pero de igual modo sirve para los productos destacados con una pequeña adaptacion.

 

1º Paso que dice la guía.

 

Ir al fichero:

 

modules/productcomments/productcomments.php
Buscar esto:

 

 public function install()
{
if (!file_exists(dirname(__FILE__).'/'.self::INSTALL_SQL_FILE))
return false;
else if (!$sql = file_get_contents(dirname(__FILE__).'/'.self::INSTALL_SQL_FILE))
return false;
$sql = str_replace(array('PREFIX_', 'ENGINE_TYPE'), array(_DB_PREFIX_, _MYSQL_ENGINE_), $sql);
$sql = preg_split("/;\s*[\r\n]+/", trim($sql));

foreach ($sql as $query)
if (!Db::getInstance()->execute(trim($query)))
return false;
if (parent::install() == false ||
!$this->registerHook('productTab') ||
!$this->registerHook('extraProductComparison') ||
!$this->registerHook('productTabContent') ||
!$this->registerHook('header') ||
!$this->registerHook('productOutOfStock') ||
!Configuration::updateValue('PRODUCT_COMMENTS_MINIMAL_TIME', 30) ||
!Configuration::updateValue('PRODUCT_COMMENTS_ALLOW_GUESTS', 0) ||
!Configuration::updateValue('PRODUCT_COMMENTS_MODERATE', 1))
return false;
return true;
}

y dejarlo asi:

 

 public function install()
{
if (!file_exists(dirname(__FILE__).'/'.self::INSTALL_SQL_FILE))
return false;
else if (!$sql = file_get_contents(dirname(__FILE__).'/'.self::INSTALL_SQL_FILE))
return false;
$sql = str_replace(array('PREFIX_', 'ENGINE_TYPE'), array(_DB_PREFIX_, _MYSQL_ENGINE_), $sql);
$sql = preg_split("/;\s*[\r\n]+/", trim($sql));

foreach ($sql as $query)
if (!Db::getInstance()->execute(trim($query)))
return false;
if (parent::install() == false ||
!$this->registerHook('productTab') ||
!$this->registerHook('extraProductComparison') ||
!$this->registerHook('productTabContent') ||
!$this->registerHook('header') ||
!$this->registerHook('productOutOfStock') ||
         !$this->registerHook('productosDestacados') ||
!Configuration::updateValue('PRODUCT_COMMENTS_MINIMAL_TIME', 30) ||
!Configuration::updateValue('PRODUCT_COMMENTS_ALLOW_GUESTS', 0) ||
!Configuration::updateValue('PRODUCT_COMMENTS_MODERATE', 1))
return false;
return true;
}

Siguiente paso, editamos el fichero:

 

/themes/default/modules/homefeatured/homefeatured.tpl
Y añadimos esto:

 

{hook h='productosDestacados' idproduct=$product.id_product}
en la parte donde quieres que se impriman las estrellitas.

 

Por ejemplo antes de :

 

 {if $product.show_price AND !isset($restricted_country_mode) AND !$PS_CATALOG_MODE}<p class="price_container"><span class="price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span></p>{else}<div style="height:21px;"></div>{/if}

 

3º Paso

 

En el fichero:

 

/modules/productcomments/productcomments.php

Añada esto:

 

public function hookProductosDestacados($params)
{
require_once(dirname(__FILE__).'/ProductComment.php');
require_once(dirname(__FILE__).'/ProductCommentCriterion.php');

$id_product = $params['idproduct'];
$product_average = 0;

$grades = ProductComment::getAveragesByProduct($id_product, $this->context->language->id);
$criterions = ProductCommentCriterion::getByProduct($id_product, $this->context->language->id);
$grade_total = 0;

if (count($grades) > 0)
{
foreach ($criterions as $criterion)
{
if (isset($grades[$criterion['id_product_comment_criterion']]))
{
$grade_total += (float)($grades[$criterion['id_product_comment_criterion']]);
}
}

$product_average = $grade_total / count($criterions);
}

$this->context->smarty->assign('average_total', (int)$product_average);
return $this->display(__FILE__, '/destacados.tpl');

} 
---

 

Despues creamos en el directorio::

 

/modules/productcomments/
un fichero llamado:

 

destacados.tpl
Con este contenido:

 

<div class="star_content clearfix">
{section name="i" start=0 loop=5 step=1}
    {if $smarty.section.i.index lt $average_total}
                    <div class="star star_on"><a href=""></a></div>
    {else}
        <div class="star"><a href=""></a></div>         
    {/if}
{/section}
</div>
Ahora en el fichero:

 

homefeatured.css
Añades esto:

 

#featured-products_block_center li .star_content  
{
    display: inline-block;
    margin-bottom: 10px;
}
Luego lógicamente en el mismo homfeatured.css tienes que ampliar la altura (height) del:

 

#featured-products_block_center li
----

 

No me hago responsable de lo que pase y de si no funciona o dejar de funcionar. (Ni siquiera lo he probado)

  • Like 1
Link to comment
Share on other sites

Muchas gracias Victor aun no lo he probado pero se que funcionara.

Muchas gracias por el tiempo dedicado y espero que no te vallas definitivamente, mañana vere si funciona y pondre el tema como solucionado en cuanto este probado.

Link to comment
Share on other sites

Pues llevo tiempo intentandolo y no a funcionado de todas maneras gracias.

Tambien e intentado hacer lo que dice este post http://nemops.com/prestashop-product-rating-product-list/ pero tampoco me funciona.

Lo ideal seria ponerlo tanto en productos destacados como en la lista de productos pero nada ni en uno ni en otro.

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

Pues llevo tiempo intentandolo y no a funcionado de todas maneras gracias.

Tambien e intentado hacer lo que dice este post http://www.prestashop.com/forums/topic/274843-module-product-ratings-on-category-list-ps-15/ pero tampoco me funciona.

Lo ideal seria ponerlo tanto en productos destacados como en la lista de productos pero nada ni en uno ni en otro.

 

Ummmm pues parece que hubo fracaso absoluto. (Yo no probe el codigo que te he comentado, si me da por probarlo te aviso)

Link to comment
Share on other sites

Este script funciona en ps 1.5.X : En homefeatured.php en el hook DisplayHome

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));
			$link = new Link();
			foreach ($products as $p) {
				$query_sum = 'SELECT COUNT(*) as sum FROM '._DB_PREFIX_.'product_comment WHERE id_product = '.$p['id_product'];
				$sum_votes = Db::getInstance()->getValue($query_sum);
				
				$query_grades = 'SELECT SUM(grade) as grades FROM '._DB_PREFIX_.'product_comment WHERE id_product = '.$p['id_product'];
				$grades = Db::getInstance()->getValue($query_grades);
				
				if ($sum_votes > 0)
					$star = floor($grades / $sum_votes);
				else
					$star = 0;
		
				if ($star > 0) {
					$url_product = $link->getProductLink($p['id_product']).'#idTab5';
					$stars[$p['id_product']] .= '<a href="'.$url_product.'">';
					for ($i=1; $i<=5; $i++) {
						if ($star >= $i)
							$stars[$p['id_product']] .= '<div class="star star_on"></div>';
						else
							$stars[$p['id_product']] .= '<div class="star star_off"></div>';
					}
		
					$stars[$p['id_product']] .= '('.$sum_votes.')</a>';
				}
		
				
			}
				
		
			$this->smarty->assign(array(
					'products' => $products,
					'stars' => $stars,
					'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'),
					'homeSize' => Image::getSize('home_default'),
			));
		
			return $this->display(__FILE__, 'homefeatured.tpl');
		
	}

Luego en el homefeatured.tpl (en modules/homefeatured de tu tema p.ej), tienes esta nueva variable smarty stars

 

p.ej

<div class="featured_box">   
                    	<h5><a class="product_link" href="{$product.link}" title="{$product.name|escape:'htmlall':'UTF-8'}">{$product.name|truncate:28:'...'|escape:'htmlall':'UTF-8'}</a></h5>
                        {if $product.show_price AND !isset($restricted_country_mode) AND !$PS_CATALOG_MODE}<p class="price_container"><span class="price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>   {if $product.price_without_reduction != $product.price}<span class="price-drop-feacherd">{convertPrice price=$product.price_without_reduction}</span>{/if}
                        <div class="star_content">
                        	{if isset($stars[$product.id_product])} {$stars[$product.id_product]} {/if}                       
                        </div>

Esto se renderiza de forma que p.ej tenemos 4 estrellas con un link a los comentarios:

 

40p9.jpg

 

Los estilos son una estrella llena o vacía de background, supongo que tu tema ya lo debe tener.

  • Like 1
Link to comment
Share on other sites

Este script funciona en ps 1.5.X : En homefeatured.php en el hook DisplayHome

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));
			$link = new Link();
			foreach ($products as $p) {
				$query_sum = 'SELECT COUNT(*) as sum FROM '._DB_PREFIX_.'product_comment WHERE id_product = '.$p['id_product'];
				$sum_votes = Db::getInstance()->getValue($query_sum);
				
				$query_grades = 'SELECT SUM(grade) as grades FROM '._DB_PREFIX_.'product_comment WHERE id_product = '.$p['id_product'];
				$grades = Db::getInstance()->getValue($query_grades);
				
				if ($sum_votes > 0)
					$star = floor($grades / $sum_votes);
				else
					$star = 0;
		
				if ($star > 0) {
					$url_product = $link->getProductLink($p['id_product']).'#idTab5';
					$stars[$p['id_product']] .= '<a href="'.$url_product.'">';
					for ($i=1; $i<=5; $i++) {
						if ($star >= $i)
							$stars[$p['id_product']] .= '<div class="star star_on"></div>';
						else
							$stars[$p['id_product']] .= '<div class="star star_off"></div>';
					}
		
					$stars[$p['id_product']] .= '('.$sum_votes.')</a>';
				}
		
				
			}
				
		
			$this->smarty->assign(array(
					'products' => $products,
					'stars' => $stars,
					'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'),
					'homeSize' => Image::getSize('home_default'),
			));
		
			return $this->display(__FILE__, 'homefeatured.tpl');
		
	}
Luego en el homefeatured.tpl (en modules/homefeatured de tu tema p.ej), tienes esta nueva variable smarty stars

 

p.ej

<div class="featured_box">   
                    	<h5><a class="product_link" href="{$product.link}" title="{$product.name|escape:'htmlall':'UTF-8'}">{$product.name|truncate:28:'...'|escape:'htmlall':'UTF-8'}</a></h5>
                        {if $product.show_price AND !isset($restricted_country_mode) AND !$PS_CATALOG_MODE}<p class="price_container"><span class="price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>   {if $product.price_without_reduction != $product.price}<span class="price-drop-feacherd">{convertPrice price=$product.price_without_reduction}</span>{/if}
                        <div class="star_content">
                        	{if isset($stars[$product.id_product])} {$stars[$product.id_product]} {/if}                       
                        </div>
Esto se renderiza de forma que p.ej tenemos 4 estrellas con un link a los comentarios:

 

40p9.jpg

 

Los estilos son una estrella llena o vacía de background, supongo que tu tema ya lo debe tener.

 

Gracias por la información Enrique.

 

Ciertamente yo interprete mal la guía. (Un 0 para Nadie) xD

Link to comment
Share on other sites

Gracias por la información Enrique.

 

Ciertamente yo interprete mal la guía. (Un 0 para Nadie) xD

Creo que tu adaptación de la guía esta ok. Quizás neoset ha entendido literalmente lo de editar /themes/default/modules/homefeatured/homefeatured.tpl y no lo ha hecho en su tema que es donde le tocaría hacerlo?

 

O quizás no ha reinstalado el módulo productcomments para que registre el nuevo hook?

Edited by Enrique Gómez (see edit history)
Link to comment
Share on other sites

Creo que tu adaptación de la guía esta ok. Quizás neoset ha entendido literalmente lo de editar /themes/default/modules/homefeatured/homefeatured.tpl y no lo ha hecho en su tema que es donde le tocaría hacerlo?

 

En realidad la adaptación que hice ni la he probado, fui pegando trozos del post de nemo en el foro, por lo que no descarto que en la adaptación haya algo maligno, porque ni la he probado.

Link to comment
Share on other sites

Seguramente falta que reinstale el módulo... Es lo único que creo que falta en tu adaptación.

 

Ummmmm

 

Bueno, acabo de probar la adaptación que puse arriba, y salen las estrellas, pero no se ponen amarillas cuando votas. (ummm)

Link to comment
Share on other sites

Ninguna de las dos formas permite votar.... sólo lo muestra, en mi caso existe un link que te envía a la sección de comentarios. Pero vamos que es meramente informativo.

 

Cierto, tiene toda su logica, ya que las votaciones se hacen al escribir el comentario del producto. xD

 

Pues entonces si me aparecían las estrellas... ¿Entonces neoset, dijo que no se le veian las estrellas o que no podia votar desde las estrellas?

Link to comment
Share on other sites

Pues llevo tiempo intentandolo y no a funcionado de todas maneras gracias.

Tambien e intentado hacer lo que dice este post http://nemops.com/prestashop-product-rating-product-list/ pero tampoco me funciona.

Lo ideal seria ponerlo tanto en productos destacados como en la lista de productos pero nada ni en uno ni en otro.

 

¿Ejecutastes el flush compile: http://www.prestashop.com/forums/topic/238282-modulo-flush-caches-compile-ps15/ para limpiar tanto cache smarty como compile smarty?

 

¿No te aparecen las estrellas o es otra cosa?

Link to comment
Share on other sites

¿Ejecutastes el flush compile: http://www.prestashop.com/forums/topic/238282-modulo-flush-caches-compile-ps15/ para limpiar tanto cache smarty como compile smarty?

 

¿No te aparecen las estrellas o es otra cosa?

 

Perdonad por la tardanza en contestar, sí, he ejecutado el flush compile y tambien he reinstalado el modulo productcomments (desinstalar y volver a instalar) aun asi a mi no me a funcionado ninguna de las 2 versiones (version de nadie y version de Enrique Gómez) y es que no se me dan bien estas cosas, sigo los pasos al pie de la letra pero al final la pagina del front me sale en blanco.

Coloco paso a paso lo que he hecho y asi haber si dais con mi fallo:

 

Version de Enrique Gómez-

 

Version de Prestashop 1.5.6 en local, version limpia instalada especialmente para este proposito con el tema por defecto (default), sin ningun otro tema, Forzar compilacion y usar cache (desactivado).

1- Instalo el modulo Comentario sobre el producto (productcomments)

2- Me voy directo a prestashop/modules/homefeatured/homefeatured.php y cambio el hook DisplayHome dejandolo como pone en las instrucciones, sobreescribiendo desde:

public function hookDisplayHome($params) incluido, asta public function hookAddProduct($params) no incluido.

Hasta aqui el front funciona perfectamente pero desde este paso creo que es donde no consigo ubicar la nueva variable.

3- Luego me voy a prestashop/themes/default/modules/homefeatured/homefeatured.tpl y añado la variable smarty:

 

<div class="featured_box">

    <h5><a class="product_link" href="{$product.link}" title="{$product.name|escape:'htmlall':'UTF-8'}">{$product.name|truncate:28:'...'|escape:'htmlall':'UTF-8'}</a></h5>

{if $product.show_price AND !isset($restricted_country_mode) AND !$PS_CATALOG_MODE}<p class="price_container"><span class="price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span> {if $product.price_without_reduction != $product.price}<span class="price-drop-feacherd">{convertPrice price=$product.price_without_reduction}</span>{/if}

<div class="star_content">

    {if isset($stars[$product.id_product])} {$stars[$product.id_product]} {/if}

</div>

 

 

Justo despues de <!-- MODULE Home Featured Products --> con un salto de linea.

He intentado ponerla en medio, al principio y al final pero nada me sale el front como pagina en blanco.

4- Luego paso el  flush compile y reinstalo (desinstalar y volver a instalar) incluso lo he reiniciado el modulo Comentario sobre el producto (productcomments) pero la pagina del fron office me sigue en todos los casos saliendo en blanco.

 

*Dejo los 2 archivos modificados para que veais cual es el fallo.

*Uno se llama homefeatured.php y el otro es el .tpl pero dentro de un php porque no habia manera de subir el .tpl, es el homefeatured.tpl.php

 

Muchisimas gracias por la paciencia y perdonad por las molestias.

 

 

homefeatured.php

homefeatured.tpl.php

Link to comment
Share on other sites

Le hecho un vistazo

 

 

Edit. El problema es el tpl. Lo de la estrella hay que ponerlo dentro de el bucle. pej debajo de el nombre del producto. P.ej

<!-- MODULE Home Featured Products -->

<div id="featured-products_block_center" class="block products_block clearfix">
	<p class="title_block">{l s='Featured products' mod='homefeatured'}</p>
	{if isset($products) AND $products}
		<div class="block_content">
			{assign var='liHeight' value=250}
			{assign var='nbItemsPerLine' value=4}
			{assign var='nbLi' value=$products|@count}
			{math equation="nbLi/nbItemsPerLine" nbLi=$nbLi nbItemsPerLine=$nbItemsPerLine assign=nbLines}
			{math equation="nbLines*liHeight" nbLines=$nbLines|ceil liHeight=$liHeight assign=ulHeight}
			<ul style="height:{$ulHeight}px;">
			{foreach from=$products item=product name=homeFeaturedProducts}
				{math equation="(total%perLine)" total=$smarty.foreach.homeFeaturedProducts.total perLine=$nbItemsPerLine assign=totModulo}
				{if $totModulo == 0}{assign var='totModulo' value=$nbItemsPerLine}{/if}
				<li class="ajax_block_product {if $smarty.foreach.homeFeaturedProducts.first}first_item{elseif $smarty.foreach.homeFeaturedProducts.last}last_item{else}item{/if} {if $smarty.foreach.homeFeaturedProducts.iteration%$nbItemsPerLine == 0}last_item_of_line{elseif $smarty.foreach.homeFeaturedProducts.iteration%$nbItemsPerLine == 1} {/if} {if $smarty.foreach.homeFeaturedProducts.iteration > ($smarty.foreach.homeFeaturedProducts.total - $totModulo)}last_line{/if}">
					<a href="{$product.link|escape:'html'}" title="{$product.name|escape:html:'UTF-8'}" class="product_image"><img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home_default')|escape:'html'}" height="{$homeSize.height}" width="{$homeSize.width}" alt="{$product.name|escape:html:'UTF-8'}" />{if isset($product.new) && $product.new == 1}<span class="new">{l s='New' mod='homefeatured'}</span>{/if}</a>
					<p class="s_title_block"><a href="{$product.link|escape:'html'}" title="{$product.name|truncate:50:'...'|escape:'htmlall':'UTF-8'}">{$product.name|truncate:35:'...'|escape:'htmlall':'UTF-8'}</a></p>
					<div class="star_content">
                        	{if isset($stars[$product.id_product])} {$stars[$product.id_product]} {/if}                       
                    </div>
					<div class="product_desc"><a href="{$product.link|escape:'html'}" title="{l s='More' mod='homefeatured'}">{$product.description_short|strip_tags|truncate:65:'...'}</a></div>
					<div>
						<a class="lnk_more" href="{$product.link|escape:'html'}" title="{l s='View' mod='homefeatured'}">{l s='View' mod='homefeatured'}</a>
						{if $product.show_price AND !isset($restricted_country_mode) AND !$PS_CATALOG_MODE}<p class="price_container"><span class="price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span></p>{else}<div style="height:21px;"></div>{/if}
						
						{if ($product.id_product_attribute == 0 OR (isset($add_prod_display) AND ($add_prod_display == 1))) AND $product.available_for_order AND !isset($restricted_country_mode) AND $product.minimal_quantity == 1 AND $product.customizable != 2 AND !$PS_CATALOG_MODE}
							{if ($product.quantity > 0 OR $product.allow_oosp)}
							<a class="exclusive ajax_add_to_cart_button" rel="ajax_id_product_{$product.id_product}" href="{$link->getPageLink('cart')|escape:'html'}?qty=1&id_product={$product.id_product}&token={$static_token}&add" title="{l s='Add to cart' mod='homefeatured'}">{l s='Add to cart' mod='homefeatured'}</a>
							{else}
							<span class="exclusive">{l s='Add to cart' mod='homefeatured'}</span>
							{/if}
						{else}
							<div style="height:23px;"></div>
						{/if}
					</div>
				</li>
			{/foreach}
			</ul>
		</div>
	{else}
		<p>{l s='No featured products' mod='homefeatured'}</p>
	{/if}
</div>
<!-- /MODULE Home Featured Products -->

Edited by Enrique Gómez (see edit history)
  • Like 1
Link to comment
Share on other sites

Perfecto Enríque un 10 menuda máquina incluso trae enlace para ir directo a la pagina del producto pero hay un problema añadido y es que las estrellas me aparecen en gris todas como si no se hubiera votado o no copiara la media de la pagina del producto.

Otro detalle minimo seria que me llevara directo a los comentarios con la pestaña abierta pero bueno ese es solo un pequeño detalle, lo que mas importancia tiene es que saque el grado medio, osea copie el grado medio que sale en la pagina del producto y se vean el numero de estrellas de color que corresponden.

Eso mismo fue lo que dijo Victor que no salian en color, no es que vote desde ahi sino que de manera informativa no salen el numero de estrellas que corresponde, me explico:

Si yo voto 2 veces en pagina del producto a un producto por ej. dandole 4 estrellas y 5 estrellas la media tendria que ser 4 estrellas y tendria que verse reflejada ademas de en la pagina de producto tambien en Productos destacados, pero solo salen las estellas en gris sin voto.

Haber si puedes echarle un vistazo a eso.  :)

 

Muchisimas gracias Enríque.

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

Vamos a seguir esta guía: http://nemops.com/prestashop-product-rating-product-list/ que esta preparada para el listado de productos, pero de igual modo sirve para los productos destacados con una pequeña adaptacion.

 

1º Paso que dice la guía.

 

Ir al fichero:

 

modules/productcomments/productcomments.php
Buscar esto:

 

 public function install()
{
if (!file_exists(dirname(__FILE__).'/'.self::INSTALL_SQL_FILE))
return false;
else if (!$sql = file_get_contents(dirname(__FILE__).'/'.self::INSTALL_SQL_FILE))
return false;
$sql = str_replace(array('PREFIX_', 'ENGINE_TYPE'), array(_DB_PREFIX_, _MYSQL_ENGINE_), $sql);
$sql = preg_split("/;\s*[\r\n]+/", trim($sql));

foreach ($sql as $query)
if (!Db::getInstance()->execute(trim($query)))
return false;
if (parent::install() == false ||
!$this->registerHook('productTab') ||
!$this->registerHook('extraProductComparison') ||
!$this->registerHook('productTabContent') ||
!$this->registerHook('header') ||
!$this->registerHook('productOutOfStock') ||
!Configuration::updateValue('PRODUCT_COMMENTS_MINIMAL_TIME', 30) ||
!Configuration::updateValue('PRODUCT_COMMENTS_ALLOW_GUESTS', 0) ||
!Configuration::updateValue('PRODUCT_COMMENTS_MODERATE', 1))
return false;
return true;
}

y dejarlo asi:

 

 public function install()
{
if (!file_exists(dirname(__FILE__).'/'.self::INSTALL_SQL_FILE))
return false;
else if (!$sql = file_get_contents(dirname(__FILE__).'/'.self::INSTALL_SQL_FILE))
return false;
$sql = str_replace(array('PREFIX_', 'ENGINE_TYPE'), array(_DB_PREFIX_, _MYSQL_ENGINE_), $sql);
$sql = preg_split("/;\s*[\r\n]+/", trim($sql));

foreach ($sql as $query)
if (!Db::getInstance()->execute(trim($query)))
return false;
if (parent::install() == false ||
!$this->registerHook('productTab') ||
!$this->registerHook('extraProductComparison') ||
!$this->registerHook('productTabContent') ||
!$this->registerHook('header') ||
!$this->registerHook('productOutOfStock') ||
         !$this->registerHook('productosDestacados') ||
!Configuration::updateValue('PRODUCT_COMMENTS_MINIMAL_TIME', 30) ||
!Configuration::updateValue('PRODUCT_COMMENTS_ALLOW_GUESTS', 0) ||
!Configuration::updateValue('PRODUCT_COMMENTS_MODERATE', 1))
return false;
return true;
}

Siguiente paso, editamos el fichero:

 

/themes/default/modules/homefeatured/homefeatured.tpl
Y añadimos esto:

 

{hook h='productosDestacados' idproduct=$product.id_product}
en la parte donde quieres que se impriman las estrellitas.

 

Por ejemplo antes de :

 

 {if $product.show_price AND !isset($restricted_country_mode) AND !$PS_CATALOG_MODE}<p class="price_container"><span class="price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span></p>{else}<div style="height:21px;"></div>{/if}

 

3º Paso

 

En el fichero:

 

/modules/productcomments/productcomments.php

Añada esto:

 

public function hookProductosDestacados($params)
{
require_once(dirname(__FILE__).'/ProductComment.php');
require_once(dirname(__FILE__).'/ProductCommentCriterion.php');

$id_product = $params['idproduct'];
$product_average = 0;

$grades = ProductComment::getAveragesByProduct($id_product, $this->context->language->id);
$criterions = ProductCommentCriterion::getByProduct($id_product, $this->context->language->id);
$grade_total = 0;

if (count($grades) > 0)
{
foreach ($criterions as $criterion)
{
if (isset($grades[$criterion['id_product_comment_criterion']]))
{
$grade_total += (float)($grades[$criterion['id_product_comment_criterion']]);
}
}

$product_average = $grade_total / count($criterions);
}

$this->context->smarty->assign('average_total', (int)$product_average);
return $this->display(__FILE__, '/destacados.tpl');

} 
---

 

Despues creamos en el directorio::

 

/modules/productcomments/
un fichero llamado:

 

destacados.tpl
Con este contenido:

 

<div class="star_content clearfix">
{section name="i" start=0 loop=5 step=1}
    {if $smarty.section.i.index lt $average_total}
                    <div class="star star_on"><a href=""></a></div>
    {else}
        <div class="star"><a href=""></a></div>         
    {/if}
{/section}
</div>
Ahora en el fichero:

 

homefeatured.css
Añades esto:

 

#featured-products_block_center li .star_content  
{
    display: inline-block;
    margin-bottom: 10px;
}
Luego lógicamente en el mismo homfeatured.css tienes que ampliar la altura (height) del:

 

#featured-products_block_center li
----

 

No me hago responsable de lo que pase y de si no funciona o dejar de funcionar. (Ni siquiera lo he probado)

 

 

 

Muchas gracias Nadie !

 

Me aparecen las estrellas !

 

Saludos,

Link to comment
Share on other sites

¿Pero te aparecen en color? ¿con los votos?

 

Al parecer no, aparecen en blanco y negro. xD

 

Te adjunto los ficheros de la modificacion que dijo Nadie arriba.

 

El productcomments.zip es el modulo completo de comentarios de productos modificados, metelo en el directorio del modulo el contenido y reinicia el modulo.

 

Y el homefeatured.zip es el homefeatured.tpl, metelo en el directorio del homefeatured de tu plantilla.

 

Pruebala tu, a ver si te salen los colores...

productcomments.zip

homefeatured.zip

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

La unica manera en la que me aparecen las estrellas y pone el grado medio con su numero de estrellas en color es cuando uso el sistema de Enríque Gomez y luego sobreescribo los archivos que Raul Martinez pone, el problema es que sale sin el numero de comentarios y los productos que estan sin votar salen en gris osea estrellas en todos los productos y que parecen que son estrellas negativas.

Lo que mas me convence y con diferencia es el sistema de Enríque en el que salen estrellas y numero de comentarios y que solo falta que arregle lo de mostrarse el grado medio de los comentarios.Ademas si no se vota un producto las estrellas se esconden que es como debe ser.

Porfavor Enríque, Victor o alguien que pueda, solo arreglad lo del color de las estrellas que muestran el grado medio y la aportacion de Enríque es perfecta.

 

Muchisimas gracias.

Link to comment
Share on other sites

La unica manera en la que me aparecen las estrellas y pone el grado medio con su numero de estrellas en color es cuando uso el sistema de Enríque Gomez y luego sobreescribo los archivos que Raul Martinez pone, el problema es que sale sin el numero de comentarios y los productos que estan sin votar salen en gris osea estrellas en todos los productos y que parecen que son estrellas negativas.

Lo que mas me convence y con diferencia es el sistema de Enríque en el que salen estrellas y numero de comentarios y que solo falta que arregle lo de mostrarse el grado medio de los comentarios.Ademas si no se vota un producto las estrellas se esconden que es como debe ser.

Porfavor Enríque, Victor o alguien que pueda, solo arreglad lo del color de las estrellas que muestran el grado medio y la aportacion de Enríque es perfecta.

 

Muchisimas gracias.

 

Yo ya he abandonado el foro y el mundo de Prestashop, como comente aquí: http://www.prestashop.com/forums/topic/282730-comunicado-de-despedida-de-la-comunidad-por-parte-del-usuario-nadie/?view=findpost&p=1422288 por lo tanto ya no puedo revisar estos temas, lo dejo todo en manos de Enrique Gómez,

 

Un saludo y disculpa las molestias ocasionadas.

  • Like 2
Link to comment
Share on other sites

Probado en ps1541, falta el tema de css para que se muestre activa o no la estrella, por lo que puedes añadir en productcomments.css (en principio no esta sobrescrito en el tema por defecto por lo que esta en la carpeta del módulo)
 
p.ej después de

#product_comments_block_extra div.star_on {background: url(img/star.gif) no-repeat scroll 0 -12px transparent}

pones esta otra regla

.star_content  div.star_on {background-position: 0 -12px }

 

0ds1.jpg

Edited by Enrique Gómez (see edit history)
  • Like 1
Link to comment
Share on other sites

Lo único que he visto a vote pronto  es que  los cálculos los hace aunque no este validado el comentario desde el back office. Se puede modificar añadiendo a la consulta sql el filtro validate de forma que quedan:

$query_sum = 'SELECT COUNT(*) as sum FROM '._DB_PREFIX_.'product_comment WHERE validate AND id_product = '.$p['id_product'];
				$sum_votes = Db::getInstance()->getValue($query_sum);
				
$query_grades = 'SELECT SUM(grade) as grades FROM '._DB_PREFIX_.'product_comment WHERE validate AND id_product = '.$p['id_product'];
  • Like 1
Link to comment
Share on other sites

Por último para que se abra el tab en el tema default, en product.tpl añade al principio de la sección de javascript en

<script type="text/javascript">
// <![CDATA[

éste código:

$(document).ready(function()
{
	 if(window.location.hash === '#idTab5') {
		 $("#more_info_tabs").idTabs("idTab5");
	 }
});
  • Like 1
Link to comment
Share on other sites

Yo ya he abandonado el foro y el mundo de Prestashop, como comente aquí: http://www.prestashop.com/forums/topic/282730-comunicado-de-despedida-de-la-comunidad-por-parte-del-usuario-nadie/?view=findpost&p=1422288 por lo tanto ya no puedo revisar estos temas, lo dejo todo en manos de Enrique Gómez,

 

Un saludo y disculpa las molestias ocasionadas.

 

¿Molestias?, por favor Victor seras siempre un referente en Prestashop aunque te retires, nunca podremos agradecerte todo lo que has echo por la comunidad, de tu mano hay una ingente cantidad de soluciones a multitud de problemas estan repartidas por toda la web, ha sido un placer y un gran honor haber contado contigo en Prestashop.

Gracias por todo.

  • Like 1
Link to comment
Share on other sites

 

Lo único que he visto a vote pronto  es que  los cálculos los hace aunque no este validado el comentario desde el back office. Se puede modificar añadiendo a la consulta sql el filtro validate de forma que quedan:

$query_sum = 'SELECT COUNT(*) as sum FROM '._DB_PREFIX_.'product_comment WHERE validate AND id_product = '.$p['id_product'];
				$sum_votes = Db::getInstance()->getValue($query_sum);
				
$query_grades = 'SELECT SUM(grade) as grades FROM '._DB_PREFIX_.'product_comment WHERE validate AND id_product = '.$p['id_product'];

 

Perfecto, funciona!

Grandisimo aporte y de grandisima calidad.

He llegado asta este punto solo queda probar haber si soy capaz de abrir la consulta sql y que salga todo bien.

 

Muchisimas gracias Enríque, gracias por tu tiempo y todo un honor contar con tu ayuda.

Link to comment
Share on other sites

Bien, esta es la recta final ya queda poco, e intentado añadir a la consulta sql el filtro directamente a la base de datos llamada gomdb de la tienda de prueba y me sale esto, me da error y creo que no lo añade:

 

131027074433986025.png

 

 

 

Por ultimo en lo referente a esto:

 

Por último para que se abra el tab en el tema default, en product.tpl añade al principio de la sección de javascript en

<script type="text/javascript">
// <![CDATA[

éste código:

$(document).ready(function()
{
	 if(window.location.hash === '#idTab5') {
		 $("#more_info_tabs").idTabs("idTab5");
	 }
});

 

Supongo que quedaria asi:

En prestashop/themes/default/product.tpl añadimos lo anterior quedando asi:

 

 

 

<script type="text/javascript">

$(document).ready(function()
{
     if(window.location.hash === '#idTab5') {
         $("#more_info_tabs").idTabs("idTab5");
     }
});
// <![CDATA[

 

 

 

Muchas gracias y perdon por las molestias.

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

Bien, esta es la recta final ya queda poco, e intentado añadir a la consulta sql el filtro directamente a la base de datos llamada gomdb de la tienda de prueba y me sale esto, me da error y creo que no lo añade:

 

131027074433986025.png

 

 

 

 

Enrique se refiere a modificar el fichero:

homefeatured.php

no ha introducir nada desde gestor grafico de bases de datos como has realizado segun veo en la imagen.

Link to comment
Share on other sites

Por ultimo en lo referente a esto:

 

Supongo que quedaria asi:

En prestashop/themes/default/product.tpl añadimos lo anterior quedando asi:

 

 

 

<script type="text/javascript">

$(document).ready(function()

{

     if(window.location.hash === '#idTab5') {

         $("#more_info_tabs").idTabs("idTab5");

     }

});

// <![CDATA[

 

 

 

Muchas gracias y perdon por las molestias.

 

Te adjunto Imagen

 

pegard.png

Link to comment
Share on other sites

Enrique se refiere a modificar el fichero:

homefeatured.php
no ha introducir nada desde gestor grafico de bases de datos como has realizado segun veo en la imagen.

 

 

 

Efectivamente el archivo homefeatured.php se le modifica la consulta original de forma que ahora queda

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));
			$link = new Link();
			foreach ($products as $p) {
				$query_sum = 'SELECT COUNT(*) as sum FROM '._DB_PREFIX_.'product_comment WHERE validate AND id_product = '.$p['id_product'];
				$sum_votes = Db::getInstance()->getValue($query_sum);
				
				$query_grades = 'SELECT SUM(grade) as grades FROM '._DB_PREFIX_.'product_comment WHERE validate AND id_product = '.$p['id_product'];
				$grades = Db::getInstance()->getValue($query_grades);
				
				if ($sum_votes > 0)
					$star = floor($grades / $sum_votes);
				else
					$star = 0;
		
				if ($star > 0) {
					$url_product = $link->getProductLink($p['id_product']).'#idTab5';
					$stars[$p['id_product']] .= '<a href="'.$url_product.'">';
					for ($i=1; $i<=5; $i++) {
						if ($star >= $i)
							$stars[$p['id_product']] .= '<div class="star star_on"></div>';
						else
							$stars[$p['id_product']] .= '<div class="star star_off"></div>';
					}
		
					$stars[$p['id_product']] .= '('.$sum_votes.')</a>';
				}
		
				
			}
				
		
			$this->smarty->assign(array(
					'products' => $products,
					'stars' => $stars,
					'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'),
					'homeSize' => Image::getSize('home_default'),
			));
		
			return $this->display(__FILE__, 'homefeatured.tpl');
	}

Queda igual excepto que a la consulta se le añade validate AND

 

Edited by Enrique Gómez (see edit history)
  • Like 1
Link to comment
Share on other sites

Por ultimo en lo referente a esto:

 

Supongo que quedaria asi:

En prestashop/themes/default/product.tpl añadimos lo anterior quedando asi:

 

 

 

<script type="text/javascript">

$(document).ready(function()

{

     if(window.location.hash === '#idTab5') {

         $("#more_info_tabs").idTabs("idTab5");

     }

});

// <![CDATA[

 

 

 

Muchas gracias y perdon por las molestias.

 

 

Bueno mejor ponlo después del CDATA aunque creo que da igual:

<script type="text/javascript">
// <![CDATA[
$(document).ready(function()
{
	 if(window.location.hash === '#idTab5') {
		 $("#more_info_tabs").idTabs("idTab5");
	 }
});
            
  • Like 1
Link to comment
Share on other sites

 

Bueno mejor ponlo después del CDATA aunque creo que da igual:

<script type="text/javascript">
// <![CDATA[
$(document).ready(function()
{
	 if(window.location.hash === '#idTab5') {
		 $("#more_info_tabs").idTabs("idTab5");
	 }
});
            

 

Yo lo he probado, como he adjuntado en mi imagen de arriba http://www.prestashop.com/forums/topic/282419-estrellas-de-valoracion-en-destacados-de-la-home/?view=findpost&p=1435429 , y en principio se lo ha tragado.

  • Like 1
Link to comment
Share on other sites

Absolutamente brillante, cumple con todo, muestra las estrellas, muestra el numero de comentarios, saca las medias perfectamente coincidiendo con las de la pagina de producto e incluso cuando pincho en las estrellas que son un enlace, me llevan directamente a la pestaña de comentarios.

Si os parece bien y con vuestro permiso doy el tema como solucionado.

Estaria bien este aporte en la seccion de indice aportes por si alguien decide adaptarlo a un modulo y ponerlo en mas secciones aparte de productos destacados.

Muchas gracias Enríque y Victor por vuestra ayuda con gente asi da gusto sobre todo por el buen rollo, compañerismo y la gran comunidad que rodea este CMS.

Link to comment
Share on other sites

¿Si quisieramos adaptar este metodo a la Lista de Productos seria complejo o solo seria cambiar 4 cosas?

 

13102804174829795.png

 

No estaria mal adaptarlo si solo hay que cambiar poca cosa asi se aprovecha el codigo ya generado.

Hay una guia en ingles pero le faltan el numero de comentarios, el enlace a comentarios y cuando no se ha votado salen las estrellas en gris. 

 

Muchas gracias.

  • Like 1
Link to comment
Share on other sites

A mi me gusta más la estrategia del artículo de Nemo que Víctor comentaba. Mas que nada no te obliga a sobrescribir nada.

 

Yo tengo sobrescrito la clase CategoryController en la carpeta override/controllers/front (recordar borrar cache/class_index.php para que coja las nuevas clases sobrescritas). Es una sobrescritura muy limpia eso sí:

<?php
/*{* egp mod premodificaciones imagenes en categoria y estrellitas *}*/
class CategoryController extends CategoryControllerCore
{
	public function initContent()
	{
		
		
		parent::initContent();		
			
	$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));
			$link = new Link();
			foreach ($products as $p) {
				$query_sum = 'SELECT COUNT(*) as sum FROM '._DB_PREFIX_.'product_comment WHERE validate AND id_product = '.$p['id_product'];
				$sum_votes = Db::getInstance()->getValue($query_sum);
				
				$query_grades = 'SELECT SUM(grade) as grades FROM '._DB_PREFIX_.'product_comment WHERE validate AND id_product = '.$p['id_product'];
				$grades = Db::getInstance()->getValue($query_grades);
				
				if ($sum_votes > 0)
					$star = floor($grades / $sum_votes);
				else
					$star = 0;
		
				if ($star > 0) {
					$url_product = $link->getProductLink($p['id_product']).'#idTab5';
					$stars[$p['id_product']] .= '<a href="'.$url_product.'">';
					for ($i=1; $i<=5; $i++) {
						if ($star >= $i)
							$stars[$p['id_product']] .= '<div class="star star_on"></div>';
						else
							$stars[$p['id_product']] .= '<div class="star star_off"></div>';
					}
		
					$stars[$p['id_product']] .= '('.$sum_votes.')</a>';
				}
		
				
			}

		$this->context->smarty->assign(array(
			'stars' => $stars
		));


	}

}

La idea es exactamente la misma. Ahora tenemos disponible en la plantilla la nueva variable smarty stars de forma que añadimos el div a product-list.tpl dentro del bucle for

 

p.ej en el tema default

<div class="center_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_default')|escape:'html'}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} />
					{if isset($product.new) && $product.new == 1}<span class="new">{l s='New'}</span>{/if}
				</a>
				<h3>{if isset($product.pack_quantity) && $product.pack_quantity}{$product.pack_quantity|intval|cat:' x '}{/if}<a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.name|escape:'htmlall':'UTF-8'}">{$product.name|truncate:35:'...'|escape:'htmlall':'UTF-8'}</a></h3>
				<div class="star_content">
                        	{if isset($stars[$product.id_product])} {$stars[$product.id_product]} {/if}                       
                                </div>
				<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:360:'...'}</a></p>
			</div>
Edited by Enrique Gómez (see edit history)
  • Like 1
Link to comment
Share on other sites

Me perdi en algunas cosas.

Si voy a la carpeta prestashop/override/controllers/front solo me encuentro un unico archivo index.php, no encuentro ninguna referencia a CategoryController.

Como tendria que hacer para borrar en prestashop/cache/class_index.php ese archivo class_index.php, supongo que tendra que ser borrar algo en particular para que me reconozca las nuevas clases.

Y por ultimo esto creo que lo tengo claro, en la carpeta prestashop/themes/default/product-list.tpl tu dices añadir pero supongo que es sobreescribir el div <div class="center_block"> por el que hay arriba.

 

Perdona y te agradezco mucho la paciencia infinita que tienes.

Un saludo.

Link to comment
Share on other sites

Me perdi en algunas cosas.

Si voy a la carpeta prestashop/override/controllers/front solo me encuentro un unico archivo index.php, no encuentro ninguna referencia a CategoryController.

 

Claro, porque el fichero tienes que crearlo tu en tu ordenador con el contenido que te ha dicho Enrique y meterlo ahí.

 

 

Como tendria que hacer para borrar en prestashop/cache/class_index.php ese archivo class_index.php, supongo que tendra que ser borrar algo en particular para que me reconozca las nuevas clases.

 

 

Eliminas el fichero directamente, lo mandas al otro mundo. (No te preocupes, porque el fichero se regenera, como dice Enrique, es para que prestashop te reconozca el nuevo override) 

 

Vamos que elimines el fichero )

  • Like 1
Link to comment
Share on other sites

Funciona perfectamente, supongo que no habra ningun problema en usar en produccion por los cambios tan complejos en el codigo de prestashop, por eso que has dicho de que el articulo de Nemo no te obliga a sobreescribir nada y este si sobreescribe.

He hecho unas cuantas pruebas y no ha dado fallo de ningun tipo y la velocidad de recarga de la tienda se mantiene.

 

Muchisimas gracias de nuevo y ahora si doy el tema como solucionado que menudo aportazo, esto era algo muy necesario que faltaba en Prestashop.

Link to comment
Share on other sites

Funciona perfectamente, supongo que no habra ningun problema en usar en produccion por los cambios tan complejos en el codigo de prestashop, por eso que has dicho de que el articulo de Nemo no te obliga a sobreescribir nada y este si sobreescribe.

He hecho unas cuantas pruebas y no ha dado fallo de ningun tipo y la velocidad de recarga de la tienda se mantiene.

 

Muchisimas gracias de nuevo y ahora si doy el tema como solucionado que menudo aportazo, esto era algo muy necesario que faltaba en Prestashop.

 

En absoluto da ningún problema, la mayoría de tiendas tienen algún módulo o "modificación" con varias clases sobrescritas. El único problema es que hay que tenerlo en cuenta para actualizaciones y demás.

Link to comment
Share on other sites

Funciona perfectamente, supongo que no habra ningun problema en usar en produccion por los cambios tan complejos en el codigo de prestashop, por eso que has dicho de que el articulo de Nemo no te obliga a sobreescribir nada y este si sobreescribe.

He hecho unas cuantas pruebas y no ha dado fallo de ningun tipo y la velocidad de recarga de la tienda se mantiene.

 

Muchisimas gracias de nuevo y ahora si doy el tema como solucionado que menudo aportazo, esto era algo muy necesario que faltaba en Prestashop.

Como veo que en el titulo del tema ha sido añadido la palabra "Solucionado", procedo a cerrar el tema definitivamente, no tengo nada mas que añadir, a lo que ya te ha comentado Enrique Gomez.

Link to comment
Share on other sites

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