ssd Опубліковано: 7 серпня 2017 Share Опубліковано: 7 серпня 2017 Помогите пожалуйста как скрыть определенные атрибуты с карточки товара. С форума все перепробовал ничего не получается, ошибка только выводиться или вообще ничего не происходит. Версия opencart 2.1.0.2 кусок кода. Если правильно конечно я нашел код атрибута.. путь /view/theme/yourtheme/template/product/product.tpl <div id="tabs" class="htabs"> <?php if(mb_strlen($description,'utf-8') > 200) { ?> <a href="#tab-description"><?php echo $tab_description; ?></a> <?php } ?> <?php if ($attribute_groups) { ?> <a href="#tab-attribute"><?php echo $tab_attribute; ?></a> <?php } ?> <?php if ($review_status) { ?> <a href="#tab-review"><?php echo $tab_review; ?></a> <?php } ?> </div> Надіслати Поділитися на інших сайтах More sharing options...
GreenDragon Опубліковано: 7 серпня 2017 Share Опубліковано: 7 серпня 2017 Вы нашли названия вкладок; описание, атрибуты и отзывы Надіслати Поділитися на інших сайтах More sharing options... ssd Опубліковано: 7 серпня 2017 Автор Share Опубліковано: 7 серпня 2017 1 минуту назад, greendragon сказал: Вы нашли названия вкладок; описание, атрибуты и отзывы <?php if ($attribute_groups) { ?> <div id="tab-attribute" class="tab-content"> <table class="attribute"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><?php echo $attribute_group['name']; ?></td> </tr> </thead> <tbody> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> </tbody> <?php } ?> </table> </div> этот код? Надіслати Поділитися на інших сайтах More sharing options... GreenDragon Опубліковано: 7 серпня 2017 Share Опубліковано: 7 серпня 2017 Да Надіслати Поділитися на інших сайтах More sharing options... ssd Опубліковано: 7 серпня 2017 Автор Share Опубліковано: 7 серпня 2017 2 минуты назад, greendragon сказал: Да я понял, но этот код скрывает все содержимое атрибута. А мне нужно что бы название атрибута только скрылось с карточки товара Надіслати Поділитися на інших сайтах More sharing options... ssd Опубліковано: 7 серпня 2017 Автор Share Опубліковано: 7 серпня 2017 Надіслати Поділитися на інших сайтах More sharing options... GreenDragon Опубліковано: 7 серпня 2017 Share Опубліковано: 7 серпня 2017 То что вы показываете скрыть - это название группы атрибутов, а не название атрибутов <thead> <tr> <td colspan="2"><?php echo $attribute_group['name']; ?></td> </tr> </thead> Надіслати Поділитися на інших сайтах More sharing options... ssd Опубліковано: 7 серпня 2017 Автор Share Опубліковано: 7 серпня 2017 9 минут назад, greendragon сказал: То что вы показываете скрыть - это название группы атрибутов, а не название атрибутов <thead> <tr> <td colspan="2"><?php echo $attribute_group['name']; ?></td> </tr> </thead> подскажете каким образом его можно скрыть зная ид атрибута? Надіслати Поділитися на інших сайтах More sharing options... rassigor Опубліковано: 7 серпня 2017 Share Опубліковано: 7 серпня 2017 (змінено) Я сделал по колхозному, но это работает ?php if($attribute['attribute_id'] <> 707) { ?> - я присвоил ID, который скрываю <hr <?php if ($options) { ?>style="margin-top:0"<?php } ?> /> <?php if ($show_product_attr && $attribute_groups) { ?> <h5 class="heading"><span><?php echo $lang['text_short_attributes']; ?></span></h5> <div class="attributes"> <?php foreach ($attribute_groups as $key => $attribute_group) { ?> <?php if ($key < $show_product_attr_group) { ?> <?php foreach ($attribute_group['attribute'] as $key => $attribute) { ?> <?php if ($key < $show_product_attr_item) { ?> <?php if($attribute['attribute_id'] <> 707) { ?> <div class="attribute"> <span><span><?php echo $attribute['name']; ?></span></span> <span><span><?php echo $attribute['text']; ?></span></span> </div> <?php } ?> <?php } ?> <?php } ?> <?php } ?> <?php } ?> </div> <a href="" class="show_attr" onclick="$('a[href=\'#tab-specification\']').trigger('click'); scroll_to('#tab-specification'); return false;"><?php echo $lang['text_all_attributes']; ?></a> <hr /> <?php } ?> Змінено 7 серпня 2017 користувачем rassigor 1 Надіслати Поділитися на інших сайтах More sharing options... 3 years later... Gapnob Опубліковано: 9 квітня 2021 Share Опубліковано: 9 квітня 2021 Я сейчас подыму древнюю тему, но возможно кто нибудь знает как скрыть 1 атрибут при наличии наличии у товара другого атрибута?? Надіслати Поділитися на інших сайтах More sharing options... SGrWr_34 Опубліковано: 10 квітня 2021 Share Опубліковано: 10 квітня 2021 <?php $match = false; ?> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <?php if $attribute['id'] == 777 { $match = true; } ?> <?php if ($attribute['id'] == 666 && $match) { ?> // если есть атрибут с id==777 и текущий id==666, то не выводим 666 <?php } else { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> <?php } ?> Но это костыль, так как "скрывающий атрибут" должен появиться в выборке раньше "скрываемого". Сортировкой можно. Или ковырять метод getProductAttributes Надіслати Поділитися на інших сайтах More sharing options... Gapnob Опубліковано: 10 квітня 2021 Share Опубліковано: 10 квітня 2021 (змінено) 6 часов назад, SGrWr_34 сказал: Но это костыль, так как "скрывающий атрибут" должен появиться в выборке раньше "скрываемого". Сортировкой можно. Или ковырять метод getProductAttributes $product_attribute_query = $this->db->query("SELECT a.attribute_id, ad.name, pa.text FROM " . DB_PREFIX . "product_attribute pa LEFT JOIN " . DB_PREFIX . "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " . DB_PREFIX . "attribute_description ad ON (a.attribute_id = ad.attribute_id) WHERE pa.product_id = '" . (int)$product_id . "' AND a.attribute_group_id = '" . (int)$product_attribute_group['attribute_group_id'] . "' AND ad.language_id = '" . (int)$this->config->get('config_language_id') . "' AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' AND a.attribute_id != '26' ORDER BY a.sort_order, ad.name"); Да, я понимаю что мне нужно подправить тут и это убирает нужный мне параметр, но как мне реализовать проверку другого атрибута, я не пойму Змінено 10 квітня 2021 користувачем Gapnob Надіслати Поділитися на інших сайтах More sharing options... SGrWr_34 Опубліковано: 11 квітня 2021 Share Опубліковано: 11 квітня 2021 (змінено) Так вот эта строчка <?php if $attribute['id'] == 777 { $match = true; } ?> и есть проверка атрибута. Если у товара есть атрибут с id==777, то выставляем флаг $match = true; Дальше <?php if ($attribute['id'] == 666 && $match) { ?> если текущий атрибут 666 (тот, который скрываем) и флаг установлен (предыдущее условие - есть "скрывающий атрибут"), то ничего не выводим (скрываем атрибут 666 при условии, что у товара есть атрибут 777). При остальных кейсах обычный вывод атрибутов Змінено 11 квітня 2021 користувачем SGrWr_34 Надіслати Поділитися на інших сайтах More sharing options... Gapnob Опубліковано: 11 квітня 2021 Share Опубліковано: 11 квітня 2021 (змінено) 4 часа назад, SGrWr_34 сказал: <?php if $attribute['id'] == 777 { $match = true; } ?> <?php if ($attribute['id'] == 666 && $match) { ?> если текущий атрибут 666 (тот, который скрываем) и флаг установлен (предыдущее условие - есть "скрывающий атрибут"), то ничего не выводим (скрываем атрибут 666 при условии, что у товара есть атрибут 777). При остальных кейсах обычный вывод атрибутов Так это реально костыльно + вы сами сказали что лучше изменить метод getProductAttributes. У меня атрибуты выводятся в 2 местах (каталог и карточка) и мне лучше затронуть именно данный метод. Могу ли я как то использовать CASE в запросе указанном выше? Хотелось бы сделать сразу корректно и без костылей... Змінено 11 квітня 2021 користувачем Gapnob Надіслати Поділитися на інших сайтах More sharing options... SGrWr_34 Опубліковано: 11 квітня 2021 Share Опубліковано: 11 квітня 2021 Можно делать unset по in_array Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Как скрыть несколько атрибутов на странице товара. Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
ssd Опубліковано: 7 серпня 2017 Автор Share Опубліковано: 7 серпня 2017 1 минуту назад, greendragon сказал: Вы нашли названия вкладок; описание, атрибуты и отзывы <?php if ($attribute_groups) { ?> <div id="tab-attribute" class="tab-content"> <table class="attribute"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><?php echo $attribute_group['name']; ?></td> </tr> </thead> <tbody> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> </tbody> <?php } ?> </table> </div> этот код? Надіслати Поділитися на інших сайтах More sharing options...
GreenDragon Опубліковано: 7 серпня 2017 Share Опубліковано: 7 серпня 2017 Да Надіслати Поділитися на інших сайтах More sharing options... ssd Опубліковано: 7 серпня 2017 Автор Share Опубліковано: 7 серпня 2017 2 минуты назад, greendragon сказал: Да я понял, но этот код скрывает все содержимое атрибута. А мне нужно что бы название атрибута только скрылось с карточки товара Надіслати Поділитися на інших сайтах More sharing options... ssd Опубліковано: 7 серпня 2017 Автор Share Опубліковано: 7 серпня 2017 Надіслати Поділитися на інших сайтах More sharing options... GreenDragon Опубліковано: 7 серпня 2017 Share Опубліковано: 7 серпня 2017 То что вы показываете скрыть - это название группы атрибутов, а не название атрибутов <thead> <tr> <td colspan="2"><?php echo $attribute_group['name']; ?></td> </tr> </thead> Надіслати Поділитися на інших сайтах More sharing options... ssd Опубліковано: 7 серпня 2017 Автор Share Опубліковано: 7 серпня 2017 9 минут назад, greendragon сказал: То что вы показываете скрыть - это название группы атрибутов, а не название атрибутов <thead> <tr> <td colspan="2"><?php echo $attribute_group['name']; ?></td> </tr> </thead> подскажете каким образом его можно скрыть зная ид атрибута? Надіслати Поділитися на інших сайтах More sharing options... rassigor Опубліковано: 7 серпня 2017 Share Опубліковано: 7 серпня 2017 (змінено) Я сделал по колхозному, но это работает ?php if($attribute['attribute_id'] <> 707) { ?> - я присвоил ID, который скрываю <hr <?php if ($options) { ?>style="margin-top:0"<?php } ?> /> <?php if ($show_product_attr && $attribute_groups) { ?> <h5 class="heading"><span><?php echo $lang['text_short_attributes']; ?></span></h5> <div class="attributes"> <?php foreach ($attribute_groups as $key => $attribute_group) { ?> <?php if ($key < $show_product_attr_group) { ?> <?php foreach ($attribute_group['attribute'] as $key => $attribute) { ?> <?php if ($key < $show_product_attr_item) { ?> <?php if($attribute['attribute_id'] <> 707) { ?> <div class="attribute"> <span><span><?php echo $attribute['name']; ?></span></span> <span><span><?php echo $attribute['text']; ?></span></span> </div> <?php } ?> <?php } ?> <?php } ?> <?php } ?> <?php } ?> </div> <a href="" class="show_attr" onclick="$('a[href=\'#tab-specification\']').trigger('click'); scroll_to('#tab-specification'); return false;"><?php echo $lang['text_all_attributes']; ?></a> <hr /> <?php } ?> Змінено 7 серпня 2017 користувачем rassigor 1 Надіслати Поділитися на інших сайтах More sharing options... 3 years later... Gapnob Опубліковано: 9 квітня 2021 Share Опубліковано: 9 квітня 2021 Я сейчас подыму древнюю тему, но возможно кто нибудь знает как скрыть 1 атрибут при наличии наличии у товара другого атрибута?? Надіслати Поділитися на інших сайтах More sharing options... SGrWr_34 Опубліковано: 10 квітня 2021 Share Опубліковано: 10 квітня 2021 <?php $match = false; ?> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <?php if $attribute['id'] == 777 { $match = true; } ?> <?php if ($attribute['id'] == 666 && $match) { ?> // если есть атрибут с id==777 и текущий id==666, то не выводим 666 <?php } else { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> <?php } ?> Но это костыль, так как "скрывающий атрибут" должен появиться в выборке раньше "скрываемого". Сортировкой можно. Или ковырять метод getProductAttributes Надіслати Поділитися на інших сайтах More sharing options... Gapnob Опубліковано: 10 квітня 2021 Share Опубліковано: 10 квітня 2021 (змінено) 6 часов назад, SGrWr_34 сказал: Но это костыль, так как "скрывающий атрибут" должен появиться в выборке раньше "скрываемого". Сортировкой можно. Или ковырять метод getProductAttributes $product_attribute_query = $this->db->query("SELECT a.attribute_id, ad.name, pa.text FROM " . DB_PREFIX . "product_attribute pa LEFT JOIN " . DB_PREFIX . "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " . DB_PREFIX . "attribute_description ad ON (a.attribute_id = ad.attribute_id) WHERE pa.product_id = '" . (int)$product_id . "' AND a.attribute_group_id = '" . (int)$product_attribute_group['attribute_group_id'] . "' AND ad.language_id = '" . (int)$this->config->get('config_language_id') . "' AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' AND a.attribute_id != '26' ORDER BY a.sort_order, ad.name"); Да, я понимаю что мне нужно подправить тут и это убирает нужный мне параметр, но как мне реализовать проверку другого атрибута, я не пойму Змінено 10 квітня 2021 користувачем Gapnob Надіслати Поділитися на інших сайтах More sharing options... SGrWr_34 Опубліковано: 11 квітня 2021 Share Опубліковано: 11 квітня 2021 (змінено) Так вот эта строчка <?php if $attribute['id'] == 777 { $match = true; } ?> и есть проверка атрибута. Если у товара есть атрибут с id==777, то выставляем флаг $match = true; Дальше <?php if ($attribute['id'] == 666 && $match) { ?> если текущий атрибут 666 (тот, который скрываем) и флаг установлен (предыдущее условие - есть "скрывающий атрибут"), то ничего не выводим (скрываем атрибут 666 при условии, что у товара есть атрибут 777). При остальных кейсах обычный вывод атрибутов Змінено 11 квітня 2021 користувачем SGrWr_34 Надіслати Поділитися на інших сайтах More sharing options... Gapnob Опубліковано: 11 квітня 2021 Share Опубліковано: 11 квітня 2021 (змінено) 4 часа назад, SGrWr_34 сказал: <?php if $attribute['id'] == 777 { $match = true; } ?> <?php if ($attribute['id'] == 666 && $match) { ?> если текущий атрибут 666 (тот, который скрываем) и флаг установлен (предыдущее условие - есть "скрывающий атрибут"), то ничего не выводим (скрываем атрибут 666 при условии, что у товара есть атрибут 777). При остальных кейсах обычный вывод атрибутов Так это реально костыльно + вы сами сказали что лучше изменить метод getProductAttributes. У меня атрибуты выводятся в 2 местах (каталог и карточка) и мне лучше затронуть именно данный метод. Могу ли я как то использовать CASE в запросе указанном выше? Хотелось бы сделать сразу корректно и без костылей... Змінено 11 квітня 2021 користувачем Gapnob Надіслати Поділитися на інших сайтах More sharing options... SGrWr_34 Опубліковано: 11 квітня 2021 Share Опубліковано: 11 квітня 2021 Можно делать unset по in_array Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Как скрыть несколько атрибутов на странице товара. Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
ssd Опубліковано: 7 серпня 2017 Автор Share Опубліковано: 7 серпня 2017 2 минуты назад, greendragon сказал: Да я понял, но этот код скрывает все содержимое атрибута. А мне нужно что бы название атрибута только скрылось с карточки товара Надіслати Поділитися на інших сайтах More sharing options...
ssd Опубліковано: 7 серпня 2017 Автор Share Опубліковано: 7 серпня 2017 Надіслати Поділитися на інших сайтах More sharing options...
GreenDragon Опубліковано: 7 серпня 2017 Share Опубліковано: 7 серпня 2017 То что вы показываете скрыть - это название группы атрибутов, а не название атрибутов <thead> <tr> <td colspan="2"><?php echo $attribute_group['name']; ?></td> </tr> </thead> Надіслати Поділитися на інших сайтах More sharing options... ssd Опубліковано: 7 серпня 2017 Автор Share Опубліковано: 7 серпня 2017 9 минут назад, greendragon сказал: То что вы показываете скрыть - это название группы атрибутов, а не название атрибутов <thead> <tr> <td colspan="2"><?php echo $attribute_group['name']; ?></td> </tr> </thead> подскажете каким образом его можно скрыть зная ид атрибута? Надіслати Поділитися на інших сайтах More sharing options... rassigor Опубліковано: 7 серпня 2017 Share Опубліковано: 7 серпня 2017 (змінено) Я сделал по колхозному, но это работает ?php if($attribute['attribute_id'] <> 707) { ?> - я присвоил ID, который скрываю <hr <?php if ($options) { ?>style="margin-top:0"<?php } ?> /> <?php if ($show_product_attr && $attribute_groups) { ?> <h5 class="heading"><span><?php echo $lang['text_short_attributes']; ?></span></h5> <div class="attributes"> <?php foreach ($attribute_groups as $key => $attribute_group) { ?> <?php if ($key < $show_product_attr_group) { ?> <?php foreach ($attribute_group['attribute'] as $key => $attribute) { ?> <?php if ($key < $show_product_attr_item) { ?> <?php if($attribute['attribute_id'] <> 707) { ?> <div class="attribute"> <span><span><?php echo $attribute['name']; ?></span></span> <span><span><?php echo $attribute['text']; ?></span></span> </div> <?php } ?> <?php } ?> <?php } ?> <?php } ?> <?php } ?> </div> <a href="" class="show_attr" onclick="$('a[href=\'#tab-specification\']').trigger('click'); scroll_to('#tab-specification'); return false;"><?php echo $lang['text_all_attributes']; ?></a> <hr /> <?php } ?> Змінено 7 серпня 2017 користувачем rassigor 1 Надіслати Поділитися на інших сайтах More sharing options... 3 years later... Gapnob Опубліковано: 9 квітня 2021 Share Опубліковано: 9 квітня 2021 Я сейчас подыму древнюю тему, но возможно кто нибудь знает как скрыть 1 атрибут при наличии наличии у товара другого атрибута?? Надіслати Поділитися на інших сайтах More sharing options... SGrWr_34 Опубліковано: 10 квітня 2021 Share Опубліковано: 10 квітня 2021 <?php $match = false; ?> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <?php if $attribute['id'] == 777 { $match = true; } ?> <?php if ($attribute['id'] == 666 && $match) { ?> // если есть атрибут с id==777 и текущий id==666, то не выводим 666 <?php } else { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> <?php } ?> Но это костыль, так как "скрывающий атрибут" должен появиться в выборке раньше "скрываемого". Сортировкой можно. Или ковырять метод getProductAttributes Надіслати Поділитися на інших сайтах More sharing options... Gapnob Опубліковано: 10 квітня 2021 Share Опубліковано: 10 квітня 2021 (змінено) 6 часов назад, SGrWr_34 сказал: Но это костыль, так как "скрывающий атрибут" должен появиться в выборке раньше "скрываемого". Сортировкой можно. Или ковырять метод getProductAttributes $product_attribute_query = $this->db->query("SELECT a.attribute_id, ad.name, pa.text FROM " . DB_PREFIX . "product_attribute pa LEFT JOIN " . DB_PREFIX . "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " . DB_PREFIX . "attribute_description ad ON (a.attribute_id = ad.attribute_id) WHERE pa.product_id = '" . (int)$product_id . "' AND a.attribute_group_id = '" . (int)$product_attribute_group['attribute_group_id'] . "' AND ad.language_id = '" . (int)$this->config->get('config_language_id') . "' AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' AND a.attribute_id != '26' ORDER BY a.sort_order, ad.name"); Да, я понимаю что мне нужно подправить тут и это убирает нужный мне параметр, но как мне реализовать проверку другого атрибута, я не пойму Змінено 10 квітня 2021 користувачем Gapnob Надіслати Поділитися на інших сайтах More sharing options... SGrWr_34 Опубліковано: 11 квітня 2021 Share Опубліковано: 11 квітня 2021 (змінено) Так вот эта строчка <?php if $attribute['id'] == 777 { $match = true; } ?> и есть проверка атрибута. Если у товара есть атрибут с id==777, то выставляем флаг $match = true; Дальше <?php if ($attribute['id'] == 666 && $match) { ?> если текущий атрибут 666 (тот, который скрываем) и флаг установлен (предыдущее условие - есть "скрывающий атрибут"), то ничего не выводим (скрываем атрибут 666 при условии, что у товара есть атрибут 777). При остальных кейсах обычный вывод атрибутов Змінено 11 квітня 2021 користувачем SGrWr_34 Надіслати Поділитися на інших сайтах More sharing options... Gapnob Опубліковано: 11 квітня 2021 Share Опубліковано: 11 квітня 2021 (змінено) 4 часа назад, SGrWr_34 сказал: <?php if $attribute['id'] == 777 { $match = true; } ?> <?php if ($attribute['id'] == 666 && $match) { ?> если текущий атрибут 666 (тот, который скрываем) и флаг установлен (предыдущее условие - есть "скрывающий атрибут"), то ничего не выводим (скрываем атрибут 666 при условии, что у товара есть атрибут 777). При остальных кейсах обычный вывод атрибутов Так это реально костыльно + вы сами сказали что лучше изменить метод getProductAttributes. У меня атрибуты выводятся в 2 местах (каталог и карточка) и мне лучше затронуть именно данный метод. Могу ли я как то использовать CASE в запросе указанном выше? Хотелось бы сделать сразу корректно и без костылей... Змінено 11 квітня 2021 користувачем Gapnob Надіслати Поділитися на інших сайтах More sharing options... SGrWr_34 Опубліковано: 11 квітня 2021 Share Опубліковано: 11 квітня 2021 Можно делать unset по in_array Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Как скрыть несколько атрибутов на странице товара. Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000
ssd Опубліковано: 7 серпня 2017 Автор Share Опубліковано: 7 серпня 2017 9 минут назад, greendragon сказал: То что вы показываете скрыть - это название группы атрибутов, а не название атрибутов <thead> <tr> <td colspan="2"><?php echo $attribute_group['name']; ?></td> </tr> </thead> подскажете каким образом его можно скрыть зная ид атрибута? Надіслати Поділитися на інших сайтах More sharing options...
rassigor Опубліковано: 7 серпня 2017 Share Опубліковано: 7 серпня 2017 (змінено) Я сделал по колхозному, но это работает ?php if($attribute['attribute_id'] <> 707) { ?> - я присвоил ID, который скрываю <hr <?php if ($options) { ?>style="margin-top:0"<?php } ?> /> <?php if ($show_product_attr && $attribute_groups) { ?> <h5 class="heading"><span><?php echo $lang['text_short_attributes']; ?></span></h5> <div class="attributes"> <?php foreach ($attribute_groups as $key => $attribute_group) { ?> <?php if ($key < $show_product_attr_group) { ?> <?php foreach ($attribute_group['attribute'] as $key => $attribute) { ?> <?php if ($key < $show_product_attr_item) { ?> <?php if($attribute['attribute_id'] <> 707) { ?> <div class="attribute"> <span><span><?php echo $attribute['name']; ?></span></span> <span><span><?php echo $attribute['text']; ?></span></span> </div> <?php } ?> <?php } ?> <?php } ?> <?php } ?> <?php } ?> </div> <a href="" class="show_attr" onclick="$('a[href=\'#tab-specification\']').trigger('click'); scroll_to('#tab-specification'); return false;"><?php echo $lang['text_all_attributes']; ?></a> <hr /> <?php } ?> Змінено 7 серпня 2017 користувачем rassigor 1 Надіслати Поділитися на інших сайтах More sharing options...
Gapnob Опубліковано: 9 квітня 2021 Share Опубліковано: 9 квітня 2021 Я сейчас подыму древнюю тему, но возможно кто нибудь знает как скрыть 1 атрибут при наличии наличии у товара другого атрибута?? Надіслати Поділитися на інших сайтах More sharing options...
SGrWr_34 Опубліковано: 10 квітня 2021 Share Опубліковано: 10 квітня 2021 <?php $match = false; ?> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <?php if $attribute['id'] == 777 { $match = true; } ?> <?php if ($attribute['id'] == 666 && $match) { ?> // если есть атрибут с id==777 и текущий id==666, то не выводим 666 <?php } else { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> <?php } ?> Но это костыль, так как "скрывающий атрибут" должен появиться в выборке раньше "скрываемого". Сортировкой можно. Или ковырять метод getProductAttributes Надіслати Поділитися на інших сайтах More sharing options... Gapnob Опубліковано: 10 квітня 2021 Share Опубліковано: 10 квітня 2021 (змінено) 6 часов назад, SGrWr_34 сказал: Но это костыль, так как "скрывающий атрибут" должен появиться в выборке раньше "скрываемого". Сортировкой можно. Или ковырять метод getProductAttributes $product_attribute_query = $this->db->query("SELECT a.attribute_id, ad.name, pa.text FROM " . DB_PREFIX . "product_attribute pa LEFT JOIN " . DB_PREFIX . "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " . DB_PREFIX . "attribute_description ad ON (a.attribute_id = ad.attribute_id) WHERE pa.product_id = '" . (int)$product_id . "' AND a.attribute_group_id = '" . (int)$product_attribute_group['attribute_group_id'] . "' AND ad.language_id = '" . (int)$this->config->get('config_language_id') . "' AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' AND a.attribute_id != '26' ORDER BY a.sort_order, ad.name"); Да, я понимаю что мне нужно подправить тут и это убирает нужный мне параметр, но как мне реализовать проверку другого атрибута, я не пойму Змінено 10 квітня 2021 користувачем Gapnob Надіслати Поділитися на інших сайтах More sharing options... SGrWr_34 Опубліковано: 11 квітня 2021 Share Опубліковано: 11 квітня 2021 (змінено) Так вот эта строчка <?php if $attribute['id'] == 777 { $match = true; } ?> и есть проверка атрибута. Если у товара есть атрибут с id==777, то выставляем флаг $match = true; Дальше <?php if ($attribute['id'] == 666 && $match) { ?> если текущий атрибут 666 (тот, который скрываем) и флаг установлен (предыдущее условие - есть "скрывающий атрибут"), то ничего не выводим (скрываем атрибут 666 при условии, что у товара есть атрибут 777). При остальных кейсах обычный вывод атрибутов Змінено 11 квітня 2021 користувачем SGrWr_34 Надіслати Поділитися на інших сайтах More sharing options... Gapnob Опубліковано: 11 квітня 2021 Share Опубліковано: 11 квітня 2021 (змінено) 4 часа назад, SGrWr_34 сказал: <?php if $attribute['id'] == 777 { $match = true; } ?> <?php if ($attribute['id'] == 666 && $match) { ?> если текущий атрибут 666 (тот, который скрываем) и флаг установлен (предыдущее условие - есть "скрывающий атрибут"), то ничего не выводим (скрываем атрибут 666 при условии, что у товара есть атрибут 777). При остальных кейсах обычный вывод атрибутов Так это реально костыльно + вы сами сказали что лучше изменить метод getProductAttributes. У меня атрибуты выводятся в 2 местах (каталог и карточка) и мне лучше затронуть именно данный метод. Могу ли я как то использовать CASE в запросе указанном выше? Хотелось бы сделать сразу корректно и без костылей... Змінено 11 квітня 2021 користувачем Gapnob Надіслати Поділитися на інших сайтах More sharing options... SGrWr_34 Опубліковано: 11 квітня 2021 Share Опубліковано: 11 квітня 2021 Можно делать unset по in_array Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам Как скрыть несколько атрибутов на странице товара.
Gapnob Опубліковано: 10 квітня 2021 Share Опубліковано: 10 квітня 2021 (змінено) 6 часов назад, SGrWr_34 сказал: Но это костыль, так как "скрывающий атрибут" должен появиться в выборке раньше "скрываемого". Сортировкой можно. Или ковырять метод getProductAttributes $product_attribute_query = $this->db->query("SELECT a.attribute_id, ad.name, pa.text FROM " . DB_PREFIX . "product_attribute pa LEFT JOIN " . DB_PREFIX . "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " . DB_PREFIX . "attribute_description ad ON (a.attribute_id = ad.attribute_id) WHERE pa.product_id = '" . (int)$product_id . "' AND a.attribute_group_id = '" . (int)$product_attribute_group['attribute_group_id'] . "' AND ad.language_id = '" . (int)$this->config->get('config_language_id') . "' AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' AND a.attribute_id != '26' ORDER BY a.sort_order, ad.name"); Да, я понимаю что мне нужно подправить тут и это убирает нужный мне параметр, но как мне реализовать проверку другого атрибута, я не пойму Змінено 10 квітня 2021 користувачем Gapnob Надіслати Поділитися на інших сайтах More sharing options...
SGrWr_34 Опубліковано: 11 квітня 2021 Share Опубліковано: 11 квітня 2021 (змінено) Так вот эта строчка <?php if $attribute['id'] == 777 { $match = true; } ?> и есть проверка атрибута. Если у товара есть атрибут с id==777, то выставляем флаг $match = true; Дальше <?php if ($attribute['id'] == 666 && $match) { ?> если текущий атрибут 666 (тот, который скрываем) и флаг установлен (предыдущее условие - есть "скрывающий атрибут"), то ничего не выводим (скрываем атрибут 666 при условии, что у товара есть атрибут 777). При остальных кейсах обычный вывод атрибутов Змінено 11 квітня 2021 користувачем SGrWr_34 Надіслати Поділитися на інших сайтах More sharing options... Gapnob Опубліковано: 11 квітня 2021 Share Опубліковано: 11 квітня 2021 (змінено) 4 часа назад, SGrWr_34 сказал: <?php if $attribute['id'] == 777 { $match = true; } ?> <?php if ($attribute['id'] == 666 && $match) { ?> если текущий атрибут 666 (тот, который скрываем) и флаг установлен (предыдущее условие - есть "скрывающий атрибут"), то ничего не выводим (скрываем атрибут 666 при условии, что у товара есть атрибут 777). При остальных кейсах обычный вывод атрибутов Так это реально костыльно + вы сами сказали что лучше изменить метод getProductAttributes. У меня атрибуты выводятся в 2 местах (каталог и карточка) и мне лучше затронуть именно данный метод. Могу ли я как то использовать CASE в запросе указанном выше? Хотелось бы сделать сразу корректно и без костылей... Змінено 11 квітня 2021 користувачем Gapnob Надіслати Поділитися на інших сайтах More sharing options... SGrWr_34 Опубліковано: 11 квітня 2021 Share Опубліковано: 11 квітня 2021 Можно делать unset по in_array Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
Gapnob Опубліковано: 11 квітня 2021 Share Опубліковано: 11 квітня 2021 (змінено) 4 часа назад, SGrWr_34 сказал: <?php if $attribute['id'] == 777 { $match = true; } ?> <?php if ($attribute['id'] == 666 && $match) { ?> если текущий атрибут 666 (тот, который скрываем) и флаг установлен (предыдущее условие - есть "скрывающий атрибут"), то ничего не выводим (скрываем атрибут 666 при условии, что у товара есть атрибут 777). При остальных кейсах обычный вывод атрибутов Так это реально костыльно + вы сами сказали что лучше изменить метод getProductAttributes. У меня атрибуты выводятся в 2 местах (каталог и карточка) и мне лучше затронуть именно данный метод. Могу ли я как то использовать CASE в запросе указанном выше? Хотелось бы сделать сразу корректно и без костылей... Змінено 11 квітня 2021 користувачем Gapnob Надіслати Поділитися на інших сайтах More sharing options...
SGrWr_34 Опубліковано: 11 квітня 2021 Share Опубліковано: 11 квітня 2021 Можно делать unset по in_array Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2
Recommended Posts