Personalizando el Store group switcher en Magento

En base a uno de los comentarios recibidos en el post sobre la personalización del selector de monedas, vamos a ver cómo hacer lo mismo con el selector de grupos de tiendas (Store group).

Una vez que hayamos creado al menos un Store group adicional y le hayamos asociado su store view por defecto, vamos a obtener en nuestras tiendas (pensando en que tenemos solamente el skin default), un footer como el que vemos  a continuación.

Selector de Store group original en Magento

La modificación que vamos a hacer va a ser igual de efectiva y sencilla que en el caso del Currency Switcher.

Para empezar, buscamos el archivo /app/design/frontend/default/default/template/page/switch/stores.phtml. Es en este archivo donde se arma el dropdown.

Buscamos en la línea 37 y vamos a ver:

<div class="store-switcher">
    <label for="select-store"><?php echo $this->__('Select Store') ?>: </label>
    <select id="select-store" onchange="location.href=this.value">
        <?php /*foreach ($this->getStores() as $_store): ?>
            <option value="<?php echo $_store->getUrl('') ?>"<?php if($_store->getId()==$this->getCurrentStoreId()): ?> selected="selected"<?php endif; ?>><?php echo $_store->getName() ?></option>
        <?php endforeach;*/ ?>
        <?php foreach ($this->getGroups() as $_group): ?>
            <?php $_selected = ($_group->getId()==$this->getCurrentGroupId()) ? 'selected="selected"' : '' ?>
            <option value="<?php echo $_group->getHomeUrl() ?>" <?php echo $_selected ?>><?php echo $this->htmlEscape($_group->getName()) ?></option>
        <?php endforeach; ?>
    </select>
</div>

(Si, ese código comentado viene por defecto y si quieren pueden sacarlo).

Y vamos a reemplazar ese código por, por ejemplo, lo siguiente:

<div class="store-switcher">
    <ul>
    <?php foreach ($this->getGroups() as $_group): ?>
        <li>
        <?php if (($_group->getId()==$this->getCurrentGroupId())) : ?>
            <?php echo $this->htmlEscape($_group->getName()) ?>
        <?php else: ?>
            <a href="<?php echo $_group->getHomeUrl() ?>"><?php echo $this->htmlEscape($_group->getName()) ?></a>
        <?php endif; ?>
        </li>
    <?php endforeach; ?>
    </ul>
</div>

El resultado, si bien no tiene estética alguna, sirve para ver cómo podemos empezar a jugar con este otro selector.

Cambiamos el dropdown por una lista para el selector de Store group

Y eso es todo.

Tweet about this on TwitterShare on Google+Email this to someoneShare on FacebookShare on LinkedIn