cashfile Опубліковано: 6 квітня 2011 Share Опубліковано: 6 квітня 2011 Подскажите , как перенести функцию увеличения изображения товара на странице самого товара на страницу категории ? То есть у меня будет обрезаны главные страницы самого товара , дальше страницы категории перемещения не будет. Собственно поэтому и возникла необходимость увеличивать картинку товара на странице категории . Всё что могу предположить то что править надо файл контроллера категории и немного файл шаблона. Отблагодарю пивом !!! :rolleyes: Надіслати Поділитися на інших сайтах More sharing options...
AlexFisher Опубліковано: 6 квітня 2011 Share Опубліковано: 6 квітня 2011 Блин, а круто. Надо-надо. 'рел' ему дать, как минимум, а там - как с любой в этом плане показывалкой картинок. Заставлять картинку казать. Че-т типа такого. Я ленив и глуп. Поддержу тему. Покажите как. С уважением. Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... cashfile Опубліковано: 14 квітня 2011 Автор Share Опубліковано: 14 квітня 2011 Блин, а круто. Надо-надо. 'рел' ему дать, как минимум, а там - как с любой в этом плане показывалкой картинок. Заставлять картинку казать. Че-т типа такого. Я ленив и глуп. Поддержу тему. Покажите как. С уважением. Я так предполагаю , что нужно из файла product.tpl вырезать скрипт и запускающую фун-кцию или команду. И из файла controller для product.php перенести соответствующую функцию в файлы category. Для тех кто знает было проще это сделать. Я пробовал но пока не получилось , значит чего-то я не учитываю. Надіслати Поділитися на інших сайтах More sharing options... cashfile Опубліковано: 17 квітня 2011 Автор Share Опубліковано: 17 квітня 2011 Я так предполагаю , что нужно из файла product.tpl вырезать скрипт и запускающую фун-кцию или команду. И из файла controller для product.php перенести соответствующую функцию в файлы category. Для тех кто знает было проще это сделать. Я пробовал но пока не получилось , значит чего-то я не учитываю. Первое изменение: в category.tpl заменить ссылку для изображения товара на href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>" class="thickbox" rel="gallery" Второе изменение: в category.php нужно добавить строку $this->data['popup'] = $this->model_tool_image->resize($image, $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')); после ..... (????????) В итоге выводится для всех товаров увеличенное изобр. последнего товара :huh: по идее нужно после 'thumb'=>$this->model_tool_image->resize($image,$this->config->get('config_image_product_width'),$this->config->get('config_image_product_height')), добавить 'popup'=>$this->model_tool_image->resize($image,$this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')), Но в этом варианте просто пустое окно :huh: Надіслати Поділитися на інших сайтах More sharing options... EvzeNsx Опубліковано: 17 квітня 2011 Share Опубліковано: 17 квітня 2011 category.php $this->data['products'][] = array( 'name' => $result['name'], 'model' => $result['model'], 'rating' => $rating, 'stars' => sprintf($this->language->get('text_stars'), $rating), 'thumb' => $this->model_tool_image->resize($image, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')), 'popup' => $this->model_tool_image->resize($image, $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')), 'price' => $price, 'options' => $options, 'special' => $special, 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&path=' . $this->request->get['path'] . '&product_id=' . $result['product_id']), 'add' => $add ); category.tpl <a href="<?php echo $products[$j]['popup']; ?>" title="<?php echo $products[$j]['name']; ?>" rel="slideshow" rel="gallery"> <img src="<?php echo $products[$j]['thumb']; ?>" title="<?php echo $products[$j]['name']; ?>" alt="<?php echo $products[$j]['name']; ?>" id="image" style="margin-bottom: 3px;" /> </a> у меня с такими изменениями все работает. 1 Надіслати Поділитися на інших сайтах More sharing options... cashfile Опубліковано: 17 квітня 2011 Автор Share Опубліковано: 17 квітня 2011 у меня с такими изменениями все работает. Благодарю - проблема решена. Может кто подскажет как например в любом модуле выводящем товары на глав.странице(последние , рекомендуемые) при клике по товару переход был на страницу категории этого товара , а не на саму страницу товара !? Я понимаю нужно изменить ссылку на $category[j] , а как быть с файлом php ? Надіслати Поділитися на інших сайтах More sharing options... 8 months later... egorgrin Опубліковано: 9 січня 2012 Share Опубліковано: 9 січня 2012 Добрый вечер! Подскажите плииз! Отблагадарю не только пивом!!!! Как перенести функцию увеличения изображения товара на страницу категории в версии ocStore v1.5.1.3? Насколько я вижу схема решения приведённая выше не работает в этой версии? Что поправить? Требуется увеличивать картинку товара уже со станицы категории, не заходя в описание товара. Отблагадарю не только пивом!!!! Надіслати Поділитися на інших сайтах More sharing options... 8 months later... kozybal Опубліковано: 23 вересня 2012 Share Опубліковано: 23 вересня 2012 Всем привет !!! Не совсем понятно куда сунуть код в какие файлы и в каком месте уточните пожалуйста для особо одаренных :wink: Надіслати Поділитися на інших сайтах More sharing options... 1 year later... Marianna Опубліковано: 4 серпня 2014 Share Опубліковано: 4 серпня 2014 Ничего не "решено", так как не объяснили после каких строк это вставлять Мне нужно было сделать увлелечение самой фотки в описании категории, но смысл где-то рядом в увелечение самой фотки товара (так как мне не нужно было увелечение фотки в категории у товара в модальном окне я просто удалила у фото это class="colorbox" rel="colorbox" ). Нашла решение по крупицам в разных местах, пока не выстроила целый ребус, у меня заработало так: В сам файл шаблона category.tpl добавить (естественно у вас там уже есть див с image этим первый в шаблоне, нужно это изменить.): <?php if ($thumb) { ?> <div class="image"><a href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>" class="colorbox"><img src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" id="image" /></a></div> <?php } ?> В контроллер category.php, вставить после: 'separator' => $this->language->get('text_separator') );: добавить: if ($category_info['image']) { $this->data['popup'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')); } else { $this->data['popup'] = ''; } затем в файл шаблона footer.tpl добавить перед закрывающимся </body> это <script type="text/javascript"><!-- $('.colorbox').colorbox({ overlayClose: true, opacity: 0.5 }); //--></script> Потом добавить в файл шаблона header.tpl это: <script type="text/javascript" src="catalog/view/javascript/jquery/colorbox/jquery.colorbox.js"></script> <link rel="stylesheet" type="text/css" href="catalog/view/javascript/jquery/colorbox/colorbox.css" media="screen" /> Надіслати Поділитися на інших сайтах More sharing options... AlexFisher Опубліковано: 4 серпня 2014 Share Опубліковано: 4 серпня 2014 версия 1.6.че-то-там, небось? Странно, что до сих пор не пофиксили. Надіслати Поділитися на інших сайтах More sharing options... Marianna Опубліковано: 4 серпня 2014 Share Опубліковано: 4 серпня 2014 версия 1.6.че-то-там, небось? Странно, что до сих пор не пофиксили. ВЫ об чем? Это не проблема опенкарт, там в описании категорий картинка просто без возможности ее увеличить при клике, на самом деле это не нужная ерунда, просто клиентам зачем-то это понадобилось. А если об увеличение фото в сетке товаров в категории тоже не нужная ерунда по моему мнению. Надіслати Поділитися на інших сайтах More sharing options... AlexFisher Опубліковано: 5 серпня 2014 Share Опубліковано: 5 серпня 2014 пардоньтесь, бред несу, глаз замылен. Надіслати Поділитися на інших сайтах More sharing options... sobwoofer Опубліковано: 5 серпня 2014 Share Опубліковано: 5 серпня 2014 в OcStore 1.5.5.1.2 функция увеличения изображения товаров в категории не роботает Надіслати Поділитися на інших сайтах More sharing options... Tom Опубліковано: 6 серпня 2014 Share Опубліковано: 6 серпня 2014 В этой версии колорбокс не подключен в хидере. Надіслати Поділитися на інших сайтах More sharing options... 5 months later... elscept Опубліковано: 14 січня 2015 Share Опубліковано: 14 січня 2015 Для Opencart 1.5.6 ни один из вариантов без доработки не подошел. В итоге сделал так: В файле catalog/cotroller/product/category.php В блоке $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, Добавил 'popup' => $this->model_tool_image->resize($image, $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')), В шаблоне категории catalog/view/theme/default/template/product/category.tpl вставил такую ссылку на большую картинку <?php echo $product['popup']; ?> Так же нужно перенести подключение Colorbox из product.tpl в header.tpl или footer.tpl Надіслати Поділитися на інших сайтах More sharing options... 3 months later... erigins Опубліковано: 27 квітня 2015 Share Опубліковано: 27 квітня 2015 Для Opencart 1.5.6 ни один из вариантов без доработки не подошел. В итоге сделал так: В файле catalog/cotroller/product/category.php В блоке $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, Добавил 'popup' => $this->model_tool_image->resize($image, $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')), В шаблоне категории catalog/view/theme/default/template/product/category.tpl вставил такую ссылку на большую картинку <?php echo $product['popup']; ?> Так же нужно перенести подключение Colorbox из product.tpl в header.tpl или footer.tpl Какая-то залуп@, не работает. Уже 2 дня мучаюсь. Хелп. Нужно сделать автоувеличение фото товара при наведении, в категории файл category.php <?php class ControllerProductCategory extends Controller { public function index() { $this->language->load('product/category'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('tool/image'); if (isset($this->request->get['filter'])) { $filter = $this->request->get['filter']; } else { $filter = ''; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; } else { $sort = 'p.sort_order'; } if (isset($this->request->get['order'])) { $order = $this->request->get['order']; } else { $order = 'ASC'; } if (isset($this->request->get['page'])) { $page = $this->request->get['page']; } else { $page = 1; } if (isset($this->request->get['limit'])) { $limit = $this->request->get['limit']; } else { $limit = $this->config->get('config_catalog_limit'); } $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home'), 'separator' => false ); if (isset($this->request->get['path'])) { $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts); foreach ($parts as $path_id) { if (!$path) { $path = (int)$path_id; } else { $path .= '_' . (int)$path_id; } $category_info = $this->model_catalog_category->getCategory($path_id); if ($category_info) { $this->data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $path . $url), 'separator' => $this->language->get('text_separator') ); } } } else { $category_id = 0; } $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { $this->document->setTitle($category_info['meta_keyword']); $this->document->setDescription($category_info['meta_description']); $this->document->setKeywords($category_info['meta_keyword']); $this->document->addScript('catalog/view/javascript/jquery/jquery.total-storage.min.js'); $this->data['heading_title'] = $category_info['name']; $this->data['text_refine'] = $this->language->get('text_refine'); $this->data['text_empty'] = $this->language->get('text_empty'); $this->data['text_quantity'] = $this->language->get('text_quantity'); $this->data['text_manufacturer'] = $this->language->get('text_manufacturer'); $this->data['text_model'] = $this->language->get('text_model'); $this->data['text_price'] = $this->language->get('text_price'); $this->data['text_tax'] = $this->language->get('text_tax'); $this->data['text_points'] = $this->language->get('text_points'); $this->data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); $this->data['text_display'] = $this->language->get('text_display'); $this->data['text_list'] = $this->language->get('text_list'); $this->data['text_grid'] = $this->language->get('text_grid'); $this->data['text_sort'] = $this->language->get('text_sort'); $this->data['text_limit'] = $this->language->get('text_limit'); $this->data['button_cart'] = $this->language->get('button_cart'); $this->data['button_wishlist'] = $this->language->get('button_wishlist'); $this->data['button_compare'] = $this->language->get('button_compare'); $this->data['button_continue'] = $this->language->get('button_continue'); // Set the last category breadcrumb $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path']), 'separator' => $this->language->get('text_separator') ); if ($category_info['image']) { $this->data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height')); } else { $this->data['thumb'] = ''; } $this->data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8'); $this->data['compare'] = $this->url->link('product/compare'); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['categories'] = array(); $results = $this->model_catalog_category->getCategories($category_id); foreach ($results as $result) { $data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); $product_total = $this->model_catalog_product->getTotalProducts($data); $this->data['categories'][] = array( 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url) ); } $this->data['products'] = array(); $data = array( 'filter_category_id' => $category_id, 'filter_sub_category' => true, 'filter_filter' => $filter, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $this->data['config_newproduct'] = $this->config->get('config_newproduct'); $this->data['config_display_newproduct'] = $this->config->get('config_display_newproduct'); $this->data['config_display_popularproduct'] = $this->config->get('config_display_popularproduct'); $this->data['config_popularproduct'] = $this->config->get('config_popularproduct'); $this->data['config_display_specialsproduct'] = $this->config->get('config_display_specialsproduct'); $this->data['config_display_availableproduct'] = $this->config->get('config_display_availableproduct'); $product_total = $this->model_catalog_product->getTotalProducts($data); //$results = $this->model_catalog_product->getProducts($data); $results = $this->model_catalog_product->getProducts($data); //Вызов метода getFoundProducts должен проводится сразу же после getProducts //только тогда он выдает правильное значения количества товаров //$product_total = $this->model_catalog_product->getFoundProducts(); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = false; } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..', 'price' => $price, 'special' => $special, 'onorder' => $result['onorder'], 'tax' => $tax, 'rating' => $result['rating'], 'quantity' => $result['quantity'], 'date_available' => $result['date_available'], 'viewed' => $result['viewed'], 'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['sorts'] = array(); $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $url) ); if ($this->config->get('config_review_status')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $url) ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $this->data['limits'] = array(); $limits = array_unique(array($this->config->get('config_catalog_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $limits){ $this->data['limits'][] = array( 'text' => $limits, 'value' => $limits, 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $limits) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->text = $this->language->get('text_pagination'); $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}'); $this->data['pagination'] = $pagination->render(); $this->data['sort'] = $sort; $this->data['order'] = $order; $this->data['limit'] = $limit; $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/category_v2.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/category_v2.tpl'; } else { $this->template = 'default/template/product/category.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } else { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_error'), 'href' => $this->url->link('product/category', $url), 'separator' => $this->language->get('text_separator') ); $this->document->setTitle($this->language->get('text_error')); $this->data['heading_title'] = $this->language->get('text_error'); $this->data['text_error'] = $this->language->get('text_error'); $this->data['button_continue'] = $this->language->get('button_continue'); $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) { $this->template = $this->config->get('config_template') . '/template/error/not_found.tpl'; } else { $this->template = 'default/template/error/not_found.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } } } ?> файл category.TPL <?php echo $header; ?> <div class="center"> <?php if ($products) { ?> <div class="page"> <h1 class="firstWord"><?php echo $heading_title; ?></h1><div class="floatright"> <select onchange="location = this.value;"> <?php foreach ($sorts as $sorts) { ?> <?php if ($sorts['value'] == $sort . '-' . $order) { ?> <option value="<?php echo $sorts['href']; ?>" selected="selected"><?php echo $sorts['text']; ?></option> <?php } else { ?> <option value="<?php echo $sorts['href']; ?>"><?php echo $sorts['text']; ?></option> <?php } ?> <?php } ?> </select></div> <div class="zz"></div> <div class="acdc"></div> <div class="breadcrumbs"> <?php foreach ($breadcrumbs as $breadcrumb) { ?> <span>/</span><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a> <?php } ?> </div> <noindex><div class="acdc"></div> <div class="filter-border"> <div class="filter"> <?php echo $column_left; ?> </div> </div></noindex> <div class="products"> <?php foreach ($products as $product) { ?> <div class="item"> <?php if ($product['thumb']) { ?> <a href="<?php echo $product['href']; ?>"> <?php if ($config_display_popularproduct) { ?> <?php if (($product['viewed']) > ($config_popularproduct)) { ?><div class="popularlabel"></div><?php } ?> <?php } ?> <?php if ($config_display_specialsproduct) { ?> <?php if ($product['price'] && $product['special']) { ?><div class="speciallabel"></div> <?php } ?> <?php } ?> <?php if ($config_display_availableproduct) { ?> <?php if (($product['quantity']) <= 0){ ?> <?php if (($product['onorder']) == 1){ ?> <div class="soldlabel"></div> <?php } else { ?> <div class="noproductlabel"></div> <?php } ?> <?php } ?> <?php } ?> <img src="<?php echo $product['thumb']; ?>" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a> <?php } else { ?> <a href="<?php echo $product['href']; ?>"> <?php if ($config_display_popularproduct) { ?> <?php if (($product['viewed']) > ($config_popularproduct)) { ?><div class="popularlabel"></div><?php } ?> <?php } ?> <?php if ($config_display_specialsproduct) { ?> <?php if ($product['price'] && $product['special']) { ?><div class="speciallabel"></div> <?php } ?> <?php } ?> <?php if ($config_display_availableproduct) { ?> <?php if (($product['quantity']) <= 0){ ?> <?php if (($product['onorder']) == 1){ ?> <div class="soldlabel"></div> <?php } else { ?> <div class="noproductlabel"></div> <?php } ?> <?php } ?> <?php } ?> <img src="/catalog/view/theme/confiseur/image/noimage.jpg" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a> <?php } ?> <div class="title-height"><a class="t" href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div> <div class="cart-panel"> <div class="item-info"> <p> <?php if (!$product['special']) { ?> <?php echo $product['price']; ?> <?php } else { ?> <!--<span class="price-old"><?php echo $product['price']; ?></span>--> <span class="price-new"><?php echo $product['special']; ?></span> <?php } ?> </p> <?php if ($product['rating']) { ?> <img src="catalog/view/theme/default/image/stars-<?php echo $product['rating']; ?>.png" alt="<?php echo $product['reviews']; ?>" /> <?php } else { ?> <img src="catalog/view/theme/default/image/stars-0.png" alt="<?php echo $product['reviews']; ?>" /> <?php } ?> </div> <script type="text/javascript"> function addQtyToCart(product_id) { var qty = $('.item-' + product_id).val(); if ((parseFloat(qty) != parseInt(qty)) || isNaN(qty)) { qty = 1; } addToCart(product_id, qty); } </script> <?php if (($product['quantity'] >0 )||($product['onorder']==1)) { ?> <!--<div class="no-quantity">Под заказ</div>--> <div class="col-cat"> Количество:<input type="text" value="1" size="2" class="item-<?php echo $product['product_id']; ?>" /></div> <input type="button" value="" onclick="addQtyToCart('<?php echo $product['product_id']; ?>');ga('send', 'event', 'pokupka_c', 'v_korzinu_c');ga('send', 'pageview', '/order/step1_k.html');" class="button" /> <?php } ?> </div> </div> <?php } ?> </div> </div> <div class="acdc-xs"></div> <div class="pagination"> <?php echo $pagination; ?> </div> <?php } ?> </div> <div class="acdc"></div> <div class="footer-line"></div> <div class="description"> <div class="center"> <div class="acdc-s"></div> <?php if ($description) { ?> <?php echo $description; ?> <?php } ?> </div> </div> <?php echo $footer; ?> Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 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 і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
cashfile Опубліковано: 14 квітня 2011 Автор Share Опубліковано: 14 квітня 2011 Блин, а круто. Надо-надо. 'рел' ему дать, как минимум, а там - как с любой в этом плане показывалкой картинок. Заставлять картинку казать. Че-т типа такого. Я ленив и глуп. Поддержу тему. Покажите как. С уважением. Я так предполагаю , что нужно из файла product.tpl вырезать скрипт и запускающую фун-кцию или команду. И из файла controller для product.php перенести соответствующую функцию в файлы category. Для тех кто знает было проще это сделать. Я пробовал но пока не получилось , значит чего-то я не учитываю. Надіслати Поділитися на інших сайтах More sharing options...
cashfile Опубліковано: 17 квітня 2011 Автор Share Опубліковано: 17 квітня 2011 Я так предполагаю , что нужно из файла product.tpl вырезать скрипт и запускающую фун-кцию или команду. И из файла controller для product.php перенести соответствующую функцию в файлы category. Для тех кто знает было проще это сделать. Я пробовал но пока не получилось , значит чего-то я не учитываю. Первое изменение: в category.tpl заменить ссылку для изображения товара на href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>" class="thickbox" rel="gallery" Второе изменение: в category.php нужно добавить строку $this->data['popup'] = $this->model_tool_image->resize($image, $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')); после ..... (????????) В итоге выводится для всех товаров увеличенное изобр. последнего товара :huh: по идее нужно после 'thumb'=>$this->model_tool_image->resize($image,$this->config->get('config_image_product_width'),$this->config->get('config_image_product_height')), добавить 'popup'=>$this->model_tool_image->resize($image,$this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')), Но в этом варианте просто пустое окно :huh: Надіслати Поділитися на інших сайтах More sharing options...
EvzeNsx Опубліковано: 17 квітня 2011 Share Опубліковано: 17 квітня 2011 category.php $this->data['products'][] = array( 'name' => $result['name'], 'model' => $result['model'], 'rating' => $rating, 'stars' => sprintf($this->language->get('text_stars'), $rating), 'thumb' => $this->model_tool_image->resize($image, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')), 'popup' => $this->model_tool_image->resize($image, $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')), 'price' => $price, 'options' => $options, 'special' => $special, 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&path=' . $this->request->get['path'] . '&product_id=' . $result['product_id']), 'add' => $add ); category.tpl <a href="<?php echo $products[$j]['popup']; ?>" title="<?php echo $products[$j]['name']; ?>" rel="slideshow" rel="gallery"> <img src="<?php echo $products[$j]['thumb']; ?>" title="<?php echo $products[$j]['name']; ?>" alt="<?php echo $products[$j]['name']; ?>" id="image" style="margin-bottom: 3px;" /> </a> у меня с такими изменениями все работает. 1 Надіслати Поділитися на інших сайтах More sharing options...
cashfile Опубліковано: 17 квітня 2011 Автор Share Опубліковано: 17 квітня 2011 у меня с такими изменениями все работает. Благодарю - проблема решена. Может кто подскажет как например в любом модуле выводящем товары на глав.странице(последние , рекомендуемые) при клике по товару переход был на страницу категории этого товара , а не на саму страницу товара !? Я понимаю нужно изменить ссылку на $category[j] , а как быть с файлом php ? Надіслати Поділитися на інших сайтах More sharing options...
egorgrin Опубліковано: 9 січня 2012 Share Опубліковано: 9 січня 2012 Добрый вечер! Подскажите плииз! Отблагадарю не только пивом!!!! Как перенести функцию увеличения изображения товара на страницу категории в версии ocStore v1.5.1.3? Насколько я вижу схема решения приведённая выше не работает в этой версии? Что поправить? Требуется увеличивать картинку товара уже со станицы категории, не заходя в описание товара. Отблагадарю не только пивом!!!! Надіслати Поділитися на інших сайтах More sharing options...
kozybal Опубліковано: 23 вересня 2012 Share Опубліковано: 23 вересня 2012 Всем привет !!! Не совсем понятно куда сунуть код в какие файлы и в каком месте уточните пожалуйста для особо одаренных :wink: Надіслати Поділитися на інших сайтах More sharing options...
Marianna Опубліковано: 4 серпня 2014 Share Опубліковано: 4 серпня 2014 Ничего не "решено", так как не объяснили после каких строк это вставлять Мне нужно было сделать увлелечение самой фотки в описании категории, но смысл где-то рядом в увелечение самой фотки товара (так как мне не нужно было увелечение фотки в категории у товара в модальном окне я просто удалила у фото это class="colorbox" rel="colorbox" ). Нашла решение по крупицам в разных местах, пока не выстроила целый ребус, у меня заработало так: В сам файл шаблона category.tpl добавить (естественно у вас там уже есть див с image этим первый в шаблоне, нужно это изменить.): <?php if ($thumb) { ?> <div class="image"><a href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>" class="colorbox"><img src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" id="image" /></a></div> <?php } ?> В контроллер category.php, вставить после: 'separator' => $this->language->get('text_separator') );: добавить: if ($category_info['image']) { $this->data['popup'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')); } else { $this->data['popup'] = ''; } затем в файл шаблона footer.tpl добавить перед закрывающимся </body> это <script type="text/javascript"><!-- $('.colorbox').colorbox({ overlayClose: true, opacity: 0.5 }); //--></script> Потом добавить в файл шаблона header.tpl это: <script type="text/javascript" src="catalog/view/javascript/jquery/colorbox/jquery.colorbox.js"></script> <link rel="stylesheet" type="text/css" href="catalog/view/javascript/jquery/colorbox/colorbox.css" media="screen" /> Надіслати Поділитися на інших сайтах More sharing options...
AlexFisher Опубліковано: 4 серпня 2014 Share Опубліковано: 4 серпня 2014 версия 1.6.че-то-там, небось? Странно, что до сих пор не пофиксили. Надіслати Поділитися на інших сайтах More sharing options... Marianna Опубліковано: 4 серпня 2014 Share Опубліковано: 4 серпня 2014 версия 1.6.че-то-там, небось? Странно, что до сих пор не пофиксили. ВЫ об чем? Это не проблема опенкарт, там в описании категорий картинка просто без возможности ее увеличить при клике, на самом деле это не нужная ерунда, просто клиентам зачем-то это понадобилось. А если об увеличение фото в сетке товаров в категории тоже не нужная ерунда по моему мнению. Надіслати Поділитися на інших сайтах More sharing options... AlexFisher Опубліковано: 5 серпня 2014 Share Опубліковано: 5 серпня 2014 пардоньтесь, бред несу, глаз замылен. Надіслати Поділитися на інших сайтах More sharing options... sobwoofer Опубліковано: 5 серпня 2014 Share Опубліковано: 5 серпня 2014 в OcStore 1.5.5.1.2 функция увеличения изображения товаров в категории не роботает Надіслати Поділитися на інших сайтах More sharing options... Tom Опубліковано: 6 серпня 2014 Share Опубліковано: 6 серпня 2014 В этой версии колорбокс не подключен в хидере. Надіслати Поділитися на інших сайтах More sharing options... 5 months later... elscept Опубліковано: 14 січня 2015 Share Опубліковано: 14 січня 2015 Для Opencart 1.5.6 ни один из вариантов без доработки не подошел. В итоге сделал так: В файле catalog/cotroller/product/category.php В блоке $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, Добавил 'popup' => $this->model_tool_image->resize($image, $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')), В шаблоне категории catalog/view/theme/default/template/product/category.tpl вставил такую ссылку на большую картинку <?php echo $product['popup']; ?> Так же нужно перенести подключение Colorbox из product.tpl в header.tpl или footer.tpl Надіслати Поділитися на інших сайтах More sharing options... 3 months later... erigins Опубліковано: 27 квітня 2015 Share Опубліковано: 27 квітня 2015 Для Opencart 1.5.6 ни один из вариантов без доработки не подошел. В итоге сделал так: В файле catalog/cotroller/product/category.php В блоке $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, Добавил 'popup' => $this->model_tool_image->resize($image, $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')), В шаблоне категории catalog/view/theme/default/template/product/category.tpl вставил такую ссылку на большую картинку <?php echo $product['popup']; ?> Так же нужно перенести подключение Colorbox из product.tpl в header.tpl или footer.tpl Какая-то залуп@, не работает. Уже 2 дня мучаюсь. Хелп. Нужно сделать автоувеличение фото товара при наведении, в категории файл category.php <?php class ControllerProductCategory extends Controller { public function index() { $this->language->load('product/category'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('tool/image'); if (isset($this->request->get['filter'])) { $filter = $this->request->get['filter']; } else { $filter = ''; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; } else { $sort = 'p.sort_order'; } if (isset($this->request->get['order'])) { $order = $this->request->get['order']; } else { $order = 'ASC'; } if (isset($this->request->get['page'])) { $page = $this->request->get['page']; } else { $page = 1; } if (isset($this->request->get['limit'])) { $limit = $this->request->get['limit']; } else { $limit = $this->config->get('config_catalog_limit'); } $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home'), 'separator' => false ); if (isset($this->request->get['path'])) { $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts); foreach ($parts as $path_id) { if (!$path) { $path = (int)$path_id; } else { $path .= '_' . (int)$path_id; } $category_info = $this->model_catalog_category->getCategory($path_id); if ($category_info) { $this->data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $path . $url), 'separator' => $this->language->get('text_separator') ); } } } else { $category_id = 0; } $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { $this->document->setTitle($category_info['meta_keyword']); $this->document->setDescription($category_info['meta_description']); $this->document->setKeywords($category_info['meta_keyword']); $this->document->addScript('catalog/view/javascript/jquery/jquery.total-storage.min.js'); $this->data['heading_title'] = $category_info['name']; $this->data['text_refine'] = $this->language->get('text_refine'); $this->data['text_empty'] = $this->language->get('text_empty'); $this->data['text_quantity'] = $this->language->get('text_quantity'); $this->data['text_manufacturer'] = $this->language->get('text_manufacturer'); $this->data['text_model'] = $this->language->get('text_model'); $this->data['text_price'] = $this->language->get('text_price'); $this->data['text_tax'] = $this->language->get('text_tax'); $this->data['text_points'] = $this->language->get('text_points'); $this->data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); $this->data['text_display'] = $this->language->get('text_display'); $this->data['text_list'] = $this->language->get('text_list'); $this->data['text_grid'] = $this->language->get('text_grid'); $this->data['text_sort'] = $this->language->get('text_sort'); $this->data['text_limit'] = $this->language->get('text_limit'); $this->data['button_cart'] = $this->language->get('button_cart'); $this->data['button_wishlist'] = $this->language->get('button_wishlist'); $this->data['button_compare'] = $this->language->get('button_compare'); $this->data['button_continue'] = $this->language->get('button_continue'); // Set the last category breadcrumb $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path']), 'separator' => $this->language->get('text_separator') ); if ($category_info['image']) { $this->data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height')); } else { $this->data['thumb'] = ''; } $this->data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8'); $this->data['compare'] = $this->url->link('product/compare'); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['categories'] = array(); $results = $this->model_catalog_category->getCategories($category_id); foreach ($results as $result) { $data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); $product_total = $this->model_catalog_product->getTotalProducts($data); $this->data['categories'][] = array( 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url) ); } $this->data['products'] = array(); $data = array( 'filter_category_id' => $category_id, 'filter_sub_category' => true, 'filter_filter' => $filter, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $this->data['config_newproduct'] = $this->config->get('config_newproduct'); $this->data['config_display_newproduct'] = $this->config->get('config_display_newproduct'); $this->data['config_display_popularproduct'] = $this->config->get('config_display_popularproduct'); $this->data['config_popularproduct'] = $this->config->get('config_popularproduct'); $this->data['config_display_specialsproduct'] = $this->config->get('config_display_specialsproduct'); $this->data['config_display_availableproduct'] = $this->config->get('config_display_availableproduct'); $product_total = $this->model_catalog_product->getTotalProducts($data); //$results = $this->model_catalog_product->getProducts($data); $results = $this->model_catalog_product->getProducts($data); //Вызов метода getFoundProducts должен проводится сразу же после getProducts //только тогда он выдает правильное значения количества товаров //$product_total = $this->model_catalog_product->getFoundProducts(); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = false; } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..', 'price' => $price, 'special' => $special, 'onorder' => $result['onorder'], 'tax' => $tax, 'rating' => $result['rating'], 'quantity' => $result['quantity'], 'date_available' => $result['date_available'], 'viewed' => $result['viewed'], 'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['sorts'] = array(); $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $url) ); if ($this->config->get('config_review_status')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $url) ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $this->data['limits'] = array(); $limits = array_unique(array($this->config->get('config_catalog_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $limits){ $this->data['limits'][] = array( 'text' => $limits, 'value' => $limits, 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $limits) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->text = $this->language->get('text_pagination'); $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}'); $this->data['pagination'] = $pagination->render(); $this->data['sort'] = $sort; $this->data['order'] = $order; $this->data['limit'] = $limit; $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/category_v2.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/category_v2.tpl'; } else { $this->template = 'default/template/product/category.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } else { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_error'), 'href' => $this->url->link('product/category', $url), 'separator' => $this->language->get('text_separator') ); $this->document->setTitle($this->language->get('text_error')); $this->data['heading_title'] = $this->language->get('text_error'); $this->data['text_error'] = $this->language->get('text_error'); $this->data['button_continue'] = $this->language->get('button_continue'); $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) { $this->template = $this->config->get('config_template') . '/template/error/not_found.tpl'; } else { $this->template = 'default/template/error/not_found.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } } } ?> файл category.TPL <?php echo $header; ?> <div class="center"> <?php if ($products) { ?> <div class="page"> <h1 class="firstWord"><?php echo $heading_title; ?></h1><div class="floatright"> <select onchange="location = this.value;"> <?php foreach ($sorts as $sorts) { ?> <?php if ($sorts['value'] == $sort . '-' . $order) { ?> <option value="<?php echo $sorts['href']; ?>" selected="selected"><?php echo $sorts['text']; ?></option> <?php } else { ?> <option value="<?php echo $sorts['href']; ?>"><?php echo $sorts['text']; ?></option> <?php } ?> <?php } ?> </select></div> <div class="zz"></div> <div class="acdc"></div> <div class="breadcrumbs"> <?php foreach ($breadcrumbs as $breadcrumb) { ?> <span>/</span><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a> <?php } ?> </div> <noindex><div class="acdc"></div> <div class="filter-border"> <div class="filter"> <?php echo $column_left; ?> </div> </div></noindex> <div class="products"> <?php foreach ($products as $product) { ?> <div class="item"> <?php if ($product['thumb']) { ?> <a href="<?php echo $product['href']; ?>"> <?php if ($config_display_popularproduct) { ?> <?php if (($product['viewed']) > ($config_popularproduct)) { ?><div class="popularlabel"></div><?php } ?> <?php } ?> <?php if ($config_display_specialsproduct) { ?> <?php if ($product['price'] && $product['special']) { ?><div class="speciallabel"></div> <?php } ?> <?php } ?> <?php if ($config_display_availableproduct) { ?> <?php if (($product['quantity']) <= 0){ ?> <?php if (($product['onorder']) == 1){ ?> <div class="soldlabel"></div> <?php } else { ?> <div class="noproductlabel"></div> <?php } ?> <?php } ?> <?php } ?> <img src="<?php echo $product['thumb']; ?>" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a> <?php } else { ?> <a href="<?php echo $product['href']; ?>"> <?php if ($config_display_popularproduct) { ?> <?php if (($product['viewed']) > ($config_popularproduct)) { ?><div class="popularlabel"></div><?php } ?> <?php } ?> <?php if ($config_display_specialsproduct) { ?> <?php if ($product['price'] && $product['special']) { ?><div class="speciallabel"></div> <?php } ?> <?php } ?> <?php if ($config_display_availableproduct) { ?> <?php if (($product['quantity']) <= 0){ ?> <?php if (($product['onorder']) == 1){ ?> <div class="soldlabel"></div> <?php } else { ?> <div class="noproductlabel"></div> <?php } ?> <?php } ?> <?php } ?> <img src="/catalog/view/theme/confiseur/image/noimage.jpg" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a> <?php } ?> <div class="title-height"><a class="t" href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div> <div class="cart-panel"> <div class="item-info"> <p> <?php if (!$product['special']) { ?> <?php echo $product['price']; ?> <?php } else { ?> <!--<span class="price-old"><?php echo $product['price']; ?></span>--> <span class="price-new"><?php echo $product['special']; ?></span> <?php } ?> </p> <?php if ($product['rating']) { ?> <img src="catalog/view/theme/default/image/stars-<?php echo $product['rating']; ?>.png" alt="<?php echo $product['reviews']; ?>" /> <?php } else { ?> <img src="catalog/view/theme/default/image/stars-0.png" alt="<?php echo $product['reviews']; ?>" /> <?php } ?> </div> <script type="text/javascript"> function addQtyToCart(product_id) { var qty = $('.item-' + product_id).val(); if ((parseFloat(qty) != parseInt(qty)) || isNaN(qty)) { qty = 1; } addToCart(product_id, qty); } </script> <?php if (($product['quantity'] >0 )||($product['onorder']==1)) { ?> <!--<div class="no-quantity">Под заказ</div>--> <div class="col-cat"> Количество:<input type="text" value="1" size="2" class="item-<?php echo $product['product_id']; ?>" /></div> <input type="button" value="" onclick="addQtyToCart('<?php echo $product['product_id']; ?>');ga('send', 'event', 'pokupka_c', 'v_korzinu_c');ga('send', 'pageview', '/order/step1_k.html');" class="button" /> <?php } ?> </div> </div> <?php } ?> </div> </div> <div class="acdc-xs"></div> <div class="pagination"> <?php echo $pagination; ?> </div> <?php } ?> </div> <div class="acdc"></div> <div class="footer-line"></div> <div class="description"> <div class="center"> <div class="acdc-s"></div> <?php if ($description) { ?> <?php echo $description; ?> <?php } ?> </div> </div> <?php echo $footer; ?> Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Песочница [Решено] Как перенести функцию увеличения товара на страницу категории ? Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000
Marianna Опубліковано: 4 серпня 2014 Share Опубліковано: 4 серпня 2014 версия 1.6.че-то-там, небось? Странно, что до сих пор не пофиксили. ВЫ об чем? Это не проблема опенкарт, там в описании категорий картинка просто без возможности ее увеличить при клике, на самом деле это не нужная ерунда, просто клиентам зачем-то это понадобилось. А если об увеличение фото в сетке товаров в категории тоже не нужная ерунда по моему мнению. Надіслати Поділитися на інших сайтах More sharing options...
AlexFisher Опубліковано: 5 серпня 2014 Share Опубліковано: 5 серпня 2014 пардоньтесь, бред несу, глаз замылен. Надіслати Поділитися на інших сайтах More sharing options... sobwoofer Опубліковано: 5 серпня 2014 Share Опубліковано: 5 серпня 2014 в OcStore 1.5.5.1.2 функция увеличения изображения товаров в категории не роботает Надіслати Поділитися на інших сайтах More sharing options... Tom Опубліковано: 6 серпня 2014 Share Опубліковано: 6 серпня 2014 В этой версии колорбокс не подключен в хидере. Надіслати Поділитися на інших сайтах More sharing options... 5 months later... elscept Опубліковано: 14 січня 2015 Share Опубліковано: 14 січня 2015 Для Opencart 1.5.6 ни один из вариантов без доработки не подошел. В итоге сделал так: В файле catalog/cotroller/product/category.php В блоке $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, Добавил 'popup' => $this->model_tool_image->resize($image, $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')), В шаблоне категории catalog/view/theme/default/template/product/category.tpl вставил такую ссылку на большую картинку <?php echo $product['popup']; ?> Так же нужно перенести подключение Colorbox из product.tpl в header.tpl или footer.tpl Надіслати Поділитися на інших сайтах More sharing options... 3 months later... erigins Опубліковано: 27 квітня 2015 Share Опубліковано: 27 квітня 2015 Для Opencart 1.5.6 ни один из вариантов без доработки не подошел. В итоге сделал так: В файле catalog/cotroller/product/category.php В блоке $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, Добавил 'popup' => $this->model_tool_image->resize($image, $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')), В шаблоне категории catalog/view/theme/default/template/product/category.tpl вставил такую ссылку на большую картинку <?php echo $product['popup']; ?> Так же нужно перенести подключение Colorbox из product.tpl в header.tpl или footer.tpl Какая-то залуп@, не работает. Уже 2 дня мучаюсь. Хелп. Нужно сделать автоувеличение фото товара при наведении, в категории файл category.php <?php class ControllerProductCategory extends Controller { public function index() { $this->language->load('product/category'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('tool/image'); if (isset($this->request->get['filter'])) { $filter = $this->request->get['filter']; } else { $filter = ''; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; } else { $sort = 'p.sort_order'; } if (isset($this->request->get['order'])) { $order = $this->request->get['order']; } else { $order = 'ASC'; } if (isset($this->request->get['page'])) { $page = $this->request->get['page']; } else { $page = 1; } if (isset($this->request->get['limit'])) { $limit = $this->request->get['limit']; } else { $limit = $this->config->get('config_catalog_limit'); } $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home'), 'separator' => false ); if (isset($this->request->get['path'])) { $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts); foreach ($parts as $path_id) { if (!$path) { $path = (int)$path_id; } else { $path .= '_' . (int)$path_id; } $category_info = $this->model_catalog_category->getCategory($path_id); if ($category_info) { $this->data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $path . $url), 'separator' => $this->language->get('text_separator') ); } } } else { $category_id = 0; } $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { $this->document->setTitle($category_info['meta_keyword']); $this->document->setDescription($category_info['meta_description']); $this->document->setKeywords($category_info['meta_keyword']); $this->document->addScript('catalog/view/javascript/jquery/jquery.total-storage.min.js'); $this->data['heading_title'] = $category_info['name']; $this->data['text_refine'] = $this->language->get('text_refine'); $this->data['text_empty'] = $this->language->get('text_empty'); $this->data['text_quantity'] = $this->language->get('text_quantity'); $this->data['text_manufacturer'] = $this->language->get('text_manufacturer'); $this->data['text_model'] = $this->language->get('text_model'); $this->data['text_price'] = $this->language->get('text_price'); $this->data['text_tax'] = $this->language->get('text_tax'); $this->data['text_points'] = $this->language->get('text_points'); $this->data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); $this->data['text_display'] = $this->language->get('text_display'); $this->data['text_list'] = $this->language->get('text_list'); $this->data['text_grid'] = $this->language->get('text_grid'); $this->data['text_sort'] = $this->language->get('text_sort'); $this->data['text_limit'] = $this->language->get('text_limit'); $this->data['button_cart'] = $this->language->get('button_cart'); $this->data['button_wishlist'] = $this->language->get('button_wishlist'); $this->data['button_compare'] = $this->language->get('button_compare'); $this->data['button_continue'] = $this->language->get('button_continue'); // Set the last category breadcrumb $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path']), 'separator' => $this->language->get('text_separator') ); if ($category_info['image']) { $this->data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height')); } else { $this->data['thumb'] = ''; } $this->data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8'); $this->data['compare'] = $this->url->link('product/compare'); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['categories'] = array(); $results = $this->model_catalog_category->getCategories($category_id); foreach ($results as $result) { $data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); $product_total = $this->model_catalog_product->getTotalProducts($data); $this->data['categories'][] = array( 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url) ); } $this->data['products'] = array(); $data = array( 'filter_category_id' => $category_id, 'filter_sub_category' => true, 'filter_filter' => $filter, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $this->data['config_newproduct'] = $this->config->get('config_newproduct'); $this->data['config_display_newproduct'] = $this->config->get('config_display_newproduct'); $this->data['config_display_popularproduct'] = $this->config->get('config_display_popularproduct'); $this->data['config_popularproduct'] = $this->config->get('config_popularproduct'); $this->data['config_display_specialsproduct'] = $this->config->get('config_display_specialsproduct'); $this->data['config_display_availableproduct'] = $this->config->get('config_display_availableproduct'); $product_total = $this->model_catalog_product->getTotalProducts($data); //$results = $this->model_catalog_product->getProducts($data); $results = $this->model_catalog_product->getProducts($data); //Вызов метода getFoundProducts должен проводится сразу же после getProducts //только тогда он выдает правильное значения количества товаров //$product_total = $this->model_catalog_product->getFoundProducts(); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = false; } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..', 'price' => $price, 'special' => $special, 'onorder' => $result['onorder'], 'tax' => $tax, 'rating' => $result['rating'], 'quantity' => $result['quantity'], 'date_available' => $result['date_available'], 'viewed' => $result['viewed'], 'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['sorts'] = array(); $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $url) ); if ($this->config->get('config_review_status')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $url) ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $this->data['limits'] = array(); $limits = array_unique(array($this->config->get('config_catalog_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $limits){ $this->data['limits'][] = array( 'text' => $limits, 'value' => $limits, 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $limits) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->text = $this->language->get('text_pagination'); $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}'); $this->data['pagination'] = $pagination->render(); $this->data['sort'] = $sort; $this->data['order'] = $order; $this->data['limit'] = $limit; $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/category_v2.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/category_v2.tpl'; } else { $this->template = 'default/template/product/category.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } else { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_error'), 'href' => $this->url->link('product/category', $url), 'separator' => $this->language->get('text_separator') ); $this->document->setTitle($this->language->get('text_error')); $this->data['heading_title'] = $this->language->get('text_error'); $this->data['text_error'] = $this->language->get('text_error'); $this->data['button_continue'] = $this->language->get('button_continue'); $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) { $this->template = $this->config->get('config_template') . '/template/error/not_found.tpl'; } else { $this->template = 'default/template/error/not_found.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } } } ?> файл category.TPL <?php echo $header; ?> <div class="center"> <?php if ($products) { ?> <div class="page"> <h1 class="firstWord"><?php echo $heading_title; ?></h1><div class="floatright"> <select onchange="location = this.value;"> <?php foreach ($sorts as $sorts) { ?> <?php if ($sorts['value'] == $sort . '-' . $order) { ?> <option value="<?php echo $sorts['href']; ?>" selected="selected"><?php echo $sorts['text']; ?></option> <?php } else { ?> <option value="<?php echo $sorts['href']; ?>"><?php echo $sorts['text']; ?></option> <?php } ?> <?php } ?> </select></div> <div class="zz"></div> <div class="acdc"></div> <div class="breadcrumbs"> <?php foreach ($breadcrumbs as $breadcrumb) { ?> <span>/</span><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a> <?php } ?> </div> <noindex><div class="acdc"></div> <div class="filter-border"> <div class="filter"> <?php echo $column_left; ?> </div> </div></noindex> <div class="products"> <?php foreach ($products as $product) { ?> <div class="item"> <?php if ($product['thumb']) { ?> <a href="<?php echo $product['href']; ?>"> <?php if ($config_display_popularproduct) { ?> <?php if (($product['viewed']) > ($config_popularproduct)) { ?><div class="popularlabel"></div><?php } ?> <?php } ?> <?php if ($config_display_specialsproduct) { ?> <?php if ($product['price'] && $product['special']) { ?><div class="speciallabel"></div> <?php } ?> <?php } ?> <?php if ($config_display_availableproduct) { ?> <?php if (($product['quantity']) <= 0){ ?> <?php if (($product['onorder']) == 1){ ?> <div class="soldlabel"></div> <?php } else { ?> <div class="noproductlabel"></div> <?php } ?> <?php } ?> <?php } ?> <img src="<?php echo $product['thumb']; ?>" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a> <?php } else { ?> <a href="<?php echo $product['href']; ?>"> <?php if ($config_display_popularproduct) { ?> <?php if (($product['viewed']) > ($config_popularproduct)) { ?><div class="popularlabel"></div><?php } ?> <?php } ?> <?php if ($config_display_specialsproduct) { ?> <?php if ($product['price'] && $product['special']) { ?><div class="speciallabel"></div> <?php } ?> <?php } ?> <?php if ($config_display_availableproduct) { ?> <?php if (($product['quantity']) <= 0){ ?> <?php if (($product['onorder']) == 1){ ?> <div class="soldlabel"></div> <?php } else { ?> <div class="noproductlabel"></div> <?php } ?> <?php } ?> <?php } ?> <img src="/catalog/view/theme/confiseur/image/noimage.jpg" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a> <?php } ?> <div class="title-height"><a class="t" href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div> <div class="cart-panel"> <div class="item-info"> <p> <?php if (!$product['special']) { ?> <?php echo $product['price']; ?> <?php } else { ?> <!--<span class="price-old"><?php echo $product['price']; ?></span>--> <span class="price-new"><?php echo $product['special']; ?></span> <?php } ?> </p> <?php if ($product['rating']) { ?> <img src="catalog/view/theme/default/image/stars-<?php echo $product['rating']; ?>.png" alt="<?php echo $product['reviews']; ?>" /> <?php } else { ?> <img src="catalog/view/theme/default/image/stars-0.png" alt="<?php echo $product['reviews']; ?>" /> <?php } ?> </div> <script type="text/javascript"> function addQtyToCart(product_id) { var qty = $('.item-' + product_id).val(); if ((parseFloat(qty) != parseInt(qty)) || isNaN(qty)) { qty = 1; } addToCart(product_id, qty); } </script> <?php if (($product['quantity'] >0 )||($product['onorder']==1)) { ?> <!--<div class="no-quantity">Под заказ</div>--> <div class="col-cat"> Количество:<input type="text" value="1" size="2" class="item-<?php echo $product['product_id']; ?>" /></div> <input type="button" value="" onclick="addQtyToCart('<?php echo $product['product_id']; ?>');ga('send', 'event', 'pokupka_c', 'v_korzinu_c');ga('send', 'pageview', '/order/step1_k.html');" class="button" /> <?php } ?> </div> </div> <?php } ?> </div> </div> <div class="acdc-xs"></div> <div class="pagination"> <?php echo $pagination; ?> </div> <?php } ?> </div> <div class="acdc"></div> <div class="footer-line"></div> <div class="description"> <div class="center"> <div class="acdc-s"></div> <?php if ($description) { ?> <?php echo $description; ?> <?php } ?> </div> </div> <?php echo $footer; ?> Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Песочница [Решено] Как перенести функцию увеличения товара на страницу категории ?
sobwoofer Опубліковано: 5 серпня 2014 Share Опубліковано: 5 серпня 2014 в OcStore 1.5.5.1.2 функция увеличения изображения товаров в категории не роботает Надіслати Поділитися на інших сайтах More sharing options... Tom Опубліковано: 6 серпня 2014 Share Опубліковано: 6 серпня 2014 В этой версии колорбокс не подключен в хидере. Надіслати Поділитися на інших сайтах More sharing options... 5 months later... elscept Опубліковано: 14 січня 2015 Share Опубліковано: 14 січня 2015 Для Opencart 1.5.6 ни один из вариантов без доработки не подошел. В итоге сделал так: В файле catalog/cotroller/product/category.php В блоке $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, Добавил 'popup' => $this->model_tool_image->resize($image, $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')), В шаблоне категории catalog/view/theme/default/template/product/category.tpl вставил такую ссылку на большую картинку <?php echo $product['popup']; ?> Так же нужно перенести подключение Colorbox из product.tpl в header.tpl или footer.tpl Надіслати Поділитися на інших сайтах More sharing options... 3 months later... erigins Опубліковано: 27 квітня 2015 Share Опубліковано: 27 квітня 2015 Для Opencart 1.5.6 ни один из вариантов без доработки не подошел. В итоге сделал так: В файле catalog/cotroller/product/category.php В блоке $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, Добавил 'popup' => $this->model_tool_image->resize($image, $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')), В шаблоне категории catalog/view/theme/default/template/product/category.tpl вставил такую ссылку на большую картинку <?php echo $product['popup']; ?> Так же нужно перенести подключение Colorbox из product.tpl в header.tpl или footer.tpl Какая-то залуп@, не работает. Уже 2 дня мучаюсь. Хелп. Нужно сделать автоувеличение фото товара при наведении, в категории файл category.php <?php class ControllerProductCategory extends Controller { public function index() { $this->language->load('product/category'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('tool/image'); if (isset($this->request->get['filter'])) { $filter = $this->request->get['filter']; } else { $filter = ''; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; } else { $sort = 'p.sort_order'; } if (isset($this->request->get['order'])) { $order = $this->request->get['order']; } else { $order = 'ASC'; } if (isset($this->request->get['page'])) { $page = $this->request->get['page']; } else { $page = 1; } if (isset($this->request->get['limit'])) { $limit = $this->request->get['limit']; } else { $limit = $this->config->get('config_catalog_limit'); } $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home'), 'separator' => false ); if (isset($this->request->get['path'])) { $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts); foreach ($parts as $path_id) { if (!$path) { $path = (int)$path_id; } else { $path .= '_' . (int)$path_id; } $category_info = $this->model_catalog_category->getCategory($path_id); if ($category_info) { $this->data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $path . $url), 'separator' => $this->language->get('text_separator') ); } } } else { $category_id = 0; } $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { $this->document->setTitle($category_info['meta_keyword']); $this->document->setDescription($category_info['meta_description']); $this->document->setKeywords($category_info['meta_keyword']); $this->document->addScript('catalog/view/javascript/jquery/jquery.total-storage.min.js'); $this->data['heading_title'] = $category_info['name']; $this->data['text_refine'] = $this->language->get('text_refine'); $this->data['text_empty'] = $this->language->get('text_empty'); $this->data['text_quantity'] = $this->language->get('text_quantity'); $this->data['text_manufacturer'] = $this->language->get('text_manufacturer'); $this->data['text_model'] = $this->language->get('text_model'); $this->data['text_price'] = $this->language->get('text_price'); $this->data['text_tax'] = $this->language->get('text_tax'); $this->data['text_points'] = $this->language->get('text_points'); $this->data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); $this->data['text_display'] = $this->language->get('text_display'); $this->data['text_list'] = $this->language->get('text_list'); $this->data['text_grid'] = $this->language->get('text_grid'); $this->data['text_sort'] = $this->language->get('text_sort'); $this->data['text_limit'] = $this->language->get('text_limit'); $this->data['button_cart'] = $this->language->get('button_cart'); $this->data['button_wishlist'] = $this->language->get('button_wishlist'); $this->data['button_compare'] = $this->language->get('button_compare'); $this->data['button_continue'] = $this->language->get('button_continue'); // Set the last category breadcrumb $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path']), 'separator' => $this->language->get('text_separator') ); if ($category_info['image']) { $this->data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height')); } else { $this->data['thumb'] = ''; } $this->data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8'); $this->data['compare'] = $this->url->link('product/compare'); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['categories'] = array(); $results = $this->model_catalog_category->getCategories($category_id); foreach ($results as $result) { $data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); $product_total = $this->model_catalog_product->getTotalProducts($data); $this->data['categories'][] = array( 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url) ); } $this->data['products'] = array(); $data = array( 'filter_category_id' => $category_id, 'filter_sub_category' => true, 'filter_filter' => $filter, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $this->data['config_newproduct'] = $this->config->get('config_newproduct'); $this->data['config_display_newproduct'] = $this->config->get('config_display_newproduct'); $this->data['config_display_popularproduct'] = $this->config->get('config_display_popularproduct'); $this->data['config_popularproduct'] = $this->config->get('config_popularproduct'); $this->data['config_display_specialsproduct'] = $this->config->get('config_display_specialsproduct'); $this->data['config_display_availableproduct'] = $this->config->get('config_display_availableproduct'); $product_total = $this->model_catalog_product->getTotalProducts($data); //$results = $this->model_catalog_product->getProducts($data); $results = $this->model_catalog_product->getProducts($data); //Вызов метода getFoundProducts должен проводится сразу же после getProducts //только тогда он выдает правильное значения количества товаров //$product_total = $this->model_catalog_product->getFoundProducts(); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = false; } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..', 'price' => $price, 'special' => $special, 'onorder' => $result['onorder'], 'tax' => $tax, 'rating' => $result['rating'], 'quantity' => $result['quantity'], 'date_available' => $result['date_available'], 'viewed' => $result['viewed'], 'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['sorts'] = array(); $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $url) ); if ($this->config->get('config_review_status')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $url) ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $this->data['limits'] = array(); $limits = array_unique(array($this->config->get('config_catalog_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $limits){ $this->data['limits'][] = array( 'text' => $limits, 'value' => $limits, 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $limits) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->text = $this->language->get('text_pagination'); $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}'); $this->data['pagination'] = $pagination->render(); $this->data['sort'] = $sort; $this->data['order'] = $order; $this->data['limit'] = $limit; $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/category_v2.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/category_v2.tpl'; } else { $this->template = 'default/template/product/category.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } else { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_error'), 'href' => $this->url->link('product/category', $url), 'separator' => $this->language->get('text_separator') ); $this->document->setTitle($this->language->get('text_error')); $this->data['heading_title'] = $this->language->get('text_error'); $this->data['text_error'] = $this->language->get('text_error'); $this->data['button_continue'] = $this->language->get('button_continue'); $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) { $this->template = $this->config->get('config_template') . '/template/error/not_found.tpl'; } else { $this->template = 'default/template/error/not_found.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } } } ?> файл category.TPL <?php echo $header; ?> <div class="center"> <?php if ($products) { ?> <div class="page"> <h1 class="firstWord"><?php echo $heading_title; ?></h1><div class="floatright"> <select onchange="location = this.value;"> <?php foreach ($sorts as $sorts) { ?> <?php if ($sorts['value'] == $sort . '-' . $order) { ?> <option value="<?php echo $sorts['href']; ?>" selected="selected"><?php echo $sorts['text']; ?></option> <?php } else { ?> <option value="<?php echo $sorts['href']; ?>"><?php echo $sorts['text']; ?></option> <?php } ?> <?php } ?> </select></div> <div class="zz"></div> <div class="acdc"></div> <div class="breadcrumbs"> <?php foreach ($breadcrumbs as $breadcrumb) { ?> <span>/</span><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a> <?php } ?> </div> <noindex><div class="acdc"></div> <div class="filter-border"> <div class="filter"> <?php echo $column_left; ?> </div> </div></noindex> <div class="products"> <?php foreach ($products as $product) { ?> <div class="item"> <?php if ($product['thumb']) { ?> <a href="<?php echo $product['href']; ?>"> <?php if ($config_display_popularproduct) { ?> <?php if (($product['viewed']) > ($config_popularproduct)) { ?><div class="popularlabel"></div><?php } ?> <?php } ?> <?php if ($config_display_specialsproduct) { ?> <?php if ($product['price'] && $product['special']) { ?><div class="speciallabel"></div> <?php } ?> <?php } ?> <?php if ($config_display_availableproduct) { ?> <?php if (($product['quantity']) <= 0){ ?> <?php if (($product['onorder']) == 1){ ?> <div class="soldlabel"></div> <?php } else { ?> <div class="noproductlabel"></div> <?php } ?> <?php } ?> <?php } ?> <img src="<?php echo $product['thumb']; ?>" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a> <?php } else { ?> <a href="<?php echo $product['href']; ?>"> <?php if ($config_display_popularproduct) { ?> <?php if (($product['viewed']) > ($config_popularproduct)) { ?><div class="popularlabel"></div><?php } ?> <?php } ?> <?php if ($config_display_specialsproduct) { ?> <?php if ($product['price'] && $product['special']) { ?><div class="speciallabel"></div> <?php } ?> <?php } ?> <?php if ($config_display_availableproduct) { ?> <?php if (($product['quantity']) <= 0){ ?> <?php if (($product['onorder']) == 1){ ?> <div class="soldlabel"></div> <?php } else { ?> <div class="noproductlabel"></div> <?php } ?> <?php } ?> <?php } ?> <img src="/catalog/view/theme/confiseur/image/noimage.jpg" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a> <?php } ?> <div class="title-height"><a class="t" href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div> <div class="cart-panel"> <div class="item-info"> <p> <?php if (!$product['special']) { ?> <?php echo $product['price']; ?> <?php } else { ?> <!--<span class="price-old"><?php echo $product['price']; ?></span>--> <span class="price-new"><?php echo $product['special']; ?></span> <?php } ?> </p> <?php if ($product['rating']) { ?> <img src="catalog/view/theme/default/image/stars-<?php echo $product['rating']; ?>.png" alt="<?php echo $product['reviews']; ?>" /> <?php } else { ?> <img src="catalog/view/theme/default/image/stars-0.png" alt="<?php echo $product['reviews']; ?>" /> <?php } ?> </div> <script type="text/javascript"> function addQtyToCart(product_id) { var qty = $('.item-' + product_id).val(); if ((parseFloat(qty) != parseInt(qty)) || isNaN(qty)) { qty = 1; } addToCart(product_id, qty); } </script> <?php if (($product['quantity'] >0 )||($product['onorder']==1)) { ?> <!--<div class="no-quantity">Под заказ</div>--> <div class="col-cat"> Количество:<input type="text" value="1" size="2" class="item-<?php echo $product['product_id']; ?>" /></div> <input type="button" value="" onclick="addQtyToCart('<?php echo $product['product_id']; ?>');ga('send', 'event', 'pokupka_c', 'v_korzinu_c');ga('send', 'pageview', '/order/step1_k.html');" class="button" /> <?php } ?> </div> </div> <?php } ?> </div> </div> <div class="acdc-xs"></div> <div class="pagination"> <?php echo $pagination; ?> </div> <?php } ?> </div> <div class="acdc"></div> <div class="footer-line"></div> <div class="description"> <div class="center"> <div class="acdc-s"></div> <?php if ($description) { ?> <?php echo $description; ?> <?php } ?> </div> </div> <?php echo $footer; ?> Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
Tom Опубліковано: 6 серпня 2014 Share Опубліковано: 6 серпня 2014 В этой версии колорбокс не подключен в хидере. Надіслати Поділитися на інших сайтах More sharing options... 5 months later... elscept Опубліковано: 14 січня 2015 Share Опубліковано: 14 січня 2015 Для Opencart 1.5.6 ни один из вариантов без доработки не подошел. В итоге сделал так: В файле catalog/cotroller/product/category.php В блоке $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, Добавил 'popup' => $this->model_tool_image->resize($image, $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')), В шаблоне категории catalog/view/theme/default/template/product/category.tpl вставил такую ссылку на большую картинку <?php echo $product['popup']; ?> Так же нужно перенести подключение Colorbox из product.tpl в header.tpl или footer.tpl Надіслати Поділитися на інших сайтах More sharing options... 3 months later... erigins Опубліковано: 27 квітня 2015 Share Опубліковано: 27 квітня 2015 Для Opencart 1.5.6 ни один из вариантов без доработки не подошел. В итоге сделал так: В файле catalog/cotroller/product/category.php В блоке $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, Добавил 'popup' => $this->model_tool_image->resize($image, $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')), В шаблоне категории catalog/view/theme/default/template/product/category.tpl вставил такую ссылку на большую картинку <?php echo $product['popup']; ?> Так же нужно перенести подключение Colorbox из product.tpl в header.tpl или footer.tpl Какая-то залуп@, не работает. Уже 2 дня мучаюсь. Хелп. Нужно сделать автоувеличение фото товара при наведении, в категории файл category.php <?php class ControllerProductCategory extends Controller { public function index() { $this->language->load('product/category'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('tool/image'); if (isset($this->request->get['filter'])) { $filter = $this->request->get['filter']; } else { $filter = ''; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; } else { $sort = 'p.sort_order'; } if (isset($this->request->get['order'])) { $order = $this->request->get['order']; } else { $order = 'ASC'; } if (isset($this->request->get['page'])) { $page = $this->request->get['page']; } else { $page = 1; } if (isset($this->request->get['limit'])) { $limit = $this->request->get['limit']; } else { $limit = $this->config->get('config_catalog_limit'); } $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home'), 'separator' => false ); if (isset($this->request->get['path'])) { $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts); foreach ($parts as $path_id) { if (!$path) { $path = (int)$path_id; } else { $path .= '_' . (int)$path_id; } $category_info = $this->model_catalog_category->getCategory($path_id); if ($category_info) { $this->data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $path . $url), 'separator' => $this->language->get('text_separator') ); } } } else { $category_id = 0; } $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { $this->document->setTitle($category_info['meta_keyword']); $this->document->setDescription($category_info['meta_description']); $this->document->setKeywords($category_info['meta_keyword']); $this->document->addScript('catalog/view/javascript/jquery/jquery.total-storage.min.js'); $this->data['heading_title'] = $category_info['name']; $this->data['text_refine'] = $this->language->get('text_refine'); $this->data['text_empty'] = $this->language->get('text_empty'); $this->data['text_quantity'] = $this->language->get('text_quantity'); $this->data['text_manufacturer'] = $this->language->get('text_manufacturer'); $this->data['text_model'] = $this->language->get('text_model'); $this->data['text_price'] = $this->language->get('text_price'); $this->data['text_tax'] = $this->language->get('text_tax'); $this->data['text_points'] = $this->language->get('text_points'); $this->data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); $this->data['text_display'] = $this->language->get('text_display'); $this->data['text_list'] = $this->language->get('text_list'); $this->data['text_grid'] = $this->language->get('text_grid'); $this->data['text_sort'] = $this->language->get('text_sort'); $this->data['text_limit'] = $this->language->get('text_limit'); $this->data['button_cart'] = $this->language->get('button_cart'); $this->data['button_wishlist'] = $this->language->get('button_wishlist'); $this->data['button_compare'] = $this->language->get('button_compare'); $this->data['button_continue'] = $this->language->get('button_continue'); // Set the last category breadcrumb $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path']), 'separator' => $this->language->get('text_separator') ); if ($category_info['image']) { $this->data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height')); } else { $this->data['thumb'] = ''; } $this->data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8'); $this->data['compare'] = $this->url->link('product/compare'); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['categories'] = array(); $results = $this->model_catalog_category->getCategories($category_id); foreach ($results as $result) { $data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); $product_total = $this->model_catalog_product->getTotalProducts($data); $this->data['categories'][] = array( 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url) ); } $this->data['products'] = array(); $data = array( 'filter_category_id' => $category_id, 'filter_sub_category' => true, 'filter_filter' => $filter, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $this->data['config_newproduct'] = $this->config->get('config_newproduct'); $this->data['config_display_newproduct'] = $this->config->get('config_display_newproduct'); $this->data['config_display_popularproduct'] = $this->config->get('config_display_popularproduct'); $this->data['config_popularproduct'] = $this->config->get('config_popularproduct'); $this->data['config_display_specialsproduct'] = $this->config->get('config_display_specialsproduct'); $this->data['config_display_availableproduct'] = $this->config->get('config_display_availableproduct'); $product_total = $this->model_catalog_product->getTotalProducts($data); //$results = $this->model_catalog_product->getProducts($data); $results = $this->model_catalog_product->getProducts($data); //Вызов метода getFoundProducts должен проводится сразу же после getProducts //только тогда он выдает правильное значения количества товаров //$product_total = $this->model_catalog_product->getFoundProducts(); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = false; } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..', 'price' => $price, 'special' => $special, 'onorder' => $result['onorder'], 'tax' => $tax, 'rating' => $result['rating'], 'quantity' => $result['quantity'], 'date_available' => $result['date_available'], 'viewed' => $result['viewed'], 'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['sorts'] = array(); $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $url) ); if ($this->config->get('config_review_status')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $url) ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $this->data['limits'] = array(); $limits = array_unique(array($this->config->get('config_catalog_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $limits){ $this->data['limits'][] = array( 'text' => $limits, 'value' => $limits, 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $limits) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->text = $this->language->get('text_pagination'); $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}'); $this->data['pagination'] = $pagination->render(); $this->data['sort'] = $sort; $this->data['order'] = $order; $this->data['limit'] = $limit; $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/category_v2.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/category_v2.tpl'; } else { $this->template = 'default/template/product/category.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } else { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_error'), 'href' => $this->url->link('product/category', $url), 'separator' => $this->language->get('text_separator') ); $this->document->setTitle($this->language->get('text_error')); $this->data['heading_title'] = $this->language->get('text_error'); $this->data['text_error'] = $this->language->get('text_error'); $this->data['button_continue'] = $this->language->get('button_continue'); $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) { $this->template = $this->config->get('config_template') . '/template/error/not_found.tpl'; } else { $this->template = 'default/template/error/not_found.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } } } ?> файл category.TPL <?php echo $header; ?> <div class="center"> <?php if ($products) { ?> <div class="page"> <h1 class="firstWord"><?php echo $heading_title; ?></h1><div class="floatright"> <select onchange="location = this.value;"> <?php foreach ($sorts as $sorts) { ?> <?php if ($sorts['value'] == $sort . '-' . $order) { ?> <option value="<?php echo $sorts['href']; ?>" selected="selected"><?php echo $sorts['text']; ?></option> <?php } else { ?> <option value="<?php echo $sorts['href']; ?>"><?php echo $sorts['text']; ?></option> <?php } ?> <?php } ?> </select></div> <div class="zz"></div> <div class="acdc"></div> <div class="breadcrumbs"> <?php foreach ($breadcrumbs as $breadcrumb) { ?> <span>/</span><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a> <?php } ?> </div> <noindex><div class="acdc"></div> <div class="filter-border"> <div class="filter"> <?php echo $column_left; ?> </div> </div></noindex> <div class="products"> <?php foreach ($products as $product) { ?> <div class="item"> <?php if ($product['thumb']) { ?> <a href="<?php echo $product['href']; ?>"> <?php if ($config_display_popularproduct) { ?> <?php if (($product['viewed']) > ($config_popularproduct)) { ?><div class="popularlabel"></div><?php } ?> <?php } ?> <?php if ($config_display_specialsproduct) { ?> <?php if ($product['price'] && $product['special']) { ?><div class="speciallabel"></div> <?php } ?> <?php } ?> <?php if ($config_display_availableproduct) { ?> <?php if (($product['quantity']) <= 0){ ?> <?php if (($product['onorder']) == 1){ ?> <div class="soldlabel"></div> <?php } else { ?> <div class="noproductlabel"></div> <?php } ?> <?php } ?> <?php } ?> <img src="<?php echo $product['thumb']; ?>" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a> <?php } else { ?> <a href="<?php echo $product['href']; ?>"> <?php if ($config_display_popularproduct) { ?> <?php if (($product['viewed']) > ($config_popularproduct)) { ?><div class="popularlabel"></div><?php } ?> <?php } ?> <?php if ($config_display_specialsproduct) { ?> <?php if ($product['price'] && $product['special']) { ?><div class="speciallabel"></div> <?php } ?> <?php } ?> <?php if ($config_display_availableproduct) { ?> <?php if (($product['quantity']) <= 0){ ?> <?php if (($product['onorder']) == 1){ ?> <div class="soldlabel"></div> <?php } else { ?> <div class="noproductlabel"></div> <?php } ?> <?php } ?> <?php } ?> <img src="/catalog/view/theme/confiseur/image/noimage.jpg" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a> <?php } ?> <div class="title-height"><a class="t" href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div> <div class="cart-panel"> <div class="item-info"> <p> <?php if (!$product['special']) { ?> <?php echo $product['price']; ?> <?php } else { ?> <!--<span class="price-old"><?php echo $product['price']; ?></span>--> <span class="price-new"><?php echo $product['special']; ?></span> <?php } ?> </p> <?php if ($product['rating']) { ?> <img src="catalog/view/theme/default/image/stars-<?php echo $product['rating']; ?>.png" alt="<?php echo $product['reviews']; ?>" /> <?php } else { ?> <img src="catalog/view/theme/default/image/stars-0.png" alt="<?php echo $product['reviews']; ?>" /> <?php } ?> </div> <script type="text/javascript"> function addQtyToCart(product_id) { var qty = $('.item-' + product_id).val(); if ((parseFloat(qty) != parseInt(qty)) || isNaN(qty)) { qty = 1; } addToCart(product_id, qty); } </script> <?php if (($product['quantity'] >0 )||($product['onorder']==1)) { ?> <!--<div class="no-quantity">Под заказ</div>--> <div class="col-cat"> Количество:<input type="text" value="1" size="2" class="item-<?php echo $product['product_id']; ?>" /></div> <input type="button" value="" onclick="addQtyToCart('<?php echo $product['product_id']; ?>');ga('send', 'event', 'pokupka_c', 'v_korzinu_c');ga('send', 'pageview', '/order/step1_k.html');" class="button" /> <?php } ?> </div> </div> <?php } ?> </div> </div> <div class="acdc-xs"></div> <div class="pagination"> <?php echo $pagination; ?> </div> <?php } ?> </div> <div class="acdc"></div> <div class="footer-line"></div> <div class="description"> <div class="center"> <div class="acdc-s"></div> <?php if ($description) { ?> <?php echo $description; ?> <?php } ?> </div> </div> <?php echo $footer; ?> Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0
elscept Опубліковано: 14 січня 2015 Share Опубліковано: 14 січня 2015 Для Opencart 1.5.6 ни один из вариантов без доработки не подошел. В итоге сделал так: В файле catalog/cotroller/product/category.php В блоке $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, Добавил 'popup' => $this->model_tool_image->resize($image, $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')), В шаблоне категории catalog/view/theme/default/template/product/category.tpl вставил такую ссылку на большую картинку <?php echo $product['popup']; ?> Так же нужно перенести подключение Colorbox из product.tpl в header.tpl или footer.tpl Надіслати Поділитися на інших сайтах More sharing options...
erigins Опубліковано: 27 квітня 2015 Share Опубліковано: 27 квітня 2015 Для Opencart 1.5.6 ни один из вариантов без доработки не подошел. В итоге сделал так: В файле catalog/cotroller/product/category.php В блоке $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, Добавил 'popup' => $this->model_tool_image->resize($image, $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')), В шаблоне категории catalog/view/theme/default/template/product/category.tpl вставил такую ссылку на большую картинку <?php echo $product['popup']; ?> Так же нужно перенести подключение Colorbox из product.tpl в header.tpl или footer.tpl Какая-то залуп@, не работает. Уже 2 дня мучаюсь. Хелп. Нужно сделать автоувеличение фото товара при наведении, в категории файл category.php <?php class ControllerProductCategory extends Controller { public function index() { $this->language->load('product/category'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('tool/image'); if (isset($this->request->get['filter'])) { $filter = $this->request->get['filter']; } else { $filter = ''; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; } else { $sort = 'p.sort_order'; } if (isset($this->request->get['order'])) { $order = $this->request->get['order']; } else { $order = 'ASC'; } if (isset($this->request->get['page'])) { $page = $this->request->get['page']; } else { $page = 1; } if (isset($this->request->get['limit'])) { $limit = $this->request->get['limit']; } else { $limit = $this->config->get('config_catalog_limit'); } $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home'), 'separator' => false ); if (isset($this->request->get['path'])) { $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts); foreach ($parts as $path_id) { if (!$path) { $path = (int)$path_id; } else { $path .= '_' . (int)$path_id; } $category_info = $this->model_catalog_category->getCategory($path_id); if ($category_info) { $this->data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $path . $url), 'separator' => $this->language->get('text_separator') ); } } } else { $category_id = 0; } $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { $this->document->setTitle($category_info['meta_keyword']); $this->document->setDescription($category_info['meta_description']); $this->document->setKeywords($category_info['meta_keyword']); $this->document->addScript('catalog/view/javascript/jquery/jquery.total-storage.min.js'); $this->data['heading_title'] = $category_info['name']; $this->data['text_refine'] = $this->language->get('text_refine'); $this->data['text_empty'] = $this->language->get('text_empty'); $this->data['text_quantity'] = $this->language->get('text_quantity'); $this->data['text_manufacturer'] = $this->language->get('text_manufacturer'); $this->data['text_model'] = $this->language->get('text_model'); $this->data['text_price'] = $this->language->get('text_price'); $this->data['text_tax'] = $this->language->get('text_tax'); $this->data['text_points'] = $this->language->get('text_points'); $this->data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); $this->data['text_display'] = $this->language->get('text_display'); $this->data['text_list'] = $this->language->get('text_list'); $this->data['text_grid'] = $this->language->get('text_grid'); $this->data['text_sort'] = $this->language->get('text_sort'); $this->data['text_limit'] = $this->language->get('text_limit'); $this->data['button_cart'] = $this->language->get('button_cart'); $this->data['button_wishlist'] = $this->language->get('button_wishlist'); $this->data['button_compare'] = $this->language->get('button_compare'); $this->data['button_continue'] = $this->language->get('button_continue'); // Set the last category breadcrumb $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path']), 'separator' => $this->language->get('text_separator') ); if ($category_info['image']) { $this->data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height')); } else { $this->data['thumb'] = ''; } $this->data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8'); $this->data['compare'] = $this->url->link('product/compare'); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['categories'] = array(); $results = $this->model_catalog_category->getCategories($category_id); foreach ($results as $result) { $data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); $product_total = $this->model_catalog_product->getTotalProducts($data); $this->data['categories'][] = array( 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url) ); } $this->data['products'] = array(); $data = array( 'filter_category_id' => $category_id, 'filter_sub_category' => true, 'filter_filter' => $filter, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $this->data['config_newproduct'] = $this->config->get('config_newproduct'); $this->data['config_display_newproduct'] = $this->config->get('config_display_newproduct'); $this->data['config_display_popularproduct'] = $this->config->get('config_display_popularproduct'); $this->data['config_popularproduct'] = $this->config->get('config_popularproduct'); $this->data['config_display_specialsproduct'] = $this->config->get('config_display_specialsproduct'); $this->data['config_display_availableproduct'] = $this->config->get('config_display_availableproduct'); $product_total = $this->model_catalog_product->getTotalProducts($data); //$results = $this->model_catalog_product->getProducts($data); $results = $this->model_catalog_product->getProducts($data); //Вызов метода getFoundProducts должен проводится сразу же после getProducts //только тогда он выдает правильное значения количества товаров //$product_total = $this->model_catalog_product->getFoundProducts(); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = false; } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..', 'price' => $price, 'special' => $special, 'onorder' => $result['onorder'], 'tax' => $tax, 'rating' => $result['rating'], 'quantity' => $result['quantity'], 'date_available' => $result['date_available'], 'viewed' => $result['viewed'], 'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']), 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['sorts'] = array(); $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $url) ); if ($this->config->get('config_review_status')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $url) ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $url) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $this->data['limits'] = array(); $limits = array_unique(array($this->config->get('config_catalog_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $limits){ $this->data['limits'][] = array( 'text' => $limits, 'value' => $limits, 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $limits) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->text = $this->language->get('text_pagination'); $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}'); $this->data['pagination'] = $pagination->render(); $this->data['sort'] = $sort; $this->data['order'] = $order; $this->data['limit'] = $limit; $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/category_v2.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/category_v2.tpl'; } else { $this->template = 'default/template/product/category.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } else { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_error'), 'href' => $this->url->link('product/category', $url), 'separator' => $this->language->get('text_separator') ); $this->document->setTitle($this->language->get('text_error')); $this->data['heading_title'] = $this->language->get('text_error'); $this->data['text_error'] = $this->language->get('text_error'); $this->data['button_continue'] = $this->language->get('button_continue'); $this->data['continue'] = $this->url->link('common/home'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) { $this->template = $this->config->get('config_template') . '/template/error/not_found.tpl'; } else { $this->template = 'default/template/error/not_found.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } } } ?> файл category.TPL <?php echo $header; ?> <div class="center"> <?php if ($products) { ?> <div class="page"> <h1 class="firstWord"><?php echo $heading_title; ?></h1><div class="floatright"> <select onchange="location = this.value;"> <?php foreach ($sorts as $sorts) { ?> <?php if ($sorts['value'] == $sort . '-' . $order) { ?> <option value="<?php echo $sorts['href']; ?>" selected="selected"><?php echo $sorts['text']; ?></option> <?php } else { ?> <option value="<?php echo $sorts['href']; ?>"><?php echo $sorts['text']; ?></option> <?php } ?> <?php } ?> </select></div> <div class="zz"></div> <div class="acdc"></div> <div class="breadcrumbs"> <?php foreach ($breadcrumbs as $breadcrumb) { ?> <span>/</span><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a> <?php } ?> </div> <noindex><div class="acdc"></div> <div class="filter-border"> <div class="filter"> <?php echo $column_left; ?> </div> </div></noindex> <div class="products"> <?php foreach ($products as $product) { ?> <div class="item"> <?php if ($product['thumb']) { ?> <a href="<?php echo $product['href']; ?>"> <?php if ($config_display_popularproduct) { ?> <?php if (($product['viewed']) > ($config_popularproduct)) { ?><div class="popularlabel"></div><?php } ?> <?php } ?> <?php if ($config_display_specialsproduct) { ?> <?php if ($product['price'] && $product['special']) { ?><div class="speciallabel"></div> <?php } ?> <?php } ?> <?php if ($config_display_availableproduct) { ?> <?php if (($product['quantity']) <= 0){ ?> <?php if (($product['onorder']) == 1){ ?> <div class="soldlabel"></div> <?php } else { ?> <div class="noproductlabel"></div> <?php } ?> <?php } ?> <?php } ?> <img src="<?php echo $product['thumb']; ?>" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a> <?php } else { ?> <a href="<?php echo $product['href']; ?>"> <?php if ($config_display_popularproduct) { ?> <?php if (($product['viewed']) > ($config_popularproduct)) { ?><div class="popularlabel"></div><?php } ?> <?php } ?> <?php if ($config_display_specialsproduct) { ?> <?php if ($product['price'] && $product['special']) { ?><div class="speciallabel"></div> <?php } ?> <?php } ?> <?php if ($config_display_availableproduct) { ?> <?php if (($product['quantity']) <= 0){ ?> <?php if (($product['onorder']) == 1){ ?> <div class="soldlabel"></div> <?php } else { ?> <div class="noproductlabel"></div> <?php } ?> <?php } ?> <?php } ?> <img src="/catalog/view/theme/confiseur/image/noimage.jpg" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a> <?php } ?> <div class="title-height"><a class="t" href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div> <div class="cart-panel"> <div class="item-info"> <p> <?php if (!$product['special']) { ?> <?php echo $product['price']; ?> <?php } else { ?> <!--<span class="price-old"><?php echo $product['price']; ?></span>--> <span class="price-new"><?php echo $product['special']; ?></span> <?php } ?> </p> <?php if ($product['rating']) { ?> <img src="catalog/view/theme/default/image/stars-<?php echo $product['rating']; ?>.png" alt="<?php echo $product['reviews']; ?>" /> <?php } else { ?> <img src="catalog/view/theme/default/image/stars-0.png" alt="<?php echo $product['reviews']; ?>" /> <?php } ?> </div> <script type="text/javascript"> function addQtyToCart(product_id) { var qty = $('.item-' + product_id).val(); if ((parseFloat(qty) != parseInt(qty)) || isNaN(qty)) { qty = 1; } addToCart(product_id, qty); } </script> <?php if (($product['quantity'] >0 )||($product['onorder']==1)) { ?> <!--<div class="no-quantity">Под заказ</div>--> <div class="col-cat"> Количество:<input type="text" value="1" size="2" class="item-<?php echo $product['product_id']; ?>" /></div> <input type="button" value="" onclick="addQtyToCart('<?php echo $product['product_id']; ?>');ga('send', 'event', 'pokupka_c', 'v_korzinu_c');ga('send', 'pageview', '/order/step1_k.html');" class="button" /> <?php } ?> </div> </div> <?php } ?> </div> </div> <div class="acdc-xs"></div> <div class="pagination"> <?php echo $pagination; ?> </div> <?php } ?> </div> <div class="acdc"></div> <div class="footer-line"></div> <div class="description"> <div class="center"> <div class="acdc-s"></div> <?php if ($description) { ?> <?php echo $description; ?> <?php } ?> </div> </div> <?php echo $footer; ?> Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts