Как вывести дополнительную характеристику товара в любом месте
Дополнительные характеристики товара выводятся циклом в порядке сортировки в административной части. Для них даже есть отдельный шаблон modules/shop/views/shop.view.param.php.
Но бывает так, что нужно какую-то отдельную характеристику вывести в определенном месте. Например, есть характеристика «Цвет» и нам информацию о цвете нужно вывести в таком виде:
Пример:
Цвет:
Есть два способа выбрать характеристику: по идентификатору и по имени.
Массив характеристик с идентификатором по имени – $result["names_param"]
. В этом случае код будет такой:
Пример:
if(! empty($result["names_param"]["Цвет"]))
{
echo 'Цвет: ';
foreach($result["names_param"]["Цвет"]["value"] as $value)
{
echo '<img src="/img/box_';
switch($value)
{
case 'желтый';
echo 'yellow';
break;
case 'красный';
echo 'red';
break;
case 'зеленый';
echo 'green';
break;
}
echo '" alt="'.$value.'">';
}
}
В примере мы выводили характеристику с типом «список с выбором нескольких
значений». Для нее задается несколько значений, поэтому переменная
$result["names_param"]["Цвет"]["value"]
задана как массив. Все остальные
переменные имеют единственное значение. Например, для текстовой характеристики
«Материал» код будет следующим:
Пример:
if(! empty($result["names_param"]["Материал"]))
{
echo 'Материал: '.$result["names_param"]["Материал"]["value"];
}
Если нужно использовать идентификатор вместо имени, тогда обращаемся к массиву $result["ids_param"]
.
Пример:
if(! empty($result["ids_param"][3]))
{
echo $result["ids_param"][3]["name"].': '.$result["ids_param"][3]["value"];
}
Выше рассмотрены случаи, когда характеристику выводим в карточке товара. В
остальных случаях заменяем $result
на $row
. Чтобы вывести характеристику в блоке или списке, для нее обязательно должна быть отмечена соответствующая
опция.
Пример можно применять и в модуле «Объявления».
Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.