Eoxia > Actualités > Blog de l'équipe > Changer l'affichage de la liste déroulante de Magento

Changer l’affichage de la liste déroulante de Magento

calendrier
,

Nativement, Magento affiche une liste déroulante avec une multiselection lorsque que l’attribut comporte plus de deux options.

Pour faire afficher dans une liste déroulante simple, il faut copier le fichier app/code/core/Mage/CatalogSearch/Block/Advanced/form.php et le coller dans app/code/local/Mage/CatalogSearch/Block/Advanced/form.php  (pour éviter qu’à la prochaine mise à jour de Magento, le code soit écrasé).

Changer le code

public function getAttributeSelectElement($attribute)
{
// 2 - avoid yes/no selects to be multiselects
if (is_array($options) && count($options)>2) {
$extra = 'multiple="multiple" size="4"';
$name.= '[]';
}
else {
array_unshift($options, array('value'=>'', 'label'=>Mage::helper('catalogsearch')->__('All')));
}
Par
public function getAttributeSelectElement($attribute)
{
// 2 - avoid yes/no selects to be multiselects
if (is_array($options) && count($options)>1000) {
$extra = 'multiple="multiple" size="4"';
$name.= '[]';
}
else {
array_unshift($options, array('value'=>'', 'label'=>Mage::helper('catalogsearch')->__('All')));
}
}

 

Autre technique :changer avec ce code
public function getAttributeSelectElement($attribute,$dropdown=false)
{
// 2 – avoid yes/no selects to be multiselects
if (!$dropdown && is_array($options) && count($options)>2) {
$extra = ‘multiple= »multiple » size= »4″‘;
$name.= ‘[]’;
}
else {
array_unshift($options, array(‘value’=> », ‘label’=>Mage::helper(‘catalogsearch’)->__(‘All’)));
}}

Et dans le fichier : app/design/frontend/default/MON THEME/template/catalogsearch/advanced/form.php ligne 60 changer avec ce code

case 'select': ?>
<div class="input-box">
<?php echo $this->getAttributeSelectElement($_attribute,true) ?>
</div>
<?php break;