Convertir los filtros de Magento a Dropdown select



   AUTOR PREGUNTA

Publicado 14 mayo 2015 - 12:59

El contexto:

Tienda online en Magento 1.9 donde tenemos un atributo principal con demasiadas posibilidades y queremos modificarlo para que sea una opción dropdown en una nueva plantilla basada en la rwd.

Ya se que esto se hace en el app/design/plantilla/tema/template/catalog/layer/filter.phtml

 

En nuestra anterior plantilla tenia hecho este codigo que me funcionaba sin problemas, pero con la nueva plantilla me bloquea la lista de catalogo:

 

$max_items_per_filter = 10;
$items_count = 0;
$showed = array();
 
$goodAttributes = array(
"base_size" => "base_size",
"bed_size" => "bed_size",
"color_mueble" => "color_mueble",
"color_ropa" => "color_ropa",
"opcion" => "opcion",
"pill_size" => "pill_size"
);
 
@session_start();
if (count(array_intersect_key($goodAttributes, $_GET)) > 0) {
if (!isset($_SESSION['_at'])) $_SESSION['_at'] = array();
foreach ($_GET as $k => $v) {
if (in_array($k, $goodAttributes)) {
$_SESSION['_at'][$k] = $v;
}
}
} else
$_SESSION['_at'] = array();
 
?>
<ol>
<? if (count($this->getItems()) > $max_items_per_filter) : ?>
<li>
<select class="jump-to-value">
<option value="">-- Más opciones --</option>
<?php foreach ($this->getItems() as $_item): ?>
<? if (in_array($_item->getUrl(), $showed)) continue; ?>
<option value="<?php echo $this->urlEscape($_item->getUrl()) ?>">
<?php echo $_item->getLabel() ?> (<?php echo $_item->getCount() ?>)
</option>
<?php endforeach; ?>
</select>
</li>
<? else: ?>
<?php foreach ($this->getItems() as $_item): ?>
<li>
<?php $showed[] = $_item->getUrl(); ?>
<?php if ($_item->getCount() > 0): ?>
<a href="<?php echo $this->urlEscape($_item->getUrl()) ?>"><?php echo $_item->getLabel() ?></a>
<?php else: echo $_item->getLabel() ?>
<?php endif; ?>
(<?php echo $_item->getCount() ?>)
</li>
<? endforeach; ?>
<? endif; ?>
</ol>
 
 
Alguna idea?????



¿Tienes la misma pregunta? Yo también

   AUTOR PREGUNTA

Publicado 14 mayo 2015 - 14:01

Me auto contesto jajaja:

 

Este es el codigo que hay que meter en filter...y te modifica todos los filtros por dropdown.

<script type="text/javascript">
<!--
function magejump(targ,selObj,restore){
 eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
 if (restore) selObj.selectedIndex=0;
}
//-->
</script>
<select name="magestp" id="magestp" onChange="magejump('parent',this,0)">
<option value="">Select</option>
<?php foreach ($this->getItems() as $_item): ?>
<option value="<?php echo $this->urlEscape($_item->getUrl()) ?>"><?php echo $_item->getLabel() ?> (<?php echo $_item->getCount() ?>)</option>
<?php endforeach ?>
</select>

 

Publicado 14 mayo 2015 - 16:25

 

Me auto contesto jajaja:

 

Este es el codigo que hay que meter en filter...y te modifica todos los filtros por dropdown.

<script type="text/javascript">
<!--
function magejump(targ,selObj,restore){
 eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
 if (restore) selObj.selectedIndex=0;
}
//-->
</script>
<select name="magestp" id="magestp" onChange="magejump('parent',this,0)">
<option value="">Select</option>
<?php foreach ($this->getItems() as $_item): ?>
<option value="<?php echo $this->urlEscape($_item->getUrl()) ?>"><?php echo $_item->getLabel() ?> (<?php echo $_item->getCount() ?>)</option>
<?php endforeach ?>
</select>

 

 

Justo te iba a poner algo parecido jeje. Buen aporte