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

[Решено] Вывод иконок в зависимости от значения атрибута

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

Короче, делаю магаз шин... В атрибутах будут разные параметры, в том числе сезонность: зимние, летние, всесезонки...  Как бы в каталог вывести иконки в зависимости от значения атрибутов? В php плохо соображаю =(((

 

 

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


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

Посмотрите модуль "Бесплатные простые стикеры"

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


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

Делал такое много лет назад

Ссылку в лс скинул. Реализация не сложная. Готов обсудить

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


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

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

https://opencartforum.com/files/file/2590-%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D1%8B-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0-pro-%D0%B0%D0%B2%D1%82%D0%BE%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D1%8B-%D1%81%D1%82%D0%B8%D0%BA%D0%B5%D1%80%D1%8B/

это вторая ПРО версия модуля, если дорого, то есть первая версия, она немного проще то и дешевле.

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


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

Корявые, платные модули  и предложение услуг - это всё очень здорово! Но нужна помощь в написании кода, который будет проверять наличия значения атрибута, что то типа  -

<?php if ( $attribute['name'] == 'Сезонность' && $attribute['text'] == 'Зимняя') {
    echo 'Здесь контент, стикер';
} ?>

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


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

что-то типа "сделайте за меня бесплатно"?

 

особенно на фоне "..В php плохо соображаю"

 

нет знаний и желания платить за готовые решения - учить, делать самому

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


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

Надеюсь, минус в мою репу поднял вам самооценки... 

В общем извните, я просто ошибся темой, хотел в эту написать https://opencartforum.com/forum/40-помощь-программистам-и-разработчикам/ а так как писал ночью - перепутал. Теперь понятно, почему такие ответы накидали =)))

 

нет знаний и желания платить за готовые решения - учить, делать самому

 

Вот вы мне покажите пример - как это сделать и я научусь! Буду делать так же, по аналогии - на других своих проектах...

Изменено пользователем afwollis

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


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

раздел помощи программистам и разработчикам предполагает наличие у вас знаний и умений

помощи в нем просят, выкладывая уже готовый код, в котором где-то затык

 

у вас есть что выложить?

 

у меня нет прав плюсовать/минусовать репутацию, но будь возможность - за тот ответ влепил бы и от себя

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


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

У меня есть небольшие знания в php, хорошо знаю wordpress! А OpenCart похуже... Код у меня тоже есть! 

<?php if ( $attribute['name'] == 'Сезонность' && $attribute['text'] == 'Зимняя') {
    echo 'Здесь контент, стикер';
} ?>

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


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

Читайте ЭТУ тему, выводите атрибуты в категории и там уже ставьте условия, но думаю потраченное время будет стоить дороже готового модуля который предлагали выше.

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


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

Спасибо! Денег мне не жалко, тем более модули совсем недорогие... + я сам ненавижу халявщиков, однако хочу осуществить это с помощью минимального кол-ва кода, чисто и аккуратно (без модулей).

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


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

Кому нужно, вот решение моей проблемы  -

<?php if ($attribute_groups) { ?>
<?php foreach ($attribute_groups as $attribute_group) { ?>
<?php foreach ($attribute_group['attribute'] as $attribute) { ?>
<?php if ( $attribute['name'] == 'Сезонность' && $attribute['text'] == 'Зимняя') {
    echo 'Любой контент';
} ?>
<?php } ?>
<?php } ?>
<?php } ?>

"Любой контент" - например иконка снежинки, как в моём случаи. Если прописать в контроллере функционал по выводу данной информации для соответствующих модулей и страниц, условие можно будет вывести где угодно! И никаких модулей не нужно!

Изменено пользователем DRONGO

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


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

раствор замешивать и на ославьте можно, но ведь есть бетоно мешалка. Неправда ли ? 

И если вам понадобится еше что то сделать вы опять так грубо вмешиваться будете? 

А что будет после реализации 10-15 задач вашим методом ? 

А как поддерживать такое творение в дальнейшем ?

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


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

Извините, что вмешался в свой собственный пост! 

 

А что будет после реализации 10-15 задач вашим методом ? 

А как поддерживать такое творение в дальнейшем ?

 

А никак, 3-5 стикеров вывести таким методом - это за глаза! Поддержки никакой не надо, всё работает как элементарное - 

<font color="red">ti lolik malenkiy</font>
Этому коду, например, требуется какая то поддержка?   :-D

 

И да, зачем бетономешалка, если нужно горсть раствора? Всё гениальное просто, не надо здесь людей разводить. Кстати, именно поэтому я назвал вышеуказанные модули  - корявыми, коими они и являются.

Изменено пользователем afwollis

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


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

Итак, итоги, решение проблемы для категорий, модулей и страницы товара -

 

Для модулей в контроллер -

 

сразу после 

'reviews'    => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),

добавляем

'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']),

Для вывода атрибутов в модулях или категориях - 

<?php if($product['attribute_groups']) { ?>
<?php foreach($product['attribute_groups'] as $attribute_group) { ?>
<?php if(!strpos($attribute_group['name'], "—")) {?>
<?php foreach($attribute_group['attribute'] as $attribute) { ?>
<b><?php echo $attribute['name']; ?></b> <?php echo $attribute['text']; ?><br>
<?php } ?>
<?php } ?>
<?php } ?>
<?php } ?>

Для вывода стикеров, для организации условия  -

 

<?php if($product['attribute_groups']) { ?>
                <?php foreach($product['attribute_groups'] as $attribute_group) { ?>
                        <?php foreach($attribute_group['attribute'] as $attribute) { ?>
                           <?php if ( $attribute['name'] == 'Сезонность' && $attribute['text'] == 'Зимняя') {echo '<div class="inline-info"><b>Сезон</b> Зима</div>';} ?>
                        <?php } ?>
                <?php } ?>
            <?php } ?>

Проблема решена. Спасибо krumax!

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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