Hosting Joomla - Alojamiento para Joomla, blog y vídeos Joomla

NEW YORK +1.888.815.4203 BARCELONA +34.902.009.386
Viernes, 23 de Diciembre de 2011 18:10

Filtrar por fabricante categoría de productos en Virtuemart

por  pablo
Vota este articulo
(1 Voto)

filtro fabricantes categoria virtuemartEn Virtuemart disponemos de la opción de realizar un filtro por el fabricante del producto a través del módulo mod_virtuemart_manufacturers que viene con el paquete completo de instalación. El problema de este módulo está en que el filtro se aplica independientemente de la categoría a la que pertenece el producto.

Si tenemos muchos productos por categoría es posible que nos interese aplicar el filtro por fabricante para los productos de una determinada categoría, de forma que los usuarios de la web puedan limitar los resultados. Podemos conseguir esto haciendo unos cambios en 2 archivos del componente Virtuemart.

En primer lugar tenemos que editar el archivo components/com_virtuemart/themes/NOMBRE_TEMA/templates/browse/includes/browse_orderbyform.tpl.php, en donde NOMBRE_TEMA es el nombre del tema de Virtuemart que estamos utilizando y que se puede saber entrando en el apartado Configuración de la administración de Virtuemart y pulsando en la pestaña Sitio. En el parámetro Seleccione un tema para su tienda se muestra el tema.

En el archivo browse_orderbyform.tpl.php buscamos la etiqueta <form... y, justo después, colocamos el siguiente código:

<?php
$query = "SELECT distinct a.manufacturer_id,a.mf_name FROM #__{vm}_manufacturer AS a ";
if (!empty( $category_id ) ) {
$query .= ", #__{vm}_product_category_xref AS d, "
. " #__{vm}_product AS b, "
. " #__{vm}_product_mf_xref AS c "
. " WHERE d.category_id='$category_id'"
. " AND d.product_id = b.product_id "
. " AND b.product_id = c.product_id AND c.manufacturer_id = a.manufacturer_id ";
}
$query .= "ORDER BY mf_name ASC";
$db = new ps_DB;
$db->query( $query );
$res = $db->record;
?>
<select class="inputbox" name="manufacturer_id" onchange="order.submit()">
<option value=""><?php echo $VM_LANG->_('PHPSHOP_SELECT') ?></option>
<?php
foreach ($res as $manufacturer) {
$selected = '';
if( @$_REQUEST['manufacturer_id'] == $manufacturer->manufacturer_id ) {
$selected = 'selected="selected"';
}
echo "<option value=\"".$manufacturer->manufacturer_id ."\" $selected>". $manufacturer->mf_name ."</option>\n";
}
?>
</select>

En el mismo archivo, tendremos que eliminar la siguiente línea:

<input type="hidden" name="manufacturer_id" value="<?php echo $manufacturer_id ?>" />

Después, editamos el archivo administrator/components/com_virtuemart/html/shop_browse_queries.php y buscamos el siguiente código (en la línea 72):

} elseif( empty( $keyword ) && empty( $manufacturer_id )) {

Lo modificamos por el siguiente:

} elseif( empty( $keyword ) ) {

Con estos cambios aplicados, cuando estemos en el listado de productos de una categoría en la parte superior se verá, junto con el selector de orden, un nuevo desplegable en donde podremos seleccionar el fabricante por el que queremos filtrar. Solo se mostrarán en el desplegable los fabricantes que existan para los productos de esa categoría.

Hemos preparado un video tutorial donde se puede ver más detalladamente los cambios que hay que aplicar.

Ultima modificacion el Viernes, 23 de Diciembre de 2011 18:40

¡Descubre nuestros Packs!


Pack Tienda Joomla

Pack Empresa Joomla

Pack Periódico o Revista Joomla

Testimonios de Clientes

Buscador Joomla

Cargando...

Webempresa en Facebook

Quieres estar al día en Joomla?
Haz clic en "Me gusta"


Canales Webempresa

Twitter_Facebook_Youtube_Feed_

Notícias Joomla en tu Email

noticias Joomla
Suscríbete Ahora!
Código:
Joomla : Hosting Joomla - Alo

Artículos en tu lector RSS

Suscríbete a nuestro Feed RSS

Servicios que ofrecemos para Joomla :
Hosting JoomlaHosting Joomla
Servidores Joomla especializados.
Soporte Joomla 24x7x365
hosting_joomla Reseller Joomla
Especial para Diseñadores Joomla. Olvídate del Hosting de tus Clientes
ayuda JoomlaAprende Joomla
Formación en Joomla 2.5, Virtuemart 2.0 y de las extensiones más populares
Desarrollo JoomlaPacks Joomla
Múltiples diseños profesionales.
Tu Web Joomla por 299€