Jump to content

Problema Al Añadir Un Campo En Product-List, Sale Undefined.


rodrasgl

Recommended Posts

Hola a todos, a ver si me podéis ayudar con este problema que llevo ya bastantes horas y no logro dar con el.

 

Estoy intentando cambiar la descripción del producto por el código de referencia en la lista de productos (product-list.tpl) pero no consigo que me lo muestre, solo me sale undefined.

 

Para hacerlo he tocado el product-list.tpl y el global.js para agregarlo.

 

Esto es lo que he agregado en el product-list.tpl:

 

  <h5 itemprop="reference">
{if isset($product.reference) && $product.reference}{/if}
<a class="product-name" href="{$product.link|escape:'html':'UTF-8'}" >
{$product.reference}
</a>
</h5>

Y esto en el global.js:

html += '<h5 itemprop="reference">'+ $(element).find('h5').html() + '</h5>'; //referencia

Lo que he hecho ha sido crear un nuevo modo de vista y quiero mostrar como os comento, el nombre y el código de referencia pero no lo consigo.

 

Aprovecho también para preguntaros si existe algún manual/guía para poder consultar sobre como esta programado prestashop y como modificarlo.

 

Gracias por adelantado :)

 

Link to comment
Share on other sites

Segun el codigo que has puesto, tienes un condicional no definido.

Deberia ir asi

  <h5 itemprop="reference">
{if isset($product.reference) && $product.reference}
<a class="product-name" href="{$product.link|escape:'html':'UTF-8'}" >
{$product.reference}
</a>
{/if}
</h5>
Link to comment
Share on other sites

Gracias por responder, he estado haciendo pruebas toda la mañana y con eso no me es valido. Lo que estoy intentando hacer es crear un nuevo modo de vista que sea en "lista" pero solo mostrnado el nombre y referencia para que sea más rápido buscar.

 

En cuanto modifico el campo de imagen quitandolo en el nuevo modo de vista me fallan todas las vistas, no se como podría crear un nuevo modo sin afectar al siguiente.

 

Lo que había hecho era esto:

}else if (view == 'listtext')
{


//Comprobamos la clase que tiene la lista de productos y quitamos la antigua.
if($('ul.product_list').hasClass('grid')){
$('ul.product_list').removeClass('grid').addClass('listtext row');
$('.product_list > li').removeClass('col-xs-12 col-sm-6 col-md-4').addClass('col-xs-12 col-md-8');
}else if ($('ul.product_list').hasClass('list')){
$('ul.product_list').removeClass('list').addClass('listtext row');
$('.product_list > li').removeClass('col-xs-12').addClass('col-xs-12 col-md-8');
}


$('.product_list > li').each(function(index, element) {
html = '';


html = '<div class="product-container"><div class="row">';
html += '<div class="left-block col-xs-12 col-md-8">';
html += '<div class="product-flags">'+ $(element).find('.product-flags').html() + '</div>';
html += '<h5 itemprop="name">'+ $(element).find('h5').html() + '</h5>';
var rating = $(element).find('.comments_note').html(); // check : rating
if (rating != null) { 
html += '<div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating" class="comments_note">'+ rating + '</div>';
}
var colorList = $(element).find('.color-list-container').html();
if (colorList != null) {
html += '<div class="color-list-container">'+ colorList +'</div>';
}
var availability = $(element).find('.availability').html(); // check : catalog mode is enabled
if (availability != null) {
html += '<span class="availability">'+ availability +'</span>';
}
html += '</div>'; 
html += '<div class="right-block col-xs-4 col-xs-12 col-md-4"><div class="right-block-content row">';
var price = $(element).find('.content_price').html();       // check : catalog mode is enabled
if (price != null) { 
html += '<div class="content_price col-xs-5 col-md-12">'+ price + '</div>';
}
html += '<div class="button-container col-xs-7 col-md-12">'+ $(element).find('.button-container').html() +'</div>';
html += '<div class="functional-buttons clearfix col-sm-12">' + $(element).find('.functional-buttons').html() + '</div>';
html += '</div>';
html += '</div></div>';
$(element).html(html);
}); 
$('.display').find('li#listtext').addClass('selected');
$('.display').find('li#grid').removeAttr('class');
$('.display').find('li#list').removeAttr('class');
$.totalStorage('display', 'listtext');




}else if(view == 'grid')

Por encima esta "list" y por debajo esta "grid". Con esto me funciona pero como comento, cuando cambio de un tipo a otro me descoloca todo y no "regenera" el campo de imagen para los otros dos modos. 

 

No se si sabéis como hacerlo o si alguien lo ha hecho antes...

 

Gracias por la ayuda de nuevo :)

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...