Magento: muestra la selección múltiple como una lista con ID únicos para que el elemento de la lista se pueda cambiar a una imagen usando CSS

Descubrí cómo mostrar mi atributo de selección múltiple personalizado como una lista, pero no he podido descifrar cómo agregar una ID o clase a cada elemento de la lista. Esto me permitiría mostrar una imagen usando CSS en lugar de texto.

Espero que ustedes puedan ayudarme. Por cierto, este es el código que uso para mostrar mi "calificación" de atributo personalizado como una lista:

        <?php if($_product->getResource()->getAttribute('rating')->getFrontend()->getValue($_product)): ?>
        <ul><li><?php
        $_comma = ",";
        $_list = "</li><li>";
        echo str_replace($_comma,$_list,$_product->getResource()->getAttribute('rating')->getFrontend()->getValue($_product))    ?>    
        </li></ul>
        <?php endif; ?> 
        </div>

preguntado el 22 de mayo de 12 a las 15:05

1 Respuestas

Sin conocer el formato exacto de la devolución de su función, no puedo estar 100% seguro, pero creo que esto funcionaría:

    <div>
    <?php if($_product->getResource()->getAttribute('rating')->getFrontend()->getValue($_product)):?>
        <ul>
        <?php $i=0?>
        <?php foreach(explode(',', $_product->getResource()->getAttribute('rating')->getFrontend()->getValue($_product)) as $value) : ?>
            <li id="value_<?php echo $i?>"><?php echo $value ?></li>
            <?php $i++ ?>
        <?php endforeach ?>
        </ul>
    <?php endif; ?> 
    </div>

Probablemente sería un poco más fácil simplemente modificar su retorno para devolverle una matriz, pero si el retorno es una lista separada por comas y no es fácil de cambiar, entonces explotar debería ser el truco.

contestado el 23 de mayo de 12 a las 14:05

Gracias por su respuesta. Mirando su fragmento de código, parece decente, pero no funciona para mí. De hecho, todos los datos más allá de este fragmento de código se han ido. Así que un poco destruye mi sitio. ¿Cualquier otra sugerencia? ¿Cómo lo configuraría para que me devuelva una matriz? - user1410445

Entonces significa que algo está fallando en el código. Puede intentar conectar declaraciones de depuración entre llamadas php y ver dónde deja de ejecutarse. El fragmento de código fue solo un ejemplo de formulario, ya que no tengo acceso a su sitio para realizar pruebas, no puedo estar seguro de qué funcionará y qué no, en resumen, no estaba destinado a estar listo para cortar y pegar. También le faltaba un paréntesis y una etiqueta div de apertura, inténtelo ahora. - ontek

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.