Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Условия вывода атрибутов в карточке товара


Gann

Recommended Posts

Приветствую!

 

Необходимо вывести определённую картинку, если есть значение атрибута "Значение1" и нет значение атрибута "Значение2".

 

Пробую вывести так:

 

<?php if ($attribute['text'] == 'Значение 1'){ ?>
<?php if($attribute['text'] == 'Значение 2') { ?>
<?php } else { ?>
<img src="/картинка">
<?php } ?>
<?php } ?>

 

Пробовал через in_array - не работает

Пробовал через key_exist - не работает

Операторы && (and), да много как уже попробовал - не работает.

 

Все эти условия пишу в product.tpl. 

 

Вывод стандартный:

<?php if ($attribute_groups) { ?>
    <?php foreach ($attribute_groups as $attribute_group) { ?>
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>

...

...

...

Надіслати
Поділитися на інших сайтах

Вот такое условие работает:

 

<?php if ($attribute['text'] == 'Значение1') { ?>
<img src="/картинка">
<?php } ?>

 

и такое (или то, или это)

 

<?php if ($attribute['text'] == 'Значение1' OR $attribute['text'] == 'Значение2') { ?>
<img src="/картинка">
<?php } ?>

 

Как же прописать условие, чтобы для "Значение1" - картинка выводилась, а если есть "Значение1" и "Значение2" - не выводилась?

 

 

 

Надіслати
Поділитися на інших сайтах

29 минут назад, Gann сказал:

Вот такое условие работает:

 

<?php if ($attribute['text'] == 'Значение1') { ?>
<img src="/картинка">
<?php } ?>

 

и такое (или то, или это)

 

<?php if ($attribute['text'] == 'Значение1' OR $attribute['text'] == 'Значение2') { ?>
<img src="/картинка">
<?php } ?>

 

Как же прописать условие, чтобы для "Значение1" - картинка выводилась, а если есть "Значение1" и "Значение2" - не выводилась?

 

 

 

атрибуты циклом выводятся. проверять нужно каждый элмент цикла.. если без оптимизации на понятном - то примерно так:

 

Костылем...

 

<?php $atribDa="" // значение если да?>

<?php $atribNet="" // значение если нет?>
 

 

<?php if ($attribute_groups) { ?>
    <?php foreach ($attribute_groups as $attribute_group) { ?>
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>

<?php if ($attribute['text'] == 'Значение1') { ?>
<?php $atribDa=1; ?>
<?php } ?>

<?php if ($attribute['text'] == 'Значение2') { ?>
<?php $atribNet=1; ?>
<?php } ?>

<?php } ?>

<?php } ?>

<?php } ?>

 

<?php if($atribDa == 1 && $atribNet != 1){ ?>

<img src="/картинка">

<?php } ?>

****

НО правильно это еще в контроллере конкретными функциями перебора массива прописать.. И выводить картинку из него..

например, можно использовать  array_search();

и в две строчки в контроллере вывести
 

  • +1 1
Надіслати
Поділитися на інших сайтах

2 минуты назад, whiteblue сказал:

 

 

<?php if($atribDa == 1 && $atribNet != 1){ ?>

<img src="/картинка">

<?php } ?>

****

НО правильно это еще в контроллере конкретными функциями перебора массива прописать.. И выводить картинку из него..

например, можно использовать  array_search();

и в две строчки в контроллере вывести
 

Спасибо!

 

Хм.. я так же костылил - не работало. Может где-то ошибся... проверю ещё раз.

Надіслати
Поділитися на інших сайтах

43 минуты назад, Gann сказал:

Как же прописать условие, чтобы для "Значение1" - картинка выводилась, а если есть "Значение1" и "Значение2" - не выводилась?

дело в том, что в $attribute['text'] всегда будет одно значение.

здесь Вам надо проверять на количество, примерно так:

<?php if((count($attribute_group['attribute']) == 1) && ($attribute['text'] == 'Значение1')) { ?>
	<img src="/картинка">
<?php } ?> 

 

  • +1 1
Надіслати
Поділитися на інших сайтах

В общем, получилась такая конструкция (суть):

 

<?php if(($as==1 OR $ad==1 OR $af==1 OR $ag==1) && $ah != 1){ ?>
<img src="/картинка">
<?php } ?>

Работает! Всем спасибо!

Надіслати
Поділитися на інших сайтах

7 минут назад, Gann сказал:

В общем, получилась такая конструкция (суть):

 

<?php if(($as==1 OR $ad==1 OR $af==1 OR $ag==1) && $ah != 1){ ?>
<img src="/картинка">
<?php } ?>

Работает! Всем спасибо!

 

получилось. - это хорошо..., но огород большой вышел.

в будущем, если кому-то придется работать с данным кодом, - будут Вас вспоминать )

Надіслати
Поділитися на інших сайтах

и еще, как рекомендация - старайтесь интуитивно-понятными создавать переменные (Вам в будущем и самому проще потом будет разобраться), только без фанатизма - не надо слишком длинные.

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.