Перейти к содержанию

Рекомендуемые сообщения

Добрые люди, помогите, чем можете 

 

В карточке товара рядом с названием у меня есть кнопка "Подобрать аналог"

	<h1 itemprop="name">
	<?php echo $heading_title;?>
	<?php foreach ($catprod as $catp) { ?>
	<a href="<?php if(end($catprod)===$catp) { foreach ($attribute_groups as $attribute_group) { foreach ($attribute_group['attribute'] as $attribute) { if (in_array($attribute['attribute_id'], array(1949))) { echo $catp['href1']; } elseif (in_array($attribute['attribute_id'], array(1948))) { echo $catp['href2']; } elseif (in_array($attribute['attribute_id'], array(1950))) { echo $catp['href4']; } elseif (in_array($attribute['attribute_id'], array(1949,1948))) { echo $catp['href3']; } elseif ((in_array($attribute['attribute_id'], array(1949))) && (in_array($attribute['attribute_id'], array(1948))) && (in_array($attribute['attribute_id'], array(1950)))) { echo $catp['href5']; } } } } ?>" target="_blank" 
	<?php if(end($catprod)===$catp) { ?> class="btn btn-danger" style="margin-left: 10px; margin-bottom: 5px;" 
	<?php } ?>><?php if(end($catprod)===$catp) { echo $catp['name']; }  } ?></a></h1>

	<?php //echo $catp['href'];  ?>

Вкратце, у меня есть перебор хлебных крошек $catprod и есть перебор атрибутов.

По хлебным крошкам мне нужно брать только последнюю категорию куда входит товар, я отрезаю все остальных элементы вот таким условием, последнюю категорию я записываю в $catp['href'] -

if(end($catprod)===$catp)

Дальше, я в этом условии перебираю все атрибуты, мне нужно выделить 3 ключевых атрибута 1948,1949,1950

И в зависимости от атрибута через кнопку я должен переходить на сформированные уже ссылки. Если в товаре только 1948 атрибут, то одна ссылка href1, если 1948 и 1949 то уже другая href2 и т.д. Конкретно, то что сейчас написано работает, только с одиночными атрибутами, а если атрибутов нет, то я у меня переходит на главную страницу, т.к я не могу придумать условия, когда атрибутов, которые мне нужны нету, ну и с двойными атрибутами то у меня в адресной строке появляются две ссылки href1href2, эту задачу можно решить по разному, но всё тут будет крутить между хлебными крошками и атрибутами, как мне отловить условие, когда нету 1948,1949,1950 атрибутов?

 

Так не работает 

!(in_array($attribute['attribute_id'], array(1949,1950,1948)))

И так тоже 

!((in_array($attribute['attribute_id'], array(1949)))&&(in_array($attribute['attribute_id'], array(1948)))&&(in_array($attribute['attribute_id'], array(1950))))

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какие то костыли.

Всю логику перебора товаров и их атрибутов по категории можно и в самом контроллере провести.

 

1. Последний елемент из хлебных крошек можно взять в самом /catalog/controller/catalog/product.php (и id самой категории)

2. Вместо:

!(in_array($attribute['attribute_id'], array(1949,1950,1948)))

Попробуйте так:

$array = array(1949,1950,1948); // Attribute ID for *

if (!in_array($attribute['attribute_id'], $array) {
// когда не в массиве, то выполняем
}

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.