Question

Je suis en train de construire une librairie avec Magento.J'ai un multiple de sélectionner des attributs personnalisés pour les Auteurs et les Traducteurs.

Je tiens à rendre leurs valeurs en tant que lien vers la recherche avancée liste de tous les produits que l'Auteur / Traducteur.

  • Premier Problème:La recherche avancée n'accepte pas la chaîne /catalogsearch/avancé/result/?auteur="Nom"
  • Deuxième Problème:Puis-je rendre chaque élément comme un Lien?pour eg.quelque chose comme ceci

< a href = "/catalogsearch/avancé/result/?auteur= < ?php echo $_product->getAttributeText('auteur') ?>"> < ?php echo $_product->getAttributeText('auteur') ?>

Était-ce utile?

La solution

Si je vous comprends bien, votre problème est maintenant avec de multiples sélectionnez les attributs.Si vous exécutez une recherche avancée et de regarder l'URL, vous verrez qu'il ressemble:

[YOUR_BASE_URL]/catalogsearch/advanced/result/?author[]=1&author[]=2&other_attribute[]=45

En fait, c'est comment vous transférer plusieurs valeurs d'entrée avec le même nom.Le nom n'est alors pas name="author", mais name="author[]".Aussi, assurez-vous de ne pas utiliser getAttributeText() pour l'URL de la partie: il attend la option_id, de sorte getData('author') ou la magie de lecture getAuthor() est correcte.

Votre dernier lien serait:

<a href="<?php echo Mage::getBaseUrl() ?>catalogsearch/advanced/result/?author[]=<?php
    echo $_product->getAuthor() ?>"><?php
        echo $_product->getAttributeText('author') ?></a>

Maintenant pour le problème si un produit a plus d'un auteur.Comme Fabian suggéré, vous pouvez utiliser is_array et foreach.

<?php

$_authors = $_product->getAuthor();
if( !is_array($_authors) ) {
    $_authors = explode(',', $_authors);
}
$_authorTexts = $_product->getAttributeText('author');
if( !is_array($_authorTexts) ) {
    $_authorTexts = array($_authorTexts);
}
foreach($_authors as $i => $_author) {
    ?><a href="<?php echo Mage::getBaseUrl() ?>catalogsearch/advanced/result/?author[]=<?php
        echo $_author ?>"><?php
            echo $_authorTexts[$i] ?></a><?php
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top