ARTEMN5 Опубліковано: 10 січня 2015 Share Опубліковано: 10 січня 2015 Здравствуйте, вопрос: Как сделать картинку для атрибута? Наприер: Есть атрибут возраст, надо его сделать картинкой, а значение текстом. Знаю что у каждого атрибута есть свой id, может можно в карточке товара прописать( но я не знаю как) if значение атрибута такое, высветить картинку. Надіслати Поділитися на інших сайтах More sharing options... Tom Опубліковано: 11 січня 2015 Share Опубліковано: 11 січня 2015 http://www.opencart.com/index.php?route=extension/extension/info&extension_id=5937 Надіслати Поділитися на інших сайтах More sharing options... ARTEMN5 Опубліковано: 11 січня 2015 Автор Share Опубліковано: 11 січня 2015 модуль хороший, но делает наоборот: значение картинкой а название как было так и осталось, это не подойдет( Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 11 січня 2015 Share Опубліковано: 11 січня 2015 Я для этого дорабатывал админку и контроллеры магазина 1. Для атрибута создается создается доп. поле для изображений ( может создаваться в двух местах, в таблице oc_attribute или oc_attribute_description (если для разных языков нужны разные картинки) изменения в модели, контроллере, шаблоне, языковых файлах - не совсем сложные 2. В магазине, в контроллере товара - получить изображение и и в шаблоне его вывести, возможно, не помню, и в модели нужно что-то изменить. Надіслати Поділитися на інших сайтах More sharing options... ingenerks Опубліковано: 11 січня 2015 Share Опубліковано: 11 січня 2015 модуль хороший, но делает наоборот: значение картинкой а название как было так и осталось, это не подойдет( Это ищите? https://opencartforum.com/files/file/2163-%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/ Надіслати Поділитися на інших сайтах More sharing options... ARTEMN5 Опубліковано: 11 січня 2015 Автор Share Опубліковано: 11 січня 2015 Я для этого дорабатывал админку и контроллеры магазина 1. Для атрибута создается создается доп. поле для изображений ( может создаваться в двух местах, в таблице oc_attribute или oc_attribute_description (если для разных языков нужны разные картинки) изменения в модели, контроллере, шаблоне, языковых файлах - не совсем сложные 2. В магазине, в контроллере товара - получить изображение и и в шаблоне его вывести, возможно, не помню, и в модели нужно что-то изменить. Спасибо Chukcha, это то что я изначально хотел узнать :eek: Это ищите? https://opencartforum.com/files/file/2163-%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/ Спасибо Ingenerks, это то что я теперь хочу :-D Надіслати Поділитися на інших сайтах More sharing options... 2 years later... OrganiZzZm Опубліковано: 27 липня 2017 Share Опубліковано: 27 липня 2017 Доброго времени суток, уважаемые форумчане. Собственно интересует та же задача. Пытаюсь справиться своими силами. Исходные данные: движок ocstore 2.3.0.2.1, шаблон - дефолт Что сделано 1. в таблицу oc_attribute добавлена графа icon далее действовал по аналогии с прикреплением изображения к продукту 2. изменен файл admin/model/catalog/attribute.php следующим образом 2.1 в функцию addAttribute() добавлены строки if (isset($data['icon'])) { $this->db->query("UPDATE " . DB_PREFIX . "attribute SET icon = '" . $this->db->escape($data['icon']) . "' WHERE attribute_id = '" . (int)$attribute_id . "'"); } 2.2 в функцию editAttribute() добавлены строки if (isset($data['icon'])) { $this->db->query("UPDATE " . DB_PREFIX . "attribute SET icon = '" . $this->db->escape($data['icon']) . "' WHERE attribute_id = '" . (int)$attribute_id . "'"); } 3. в файл /admin/view/template/catalog/attribute_form.tpl добавлена конструкция <div class="form-group"> <label class="col-sm-2 control-label" for="input-sort-order"><?php echo $entry_icon; ?></label> <div class="col-sm-10"> <a href="" id="thumb-image" data-toggle="image" class="img-thumbnail"><img src="<?php echo $thumb_icon; ?>" alt="" title="" data-placeholder="<?php echo $placeholder_icon; ?>" /></a><input type="hidden" name="icon" value="<?php echo $icon; ?>" id="input-image" /> </div> </div> 4. в файле /admin/controller/catalog/attribute.php в функцию getForm() добавлены строки if (isset($this->request->post['icon'])) { $data['icon'] = $this->request->post['icon']; } elseif (!empty($attribute_info)) { $data['icon'] = $attribute_info['icon']; } else { $data['icon'] = ''; } $this->load->model('tool/icon'); if (isset($this->request->post['icon']) && is_file(DIR_IMAGE . $this->request->post['icon'])) { $data['thumb_icon'] = $this->model_tool_icon->resize($this->request->post['icon'], 100, 100); } elseif (!empty($attribute_info) && is_file(DIR_IMAGE . $attribute_info['icon'])) { $data['thumb_icon'] = $this->model_tool_icon->resize($attribute_info['icon'], 100, 100); } else { $data['thumb_icon'] = $this->model_tool_icon->resize('no_image.png', 100, 100); } $data['placeholder_icon'] = $this->model_tool_icon->resize('no_image.png', 100, 100); Эти мероприятия привели к тому, что в графу icon таблицы oc_attribute прописывается путь к изображению. Однако обратной связи нет. В карточке атрибута это изображение не отображается (попытка считать содержимое $thumb_icon приводит к "Notice: Undefined variable: thumb_icon in ...\admin\view\template\catalog\attribute_form.tpl on line 69" ). Точно так же себя ведет попытка вывести $attribute['icon'] в карточку товара – Undefined index: icon. Складывается впечатление, что в $attribute_info значение графы icon не попадает. Подскажите, пожалуйста, в какую сторону копать дальше? И в каком месте данные переменные объявляются? Подскажите, в какую сторону копать, и где мне их Надіслати Поділитися на інших сайтах More sharing options... OrganiZzZm Опубліковано: 30 липня 2017 Share Опубліковано: 30 липня 2017 с первой частью разобрался. перенес код из п.4 своего предыдущего поста выше по функции getForm() - теперь картинка к атрибуту прикрепляется теперь пытаюсь вывести картинки в карточку товара. в ...\catalog\view\theme\default\template\product\product.tpl это делается так: <div class="tab-pane" id="tab-specification"> <table class="table table-bordered"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><strong><?php echo $attribute_group['name']; ?></strong></td> </tr> </thead> <tbody> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['icon']; ?></td> <!-- добавлена строка --> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> </tbody> <?php } ?> </table> </div> насколько я понимаю, обработкой шаблона ...\catalog\view\theme\default\template\product\product.tpl занимается ...\catalog\controller\product\product.php Меня интересует строка $data['attribute_groups'] = $this->model_catalog_product->getProductAttributes($this->request->get['product_id']); функция getProductAttributes в ...\catalog\model\catalog\product.php выглядит так public function getProductAttributes($product_id) { $product_attribute_group_data = array(); $product_attribute_group_query = $this->db->query("SELECT ag.attribute_group_id, agd.name FROM " . DB_PREFIX . "product_attribute pa LEFT JOIN " . DB_PREFIX . "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " . DB_PREFIX . "attribute_group ag ON (a.attribute_group_id = ag.attribute_group_id) LEFT JOIN " . DB_PREFIX . "attribute_group_description agd ON (ag.attribute_group_id = agd.attribute_group_id) WHERE pa.product_id = '" . (int)$product_id . "' AND agd.language_id = '" . (int)$this->config->get('config_language_id') . "' GROUP BY ag.attribute_group_id ORDER BY ag.sort_order, agd.name"); foreach ($product_attribute_group_query->rows as $product_attribute_group) { $product_attribute_data = array(); $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') . "' ORDER BY a.sort_order, ad.name"); foreach ($product_attribute_query->rows as $product_attribute) { $product_attribute_data[] = array( 'attribute_id' => $product_attribute['attribute_id'], 'name' => $product_attribute['name'], 'icon' => $product_attribute['icon'], // добавлена строка 'text' => $product_attribute['text'] ); } $product_attribute_group_data[] = array( 'attribute_group_id' => $product_attribute_group['attribute_group_id'], 'name' => $product_attribute_group['name'], 'attribute' => $product_attribute_data ); } return $product_attribute_group_data; } в таком виде карточка товара приводит к ошибке Notice: Undefined index: icon in ...\catalog\model\catalog\product.php on line 324. Не могу понять в чем причина, ведь в oc_attribute графа icon присутствует и должна выгружаться в $product_attribute_query Надіслати Поділитися на інших сайтах More sharing options... OrganiZzZm Опубліковано: 30 липня 2017 Share Опубліковано: 30 липня 2017 (змінено) разобрался. в sql-запрос $product_attribute_query добавил a.icon и все заработало. Всем спасибо за внимание. Змінено 30 липня 2017 користувачем OrganiZzZm Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам картинка артибута Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Tom Опубліковано: 11 січня 2015 Share Опубліковано: 11 січня 2015 http://www.opencart.com/index.php?route=extension/extension/info&extension_id=5937 Надіслати Поділитися на інших сайтах More sharing options... ARTEMN5 Опубліковано: 11 січня 2015 Автор Share Опубліковано: 11 січня 2015 модуль хороший, но делает наоборот: значение картинкой а название как было так и осталось, это не подойдет( Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 11 січня 2015 Share Опубліковано: 11 січня 2015 Я для этого дорабатывал админку и контроллеры магазина 1. Для атрибута создается создается доп. поле для изображений ( может создаваться в двух местах, в таблице oc_attribute или oc_attribute_description (если для разных языков нужны разные картинки) изменения в модели, контроллере, шаблоне, языковых файлах - не совсем сложные 2. В магазине, в контроллере товара - получить изображение и и в шаблоне его вывести, возможно, не помню, и в модели нужно что-то изменить. Надіслати Поділитися на інших сайтах More sharing options... ingenerks Опубліковано: 11 січня 2015 Share Опубліковано: 11 січня 2015 модуль хороший, но делает наоборот: значение картинкой а название как было так и осталось, это не подойдет( Это ищите? https://opencartforum.com/files/file/2163-%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/ Надіслати Поділитися на інших сайтах More sharing options... ARTEMN5 Опубліковано: 11 січня 2015 Автор Share Опубліковано: 11 січня 2015 Я для этого дорабатывал админку и контроллеры магазина 1. Для атрибута создается создается доп. поле для изображений ( может создаваться в двух местах, в таблице oc_attribute или oc_attribute_description (если для разных языков нужны разные картинки) изменения в модели, контроллере, шаблоне, языковых файлах - не совсем сложные 2. В магазине, в контроллере товара - получить изображение и и в шаблоне его вывести, возможно, не помню, и в модели нужно что-то изменить. Спасибо Chukcha, это то что я изначально хотел узнать :eek: Это ищите? https://opencartforum.com/files/file/2163-%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/ Спасибо Ingenerks, это то что я теперь хочу :-D Надіслати Поділитися на інших сайтах More sharing options... 2 years later... OrganiZzZm Опубліковано: 27 липня 2017 Share Опубліковано: 27 липня 2017 Доброго времени суток, уважаемые форумчане. Собственно интересует та же задача. Пытаюсь справиться своими силами. Исходные данные: движок ocstore 2.3.0.2.1, шаблон - дефолт Что сделано 1. в таблицу oc_attribute добавлена графа icon далее действовал по аналогии с прикреплением изображения к продукту 2. изменен файл admin/model/catalog/attribute.php следующим образом 2.1 в функцию addAttribute() добавлены строки if (isset($data['icon'])) { $this->db->query("UPDATE " . DB_PREFIX . "attribute SET icon = '" . $this->db->escape($data['icon']) . "' WHERE attribute_id = '" . (int)$attribute_id . "'"); } 2.2 в функцию editAttribute() добавлены строки if (isset($data['icon'])) { $this->db->query("UPDATE " . DB_PREFIX . "attribute SET icon = '" . $this->db->escape($data['icon']) . "' WHERE attribute_id = '" . (int)$attribute_id . "'"); } 3. в файл /admin/view/template/catalog/attribute_form.tpl добавлена конструкция <div class="form-group"> <label class="col-sm-2 control-label" for="input-sort-order"><?php echo $entry_icon; ?></label> <div class="col-sm-10"> <a href="" id="thumb-image" data-toggle="image" class="img-thumbnail"><img src="<?php echo $thumb_icon; ?>" alt="" title="" data-placeholder="<?php echo $placeholder_icon; ?>" /></a><input type="hidden" name="icon" value="<?php echo $icon; ?>" id="input-image" /> </div> </div> 4. в файле /admin/controller/catalog/attribute.php в функцию getForm() добавлены строки if (isset($this->request->post['icon'])) { $data['icon'] = $this->request->post['icon']; } elseif (!empty($attribute_info)) { $data['icon'] = $attribute_info['icon']; } else { $data['icon'] = ''; } $this->load->model('tool/icon'); if (isset($this->request->post['icon']) && is_file(DIR_IMAGE . $this->request->post['icon'])) { $data['thumb_icon'] = $this->model_tool_icon->resize($this->request->post['icon'], 100, 100); } elseif (!empty($attribute_info) && is_file(DIR_IMAGE . $attribute_info['icon'])) { $data['thumb_icon'] = $this->model_tool_icon->resize($attribute_info['icon'], 100, 100); } else { $data['thumb_icon'] = $this->model_tool_icon->resize('no_image.png', 100, 100); } $data['placeholder_icon'] = $this->model_tool_icon->resize('no_image.png', 100, 100); Эти мероприятия привели к тому, что в графу icon таблицы oc_attribute прописывается путь к изображению. Однако обратной связи нет. В карточке атрибута это изображение не отображается (попытка считать содержимое $thumb_icon приводит к "Notice: Undefined variable: thumb_icon in ...\admin\view\template\catalog\attribute_form.tpl on line 69" ). Точно так же себя ведет попытка вывести $attribute['icon'] в карточку товара – Undefined index: icon. Складывается впечатление, что в $attribute_info значение графы icon не попадает. Подскажите, пожалуйста, в какую сторону копать дальше? И в каком месте данные переменные объявляются? Подскажите, в какую сторону копать, и где мне их Надіслати Поділитися на інших сайтах More sharing options... OrganiZzZm Опубліковано: 30 липня 2017 Share Опубліковано: 30 липня 2017 с первой частью разобрался. перенес код из п.4 своего предыдущего поста выше по функции getForm() - теперь картинка к атрибуту прикрепляется теперь пытаюсь вывести картинки в карточку товара. в ...\catalog\view\theme\default\template\product\product.tpl это делается так: <div class="tab-pane" id="tab-specification"> <table class="table table-bordered"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><strong><?php echo $attribute_group['name']; ?></strong></td> </tr> </thead> <tbody> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['icon']; ?></td> <!-- добавлена строка --> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> </tbody> <?php } ?> </table> </div> насколько я понимаю, обработкой шаблона ...\catalog\view\theme\default\template\product\product.tpl занимается ...\catalog\controller\product\product.php Меня интересует строка $data['attribute_groups'] = $this->model_catalog_product->getProductAttributes($this->request->get['product_id']); функция getProductAttributes в ...\catalog\model\catalog\product.php выглядит так public function getProductAttributes($product_id) { $product_attribute_group_data = array(); $product_attribute_group_query = $this->db->query("SELECT ag.attribute_group_id, agd.name FROM " . DB_PREFIX . "product_attribute pa LEFT JOIN " . DB_PREFIX . "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " . DB_PREFIX . "attribute_group ag ON (a.attribute_group_id = ag.attribute_group_id) LEFT JOIN " . DB_PREFIX . "attribute_group_description agd ON (ag.attribute_group_id = agd.attribute_group_id) WHERE pa.product_id = '" . (int)$product_id . "' AND agd.language_id = '" . (int)$this->config->get('config_language_id') . "' GROUP BY ag.attribute_group_id ORDER BY ag.sort_order, agd.name"); foreach ($product_attribute_group_query->rows as $product_attribute_group) { $product_attribute_data = array(); $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') . "' ORDER BY a.sort_order, ad.name"); foreach ($product_attribute_query->rows as $product_attribute) { $product_attribute_data[] = array( 'attribute_id' => $product_attribute['attribute_id'], 'name' => $product_attribute['name'], 'icon' => $product_attribute['icon'], // добавлена строка 'text' => $product_attribute['text'] ); } $product_attribute_group_data[] = array( 'attribute_group_id' => $product_attribute_group['attribute_group_id'], 'name' => $product_attribute_group['name'], 'attribute' => $product_attribute_data ); } return $product_attribute_group_data; } в таком виде карточка товара приводит к ошибке Notice: Undefined index: icon in ...\catalog\model\catalog\product.php on line 324. Не могу понять в чем причина, ведь в oc_attribute графа icon присутствует и должна выгружаться в $product_attribute_query Надіслати Поділитися на інших сайтах More sharing options... OrganiZzZm Опубліковано: 30 липня 2017 Share Опубліковано: 30 липня 2017 (змінено) разобрался. в sql-запрос $product_attribute_query добавил a.icon и все заработало. Всем спасибо за внимание. Змінено 30 липня 2017 користувачем OrganiZzZm Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам картинка артибута Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
ARTEMN5 Опубліковано: 11 січня 2015 Автор Share Опубліковано: 11 січня 2015 модуль хороший, но делает наоборот: значение картинкой а название как было так и осталось, это не подойдет( Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 11 січня 2015 Share Опубліковано: 11 січня 2015 Я для этого дорабатывал админку и контроллеры магазина 1. Для атрибута создается создается доп. поле для изображений ( может создаваться в двух местах, в таблице oc_attribute или oc_attribute_description (если для разных языков нужны разные картинки) изменения в модели, контроллере, шаблоне, языковых файлах - не совсем сложные 2. В магазине, в контроллере товара - получить изображение и и в шаблоне его вывести, возможно, не помню, и в модели нужно что-то изменить. Надіслати Поділитися на інших сайтах More sharing options... ingenerks Опубліковано: 11 січня 2015 Share Опубліковано: 11 січня 2015 модуль хороший, но делает наоборот: значение картинкой а название как было так и осталось, это не подойдет( Это ищите? https://opencartforum.com/files/file/2163-%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/ Надіслати Поділитися на інших сайтах More sharing options... ARTEMN5 Опубліковано: 11 січня 2015 Автор Share Опубліковано: 11 січня 2015 Я для этого дорабатывал админку и контроллеры магазина 1. Для атрибута создается создается доп. поле для изображений ( может создаваться в двух местах, в таблице oc_attribute или oc_attribute_description (если для разных языков нужны разные картинки) изменения в модели, контроллере, шаблоне, языковых файлах - не совсем сложные 2. В магазине, в контроллере товара - получить изображение и и в шаблоне его вывести, возможно, не помню, и в модели нужно что-то изменить. Спасибо Chukcha, это то что я изначально хотел узнать :eek: Это ищите? https://opencartforum.com/files/file/2163-%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/ Спасибо Ingenerks, это то что я теперь хочу :-D Надіслати Поділитися на інших сайтах More sharing options... 2 years later... OrganiZzZm Опубліковано: 27 липня 2017 Share Опубліковано: 27 липня 2017 Доброго времени суток, уважаемые форумчане. Собственно интересует та же задача. Пытаюсь справиться своими силами. Исходные данные: движок ocstore 2.3.0.2.1, шаблон - дефолт Что сделано 1. в таблицу oc_attribute добавлена графа icon далее действовал по аналогии с прикреплением изображения к продукту 2. изменен файл admin/model/catalog/attribute.php следующим образом 2.1 в функцию addAttribute() добавлены строки if (isset($data['icon'])) { $this->db->query("UPDATE " . DB_PREFIX . "attribute SET icon = '" . $this->db->escape($data['icon']) . "' WHERE attribute_id = '" . (int)$attribute_id . "'"); } 2.2 в функцию editAttribute() добавлены строки if (isset($data['icon'])) { $this->db->query("UPDATE " . DB_PREFIX . "attribute SET icon = '" . $this->db->escape($data['icon']) . "' WHERE attribute_id = '" . (int)$attribute_id . "'"); } 3. в файл /admin/view/template/catalog/attribute_form.tpl добавлена конструкция <div class="form-group"> <label class="col-sm-2 control-label" for="input-sort-order"><?php echo $entry_icon; ?></label> <div class="col-sm-10"> <a href="" id="thumb-image" data-toggle="image" class="img-thumbnail"><img src="<?php echo $thumb_icon; ?>" alt="" title="" data-placeholder="<?php echo $placeholder_icon; ?>" /></a><input type="hidden" name="icon" value="<?php echo $icon; ?>" id="input-image" /> </div> </div> 4. в файле /admin/controller/catalog/attribute.php в функцию getForm() добавлены строки if (isset($this->request->post['icon'])) { $data['icon'] = $this->request->post['icon']; } elseif (!empty($attribute_info)) { $data['icon'] = $attribute_info['icon']; } else { $data['icon'] = ''; } $this->load->model('tool/icon'); if (isset($this->request->post['icon']) && is_file(DIR_IMAGE . $this->request->post['icon'])) { $data['thumb_icon'] = $this->model_tool_icon->resize($this->request->post['icon'], 100, 100); } elseif (!empty($attribute_info) && is_file(DIR_IMAGE . $attribute_info['icon'])) { $data['thumb_icon'] = $this->model_tool_icon->resize($attribute_info['icon'], 100, 100); } else { $data['thumb_icon'] = $this->model_tool_icon->resize('no_image.png', 100, 100); } $data['placeholder_icon'] = $this->model_tool_icon->resize('no_image.png', 100, 100); Эти мероприятия привели к тому, что в графу icon таблицы oc_attribute прописывается путь к изображению. Однако обратной связи нет. В карточке атрибута это изображение не отображается (попытка считать содержимое $thumb_icon приводит к "Notice: Undefined variable: thumb_icon in ...\admin\view\template\catalog\attribute_form.tpl on line 69" ). Точно так же себя ведет попытка вывести $attribute['icon'] в карточку товара – Undefined index: icon. Складывается впечатление, что в $attribute_info значение графы icon не попадает. Подскажите, пожалуйста, в какую сторону копать дальше? И в каком месте данные переменные объявляются? Подскажите, в какую сторону копать, и где мне их Надіслати Поділитися на інших сайтах More sharing options... OrganiZzZm Опубліковано: 30 липня 2017 Share Опубліковано: 30 липня 2017 с первой частью разобрался. перенес код из п.4 своего предыдущего поста выше по функции getForm() - теперь картинка к атрибуту прикрепляется теперь пытаюсь вывести картинки в карточку товара. в ...\catalog\view\theme\default\template\product\product.tpl это делается так: <div class="tab-pane" id="tab-specification"> <table class="table table-bordered"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><strong><?php echo $attribute_group['name']; ?></strong></td> </tr> </thead> <tbody> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['icon']; ?></td> <!-- добавлена строка --> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> </tbody> <?php } ?> </table> </div> насколько я понимаю, обработкой шаблона ...\catalog\view\theme\default\template\product\product.tpl занимается ...\catalog\controller\product\product.php Меня интересует строка $data['attribute_groups'] = $this->model_catalog_product->getProductAttributes($this->request->get['product_id']); функция getProductAttributes в ...\catalog\model\catalog\product.php выглядит так public function getProductAttributes($product_id) { $product_attribute_group_data = array(); $product_attribute_group_query = $this->db->query("SELECT ag.attribute_group_id, agd.name FROM " . DB_PREFIX . "product_attribute pa LEFT JOIN " . DB_PREFIX . "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " . DB_PREFIX . "attribute_group ag ON (a.attribute_group_id = ag.attribute_group_id) LEFT JOIN " . DB_PREFIX . "attribute_group_description agd ON (ag.attribute_group_id = agd.attribute_group_id) WHERE pa.product_id = '" . (int)$product_id . "' AND agd.language_id = '" . (int)$this->config->get('config_language_id') . "' GROUP BY ag.attribute_group_id ORDER BY ag.sort_order, agd.name"); foreach ($product_attribute_group_query->rows as $product_attribute_group) { $product_attribute_data = array(); $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') . "' ORDER BY a.sort_order, ad.name"); foreach ($product_attribute_query->rows as $product_attribute) { $product_attribute_data[] = array( 'attribute_id' => $product_attribute['attribute_id'], 'name' => $product_attribute['name'], 'icon' => $product_attribute['icon'], // добавлена строка 'text' => $product_attribute['text'] ); } $product_attribute_group_data[] = array( 'attribute_group_id' => $product_attribute_group['attribute_group_id'], 'name' => $product_attribute_group['name'], 'attribute' => $product_attribute_data ); } return $product_attribute_group_data; } в таком виде карточка товара приводит к ошибке Notice: Undefined index: icon in ...\catalog\model\catalog\product.php on line 324. Не могу понять в чем причина, ведь в oc_attribute графа icon присутствует и должна выгружаться в $product_attribute_query Надіслати Поділитися на інших сайтах More sharing options... OrganiZzZm Опубліковано: 30 липня 2017 Share Опубліковано: 30 липня 2017 (змінено) разобрался. в sql-запрос $product_attribute_query добавил a.icon и все заработало. Всем спасибо за внимание. Змінено 30 липня 2017 користувачем OrganiZzZm Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам картинка артибута Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
chukcha Опубліковано: 11 січня 2015 Share Опубліковано: 11 січня 2015 Я для этого дорабатывал админку и контроллеры магазина 1. Для атрибута создается создается доп. поле для изображений ( может создаваться в двух местах, в таблице oc_attribute или oc_attribute_description (если для разных языков нужны разные картинки) изменения в модели, контроллере, шаблоне, языковых файлах - не совсем сложные 2. В магазине, в контроллере товара - получить изображение и и в шаблоне его вывести, возможно, не помню, и в модели нужно что-то изменить. Надіслати Поділитися на інших сайтах More sharing options... ingenerks Опубліковано: 11 січня 2015 Share Опубліковано: 11 січня 2015 модуль хороший, но делает наоборот: значение картинкой а название как было так и осталось, это не подойдет( Это ищите? https://opencartforum.com/files/file/2163-%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/ Надіслати Поділитися на інших сайтах More sharing options... ARTEMN5 Опубліковано: 11 січня 2015 Автор Share Опубліковано: 11 січня 2015 Я для этого дорабатывал админку и контроллеры магазина 1. Для атрибута создается создается доп. поле для изображений ( может создаваться в двух местах, в таблице oc_attribute или oc_attribute_description (если для разных языков нужны разные картинки) изменения в модели, контроллере, шаблоне, языковых файлах - не совсем сложные 2. В магазине, в контроллере товара - получить изображение и и в шаблоне его вывести, возможно, не помню, и в модели нужно что-то изменить. Спасибо Chukcha, это то что я изначально хотел узнать :eek: Это ищите? https://opencartforum.com/files/file/2163-%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/ Спасибо Ingenerks, это то что я теперь хочу :-D Надіслати Поділитися на інших сайтах More sharing options... 2 years later... OrganiZzZm Опубліковано: 27 липня 2017 Share Опубліковано: 27 липня 2017 Доброго времени суток, уважаемые форумчане. Собственно интересует та же задача. Пытаюсь справиться своими силами. Исходные данные: движок ocstore 2.3.0.2.1, шаблон - дефолт Что сделано 1. в таблицу oc_attribute добавлена графа icon далее действовал по аналогии с прикреплением изображения к продукту 2. изменен файл admin/model/catalog/attribute.php следующим образом 2.1 в функцию addAttribute() добавлены строки if (isset($data['icon'])) { $this->db->query("UPDATE " . DB_PREFIX . "attribute SET icon = '" . $this->db->escape($data['icon']) . "' WHERE attribute_id = '" . (int)$attribute_id . "'"); } 2.2 в функцию editAttribute() добавлены строки if (isset($data['icon'])) { $this->db->query("UPDATE " . DB_PREFIX . "attribute SET icon = '" . $this->db->escape($data['icon']) . "' WHERE attribute_id = '" . (int)$attribute_id . "'"); } 3. в файл /admin/view/template/catalog/attribute_form.tpl добавлена конструкция <div class="form-group"> <label class="col-sm-2 control-label" for="input-sort-order"><?php echo $entry_icon; ?></label> <div class="col-sm-10"> <a href="" id="thumb-image" data-toggle="image" class="img-thumbnail"><img src="<?php echo $thumb_icon; ?>" alt="" title="" data-placeholder="<?php echo $placeholder_icon; ?>" /></a><input type="hidden" name="icon" value="<?php echo $icon; ?>" id="input-image" /> </div> </div> 4. в файле /admin/controller/catalog/attribute.php в функцию getForm() добавлены строки if (isset($this->request->post['icon'])) { $data['icon'] = $this->request->post['icon']; } elseif (!empty($attribute_info)) { $data['icon'] = $attribute_info['icon']; } else { $data['icon'] = ''; } $this->load->model('tool/icon'); if (isset($this->request->post['icon']) && is_file(DIR_IMAGE . $this->request->post['icon'])) { $data['thumb_icon'] = $this->model_tool_icon->resize($this->request->post['icon'], 100, 100); } elseif (!empty($attribute_info) && is_file(DIR_IMAGE . $attribute_info['icon'])) { $data['thumb_icon'] = $this->model_tool_icon->resize($attribute_info['icon'], 100, 100); } else { $data['thumb_icon'] = $this->model_tool_icon->resize('no_image.png', 100, 100); } $data['placeholder_icon'] = $this->model_tool_icon->resize('no_image.png', 100, 100); Эти мероприятия привели к тому, что в графу icon таблицы oc_attribute прописывается путь к изображению. Однако обратной связи нет. В карточке атрибута это изображение не отображается (попытка считать содержимое $thumb_icon приводит к "Notice: Undefined variable: thumb_icon in ...\admin\view\template\catalog\attribute_form.tpl on line 69" ). Точно так же себя ведет попытка вывести $attribute['icon'] в карточку товара – Undefined index: icon. Складывается впечатление, что в $attribute_info значение графы icon не попадает. Подскажите, пожалуйста, в какую сторону копать дальше? И в каком месте данные переменные объявляются? Подскажите, в какую сторону копать, и где мне их Надіслати Поділитися на інших сайтах More sharing options... OrganiZzZm Опубліковано: 30 липня 2017 Share Опубліковано: 30 липня 2017 с первой частью разобрался. перенес код из п.4 своего предыдущего поста выше по функции getForm() - теперь картинка к атрибуту прикрепляется теперь пытаюсь вывести картинки в карточку товара. в ...\catalog\view\theme\default\template\product\product.tpl это делается так: <div class="tab-pane" id="tab-specification"> <table class="table table-bordered"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><strong><?php echo $attribute_group['name']; ?></strong></td> </tr> </thead> <tbody> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['icon']; ?></td> <!-- добавлена строка --> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> </tbody> <?php } ?> </table> </div> насколько я понимаю, обработкой шаблона ...\catalog\view\theme\default\template\product\product.tpl занимается ...\catalog\controller\product\product.php Меня интересует строка $data['attribute_groups'] = $this->model_catalog_product->getProductAttributes($this->request->get['product_id']); функция getProductAttributes в ...\catalog\model\catalog\product.php выглядит так public function getProductAttributes($product_id) { $product_attribute_group_data = array(); $product_attribute_group_query = $this->db->query("SELECT ag.attribute_group_id, agd.name FROM " . DB_PREFIX . "product_attribute pa LEFT JOIN " . DB_PREFIX . "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " . DB_PREFIX . "attribute_group ag ON (a.attribute_group_id = ag.attribute_group_id) LEFT JOIN " . DB_PREFIX . "attribute_group_description agd ON (ag.attribute_group_id = agd.attribute_group_id) WHERE pa.product_id = '" . (int)$product_id . "' AND agd.language_id = '" . (int)$this->config->get('config_language_id') . "' GROUP BY ag.attribute_group_id ORDER BY ag.sort_order, agd.name"); foreach ($product_attribute_group_query->rows as $product_attribute_group) { $product_attribute_data = array(); $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') . "' ORDER BY a.sort_order, ad.name"); foreach ($product_attribute_query->rows as $product_attribute) { $product_attribute_data[] = array( 'attribute_id' => $product_attribute['attribute_id'], 'name' => $product_attribute['name'], 'icon' => $product_attribute['icon'], // добавлена строка 'text' => $product_attribute['text'] ); } $product_attribute_group_data[] = array( 'attribute_group_id' => $product_attribute_group['attribute_group_id'], 'name' => $product_attribute_group['name'], 'attribute' => $product_attribute_data ); } return $product_attribute_group_data; } в таком виде карточка товара приводит к ошибке Notice: Undefined index: icon in ...\catalog\model\catalog\product.php on line 324. Не могу понять в чем причина, ведь в oc_attribute графа icon присутствует и должна выгружаться в $product_attribute_query Надіслати Поділитися на інших сайтах More sharing options... OrganiZzZm Опубліковано: 30 липня 2017 Share Опубліковано: 30 липня 2017 (змінено) разобрался. в sql-запрос $product_attribute_query добавил a.icon и все заработало. Всем спасибо за внимание. Змінено 30 липня 2017 користувачем OrganiZzZm Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Допомога програмістам та розробникам картинка артибута
ingenerks Опубліковано: 11 січня 2015 Share Опубліковано: 11 січня 2015 модуль хороший, но делает наоборот: значение картинкой а название как было так и осталось, это не подойдет( Это ищите? https://opencartforum.com/files/file/2163-%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/ Надіслати Поділитися на інших сайтах More sharing options... ARTEMN5 Опубліковано: 11 січня 2015 Автор Share Опубліковано: 11 січня 2015 Я для этого дорабатывал админку и контроллеры магазина 1. Для атрибута создается создается доп. поле для изображений ( может создаваться в двух местах, в таблице oc_attribute или oc_attribute_description (если для разных языков нужны разные картинки) изменения в модели, контроллере, шаблоне, языковых файлах - не совсем сложные 2. В магазине, в контроллере товара - получить изображение и и в шаблоне его вывести, возможно, не помню, и в модели нужно что-то изменить. Спасибо Chukcha, это то что я изначально хотел узнать :eek: Это ищите? https://opencartforum.com/files/file/2163-%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/ Спасибо Ingenerks, это то что я теперь хочу :-D Надіслати Поділитися на інших сайтах More sharing options... 2 years later... OrganiZzZm Опубліковано: 27 липня 2017 Share Опубліковано: 27 липня 2017 Доброго времени суток, уважаемые форумчане. Собственно интересует та же задача. Пытаюсь справиться своими силами. Исходные данные: движок ocstore 2.3.0.2.1, шаблон - дефолт Что сделано 1. в таблицу oc_attribute добавлена графа icon далее действовал по аналогии с прикреплением изображения к продукту 2. изменен файл admin/model/catalog/attribute.php следующим образом 2.1 в функцию addAttribute() добавлены строки if (isset($data['icon'])) { $this->db->query("UPDATE " . DB_PREFIX . "attribute SET icon = '" . $this->db->escape($data['icon']) . "' WHERE attribute_id = '" . (int)$attribute_id . "'"); } 2.2 в функцию editAttribute() добавлены строки if (isset($data['icon'])) { $this->db->query("UPDATE " . DB_PREFIX . "attribute SET icon = '" . $this->db->escape($data['icon']) . "' WHERE attribute_id = '" . (int)$attribute_id . "'"); } 3. в файл /admin/view/template/catalog/attribute_form.tpl добавлена конструкция <div class="form-group"> <label class="col-sm-2 control-label" for="input-sort-order"><?php echo $entry_icon; ?></label> <div class="col-sm-10"> <a href="" id="thumb-image" data-toggle="image" class="img-thumbnail"><img src="<?php echo $thumb_icon; ?>" alt="" title="" data-placeholder="<?php echo $placeholder_icon; ?>" /></a><input type="hidden" name="icon" value="<?php echo $icon; ?>" id="input-image" /> </div> </div> 4. в файле /admin/controller/catalog/attribute.php в функцию getForm() добавлены строки if (isset($this->request->post['icon'])) { $data['icon'] = $this->request->post['icon']; } elseif (!empty($attribute_info)) { $data['icon'] = $attribute_info['icon']; } else { $data['icon'] = ''; } $this->load->model('tool/icon'); if (isset($this->request->post['icon']) && is_file(DIR_IMAGE . $this->request->post['icon'])) { $data['thumb_icon'] = $this->model_tool_icon->resize($this->request->post['icon'], 100, 100); } elseif (!empty($attribute_info) && is_file(DIR_IMAGE . $attribute_info['icon'])) { $data['thumb_icon'] = $this->model_tool_icon->resize($attribute_info['icon'], 100, 100); } else { $data['thumb_icon'] = $this->model_tool_icon->resize('no_image.png', 100, 100); } $data['placeholder_icon'] = $this->model_tool_icon->resize('no_image.png', 100, 100); Эти мероприятия привели к тому, что в графу icon таблицы oc_attribute прописывается путь к изображению. Однако обратной связи нет. В карточке атрибута это изображение не отображается (попытка считать содержимое $thumb_icon приводит к "Notice: Undefined variable: thumb_icon in ...\admin\view\template\catalog\attribute_form.tpl on line 69" ). Точно так же себя ведет попытка вывести $attribute['icon'] в карточку товара – Undefined index: icon. Складывается впечатление, что в $attribute_info значение графы icon не попадает. Подскажите, пожалуйста, в какую сторону копать дальше? И в каком месте данные переменные объявляются? Подскажите, в какую сторону копать, и где мне их Надіслати Поділитися на інших сайтах More sharing options... OrganiZzZm Опубліковано: 30 липня 2017 Share Опубліковано: 30 липня 2017 с первой частью разобрался. перенес код из п.4 своего предыдущего поста выше по функции getForm() - теперь картинка к атрибуту прикрепляется теперь пытаюсь вывести картинки в карточку товара. в ...\catalog\view\theme\default\template\product\product.tpl это делается так: <div class="tab-pane" id="tab-specification"> <table class="table table-bordered"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><strong><?php echo $attribute_group['name']; ?></strong></td> </tr> </thead> <tbody> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['icon']; ?></td> <!-- добавлена строка --> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> </tbody> <?php } ?> </table> </div> насколько я понимаю, обработкой шаблона ...\catalog\view\theme\default\template\product\product.tpl занимается ...\catalog\controller\product\product.php Меня интересует строка $data['attribute_groups'] = $this->model_catalog_product->getProductAttributes($this->request->get['product_id']); функция getProductAttributes в ...\catalog\model\catalog\product.php выглядит так public function getProductAttributes($product_id) { $product_attribute_group_data = array(); $product_attribute_group_query = $this->db->query("SELECT ag.attribute_group_id, agd.name FROM " . DB_PREFIX . "product_attribute pa LEFT JOIN " . DB_PREFIX . "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " . DB_PREFIX . "attribute_group ag ON (a.attribute_group_id = ag.attribute_group_id) LEFT JOIN " . DB_PREFIX . "attribute_group_description agd ON (ag.attribute_group_id = agd.attribute_group_id) WHERE pa.product_id = '" . (int)$product_id . "' AND agd.language_id = '" . (int)$this->config->get('config_language_id') . "' GROUP BY ag.attribute_group_id ORDER BY ag.sort_order, agd.name"); foreach ($product_attribute_group_query->rows as $product_attribute_group) { $product_attribute_data = array(); $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') . "' ORDER BY a.sort_order, ad.name"); foreach ($product_attribute_query->rows as $product_attribute) { $product_attribute_data[] = array( 'attribute_id' => $product_attribute['attribute_id'], 'name' => $product_attribute['name'], 'icon' => $product_attribute['icon'], // добавлена строка 'text' => $product_attribute['text'] ); } $product_attribute_group_data[] = array( 'attribute_group_id' => $product_attribute_group['attribute_group_id'], 'name' => $product_attribute_group['name'], 'attribute' => $product_attribute_data ); } return $product_attribute_group_data; } в таком виде карточка товара приводит к ошибке Notice: Undefined index: icon in ...\catalog\model\catalog\product.php on line 324. Не могу понять в чем причина, ведь в oc_attribute графа icon присутствует и должна выгружаться в $product_attribute_query Надіслати Поділитися на інших сайтах More sharing options... OrganiZzZm Опубліковано: 30 липня 2017 Share Опубліковано: 30 липня 2017 (змінено) разобрался. в sql-запрос $product_attribute_query добавил a.icon и все заработало. Всем спасибо за внимание. Змінено 30 липня 2017 користувачем OrganiZzZm Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
ARTEMN5 Опубліковано: 11 січня 2015 Автор Share Опубліковано: 11 січня 2015 Я для этого дорабатывал админку и контроллеры магазина 1. Для атрибута создается создается доп. поле для изображений ( может создаваться в двух местах, в таблице oc_attribute или oc_attribute_description (если для разных языков нужны разные картинки) изменения в модели, контроллере, шаблоне, языковых файлах - не совсем сложные 2. В магазине, в контроллере товара - получить изображение и и в шаблоне его вывести, возможно, не помню, и в модели нужно что-то изменить. Спасибо Chukcha, это то что я изначально хотел узнать :eek: Это ищите? https://opencartforum.com/files/file/2163-%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/ Спасибо Ingenerks, это то что я теперь хочу :-D Надіслати Поділитися на інших сайтах More sharing options... 2 years later... OrganiZzZm Опубліковано: 27 липня 2017 Share Опубліковано: 27 липня 2017 Доброго времени суток, уважаемые форумчане. Собственно интересует та же задача. Пытаюсь справиться своими силами. Исходные данные: движок ocstore 2.3.0.2.1, шаблон - дефолт Что сделано 1. в таблицу oc_attribute добавлена графа icon далее действовал по аналогии с прикреплением изображения к продукту 2. изменен файл admin/model/catalog/attribute.php следующим образом 2.1 в функцию addAttribute() добавлены строки if (isset($data['icon'])) { $this->db->query("UPDATE " . DB_PREFIX . "attribute SET icon = '" . $this->db->escape($data['icon']) . "' WHERE attribute_id = '" . (int)$attribute_id . "'"); } 2.2 в функцию editAttribute() добавлены строки if (isset($data['icon'])) { $this->db->query("UPDATE " . DB_PREFIX . "attribute SET icon = '" . $this->db->escape($data['icon']) . "' WHERE attribute_id = '" . (int)$attribute_id . "'"); } 3. в файл /admin/view/template/catalog/attribute_form.tpl добавлена конструкция <div class="form-group"> <label class="col-sm-2 control-label" for="input-sort-order"><?php echo $entry_icon; ?></label> <div class="col-sm-10"> <a href="" id="thumb-image" data-toggle="image" class="img-thumbnail"><img src="<?php echo $thumb_icon; ?>" alt="" title="" data-placeholder="<?php echo $placeholder_icon; ?>" /></a><input type="hidden" name="icon" value="<?php echo $icon; ?>" id="input-image" /> </div> </div> 4. в файле /admin/controller/catalog/attribute.php в функцию getForm() добавлены строки if (isset($this->request->post['icon'])) { $data['icon'] = $this->request->post['icon']; } elseif (!empty($attribute_info)) { $data['icon'] = $attribute_info['icon']; } else { $data['icon'] = ''; } $this->load->model('tool/icon'); if (isset($this->request->post['icon']) && is_file(DIR_IMAGE . $this->request->post['icon'])) { $data['thumb_icon'] = $this->model_tool_icon->resize($this->request->post['icon'], 100, 100); } elseif (!empty($attribute_info) && is_file(DIR_IMAGE . $attribute_info['icon'])) { $data['thumb_icon'] = $this->model_tool_icon->resize($attribute_info['icon'], 100, 100); } else { $data['thumb_icon'] = $this->model_tool_icon->resize('no_image.png', 100, 100); } $data['placeholder_icon'] = $this->model_tool_icon->resize('no_image.png', 100, 100); Эти мероприятия привели к тому, что в графу icon таблицы oc_attribute прописывается путь к изображению. Однако обратной связи нет. В карточке атрибута это изображение не отображается (попытка считать содержимое $thumb_icon приводит к "Notice: Undefined variable: thumb_icon in ...\admin\view\template\catalog\attribute_form.tpl on line 69" ). Точно так же себя ведет попытка вывести $attribute['icon'] в карточку товара – Undefined index: icon. Складывается впечатление, что в $attribute_info значение графы icon не попадает. Подскажите, пожалуйста, в какую сторону копать дальше? И в каком месте данные переменные объявляются? Подскажите, в какую сторону копать, и где мне их Надіслати Поділитися на інших сайтах More sharing options... OrganiZzZm Опубліковано: 30 липня 2017 Share Опубліковано: 30 липня 2017 с первой частью разобрался. перенес код из п.4 своего предыдущего поста выше по функции getForm() - теперь картинка к атрибуту прикрепляется теперь пытаюсь вывести картинки в карточку товара. в ...\catalog\view\theme\default\template\product\product.tpl это делается так: <div class="tab-pane" id="tab-specification"> <table class="table table-bordered"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><strong><?php echo $attribute_group['name']; ?></strong></td> </tr> </thead> <tbody> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['icon']; ?></td> <!-- добавлена строка --> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> </tbody> <?php } ?> </table> </div> насколько я понимаю, обработкой шаблона ...\catalog\view\theme\default\template\product\product.tpl занимается ...\catalog\controller\product\product.php Меня интересует строка $data['attribute_groups'] = $this->model_catalog_product->getProductAttributes($this->request->get['product_id']); функция getProductAttributes в ...\catalog\model\catalog\product.php выглядит так public function getProductAttributes($product_id) { $product_attribute_group_data = array(); $product_attribute_group_query = $this->db->query("SELECT ag.attribute_group_id, agd.name FROM " . DB_PREFIX . "product_attribute pa LEFT JOIN " . DB_PREFIX . "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " . DB_PREFIX . "attribute_group ag ON (a.attribute_group_id = ag.attribute_group_id) LEFT JOIN " . DB_PREFIX . "attribute_group_description agd ON (ag.attribute_group_id = agd.attribute_group_id) WHERE pa.product_id = '" . (int)$product_id . "' AND agd.language_id = '" . (int)$this->config->get('config_language_id') . "' GROUP BY ag.attribute_group_id ORDER BY ag.sort_order, agd.name"); foreach ($product_attribute_group_query->rows as $product_attribute_group) { $product_attribute_data = array(); $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') . "' ORDER BY a.sort_order, ad.name"); foreach ($product_attribute_query->rows as $product_attribute) { $product_attribute_data[] = array( 'attribute_id' => $product_attribute['attribute_id'], 'name' => $product_attribute['name'], 'icon' => $product_attribute['icon'], // добавлена строка 'text' => $product_attribute['text'] ); } $product_attribute_group_data[] = array( 'attribute_group_id' => $product_attribute_group['attribute_group_id'], 'name' => $product_attribute_group['name'], 'attribute' => $product_attribute_data ); } return $product_attribute_group_data; } в таком виде карточка товара приводит к ошибке Notice: Undefined index: icon in ...\catalog\model\catalog\product.php on line 324. Не могу понять в чем причина, ведь в oc_attribute графа icon присутствует и должна выгружаться в $product_attribute_query Надіслати Поділитися на інших сайтах More sharing options... OrganiZzZm Опубліковано: 30 липня 2017 Share Опубліковано: 30 липня 2017 (змінено) разобрался. в sql-запрос $product_attribute_query добавил a.icon и все заработало. Всем спасибо за внимание. Змінено 30 липня 2017 користувачем OrganiZzZm Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
OrganiZzZm Опубліковано: 27 липня 2017 Share Опубліковано: 27 липня 2017 Доброго времени суток, уважаемые форумчане. Собственно интересует та же задача. Пытаюсь справиться своими силами. Исходные данные: движок ocstore 2.3.0.2.1, шаблон - дефолт Что сделано 1. в таблицу oc_attribute добавлена графа icon далее действовал по аналогии с прикреплением изображения к продукту 2. изменен файл admin/model/catalog/attribute.php следующим образом 2.1 в функцию addAttribute() добавлены строки if (isset($data['icon'])) { $this->db->query("UPDATE " . DB_PREFIX . "attribute SET icon = '" . $this->db->escape($data['icon']) . "' WHERE attribute_id = '" . (int)$attribute_id . "'"); } 2.2 в функцию editAttribute() добавлены строки if (isset($data['icon'])) { $this->db->query("UPDATE " . DB_PREFIX . "attribute SET icon = '" . $this->db->escape($data['icon']) . "' WHERE attribute_id = '" . (int)$attribute_id . "'"); } 3. в файл /admin/view/template/catalog/attribute_form.tpl добавлена конструкция <div class="form-group"> <label class="col-sm-2 control-label" for="input-sort-order"><?php echo $entry_icon; ?></label> <div class="col-sm-10"> <a href="" id="thumb-image" data-toggle="image" class="img-thumbnail"><img src="<?php echo $thumb_icon; ?>" alt="" title="" data-placeholder="<?php echo $placeholder_icon; ?>" /></a><input type="hidden" name="icon" value="<?php echo $icon; ?>" id="input-image" /> </div> </div> 4. в файле /admin/controller/catalog/attribute.php в функцию getForm() добавлены строки if (isset($this->request->post['icon'])) { $data['icon'] = $this->request->post['icon']; } elseif (!empty($attribute_info)) { $data['icon'] = $attribute_info['icon']; } else { $data['icon'] = ''; } $this->load->model('tool/icon'); if (isset($this->request->post['icon']) && is_file(DIR_IMAGE . $this->request->post['icon'])) { $data['thumb_icon'] = $this->model_tool_icon->resize($this->request->post['icon'], 100, 100); } elseif (!empty($attribute_info) && is_file(DIR_IMAGE . $attribute_info['icon'])) { $data['thumb_icon'] = $this->model_tool_icon->resize($attribute_info['icon'], 100, 100); } else { $data['thumb_icon'] = $this->model_tool_icon->resize('no_image.png', 100, 100); } $data['placeholder_icon'] = $this->model_tool_icon->resize('no_image.png', 100, 100); Эти мероприятия привели к тому, что в графу icon таблицы oc_attribute прописывается путь к изображению. Однако обратной связи нет. В карточке атрибута это изображение не отображается (попытка считать содержимое $thumb_icon приводит к "Notice: Undefined variable: thumb_icon in ...\admin\view\template\catalog\attribute_form.tpl on line 69" ). Точно так же себя ведет попытка вывести $attribute['icon'] в карточку товара – Undefined index: icon. Складывается впечатление, что в $attribute_info значение графы icon не попадает. Подскажите, пожалуйста, в какую сторону копать дальше? И в каком месте данные переменные объявляются? Подскажите, в какую сторону копать, и где мне их Надіслати Поділитися на інших сайтах More sharing options...
OrganiZzZm Опубліковано: 30 липня 2017 Share Опубліковано: 30 липня 2017 с первой частью разобрался. перенес код из п.4 своего предыдущего поста выше по функции getForm() - теперь картинка к атрибуту прикрепляется теперь пытаюсь вывести картинки в карточку товара. в ...\catalog\view\theme\default\template\product\product.tpl это делается так: <div class="tab-pane" id="tab-specification"> <table class="table table-bordered"> <?php foreach ($attribute_groups as $attribute_group) { ?> <thead> <tr> <td colspan="2"><strong><?php echo $attribute_group['name']; ?></strong></td> </tr> </thead> <tbody> <?php foreach ($attribute_group['attribute'] as $attribute) { ?> <tr> <td><?php echo $attribute['name']; ?></td> <td><?php echo $attribute['icon']; ?></td> <!-- добавлена строка --> <td><?php echo $attribute['text']; ?></td> </tr> <?php } ?> </tbody> <?php } ?> </table> </div> насколько я понимаю, обработкой шаблона ...\catalog\view\theme\default\template\product\product.tpl занимается ...\catalog\controller\product\product.php Меня интересует строка $data['attribute_groups'] = $this->model_catalog_product->getProductAttributes($this->request->get['product_id']); функция getProductAttributes в ...\catalog\model\catalog\product.php выглядит так public function getProductAttributes($product_id) { $product_attribute_group_data = array(); $product_attribute_group_query = $this->db->query("SELECT ag.attribute_group_id, agd.name FROM " . DB_PREFIX . "product_attribute pa LEFT JOIN " . DB_PREFIX . "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " . DB_PREFIX . "attribute_group ag ON (a.attribute_group_id = ag.attribute_group_id) LEFT JOIN " . DB_PREFIX . "attribute_group_description agd ON (ag.attribute_group_id = agd.attribute_group_id) WHERE pa.product_id = '" . (int)$product_id . "' AND agd.language_id = '" . (int)$this->config->get('config_language_id') . "' GROUP BY ag.attribute_group_id ORDER BY ag.sort_order, agd.name"); foreach ($product_attribute_group_query->rows as $product_attribute_group) { $product_attribute_data = array(); $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') . "' ORDER BY a.sort_order, ad.name"); foreach ($product_attribute_query->rows as $product_attribute) { $product_attribute_data[] = array( 'attribute_id' => $product_attribute['attribute_id'], 'name' => $product_attribute['name'], 'icon' => $product_attribute['icon'], // добавлена строка 'text' => $product_attribute['text'] ); } $product_attribute_group_data[] = array( 'attribute_group_id' => $product_attribute_group['attribute_group_id'], 'name' => $product_attribute_group['name'], 'attribute' => $product_attribute_data ); } return $product_attribute_group_data; } в таком виде карточка товара приводит к ошибке Notice: Undefined index: icon in ...\catalog\model\catalog\product.php on line 324. Не могу понять в чем причина, ведь в oc_attribute графа icon присутствует и должна выгружаться в $product_attribute_query Надіслати Поділитися на інших сайтах More sharing options...
OrganiZzZm Опубліковано: 30 липня 2017 Share Опубліковано: 30 липня 2017 (змінено) разобрался. в sql-запрос $product_attribute_query добавил a.icon и все заработало. Всем спасибо за внимание. Змінено 30 липня 2017 користувачем OrganiZzZm Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts