Вопрос

Я создаю книжный магазин с помощью Magento.У меня есть несколько пользовательских атрибутов для авторов и переводчиков.

Я хотел бы представить их значения в виде ссылки на расширенный поиск, чтобы перечислить все продукты для этого автора/переводчика.

  • Первая проблема:Расширенный поиск не принимает строку/catalogsearch/advanced/result/?author="Имя"
  • Вторая проблема:Могу ли я отображать каждый элемент как ссылку?например,что-то вроде этого

< a href = "/catalogsearch/advanced/result/?author= < ?php echo $_product->getAttributeText('author') ?>"> < ?php echo $_product->getAttributeText('автор') ?>

Это было полезно?

Решение

Если я вас правильно понимаю, ваша проблема теперь связана с несколькими атрибутами выбора.Если вы выполните расширенный поиск и посмотрите на полученный URL-адрес, вы увидите, что он выглядит так:

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

Фактически, именно так вы передаете несколько входных значений с одним и тем же именем.Имя тогда не name="author", но name="author[]".Также убедитесь, что вы не используете getAttributeText() для части URL - он ожидает option_id, поэтому getData('author') или волшебный добытчик getAuthor() верно.

Ваша последняя ссылка будет выглядеть так:

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

Теперь о проблеме, если у продукта более одного автора.Как предложил Фабиан, вы можете использовать is_array и 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
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top