Jump to content
Sign in to follow this  
yourwebinua

Помощь, получить ID и href категории в модуле"Товары из категорий"

Recommended Posts

Добрый день. Нужна помощь.

Есть модуль товаров из категорий, выводиться на главной несколько модулей с разных категорий. Хочу к заголовку модуля (навание категории), добавить ссылку для перехода в категорию, товары из которой показывает модуль. По идее должно быть не сложно но никак не могу сообразить.

Вот файл контроллера:

<?php
class ControllerModuleProductCategory extends Controller {
	protected function index($setting) {
//		echo '<pre>';
//		print_r($setting);die;
		$this->language->load('module/product_category');
 
      	$this->data['heading_title'] = $this->language->get('heading_title');

		$this->data['button_cart'] = $this->language->get('button_cart');
		
		$this->load->model('catalog/product');
		$this->load->model('catalog/category');
		$this->load->model('tool/image');
		$this->data['products'] = array();
		
		$this->data['title'] = $setting[$this->config->get('config_language_id')]['title'];
		$info_category = $this->model_catalog_category->getCategory($setting['cat_p']);
		if(isset($info_category['name'])){
			$data = array(
				'filter_category_id' => $info_category['category_id'],
				'sort'  => $setting['sort'],
				'order' => $setting['type'],
				'start' => 0,
				'limit' => $setting['limit']
			);
		$results = $this->model_catalog_product->getProducts($data);
		
			foreach ($results as $result) {
				$width = ''; $height = '';
				if ($result['image']) {
					$image = $this->model_tool_image->resize($result['image'], $setting['image_width'], $setting['image_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_review_status')) {
					$rating = $result['rating'];
				} else {
					$rating = false;
				}

			$this->data['products'][] = array(
				'product_id' => $result['product_id'],
				'thumb'   	 => $image,
				'name'    	 => $result['name'],
				'price'   	 => $price,
				'special' 	 => $special,
				'rating'     => $rating,
				'reviews'    => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
				'href'    	 => $this->url->link('product/product', 'product_id=' . $result['product_id']),
			);

			}

		}
		if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/product_category.tpl')) {
			$this->template = $this->config->get('config_template') . '/template/module/product_category.tpl';
		} else {
			$this->template = 'default/template/module/product_category.tpl';
		}

		$this->render();
	}
}
?> 

 

И вывод (стандартный как и в модулях рекомендуемых, новинок и т.д.):

<div class="box">
  <div class="box-heading"><?php echo $title; ?></div>
  <div class="box-content">
    <div class="box-product boxall">
    <?php $i=0; ?>
      <?php foreach ($products as $product) { ?>
      <div>
        <?php if ($product['thumb']) { ?>
        <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" /></a></div>
        <?php } ?>
        <div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>
        <?php if ($product['price']) { ?>
        <div class="price">
          <?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 } ?>
        </div>
        <?php } ?>
        <?php if ($product['rating']) { ?>
        <div class="rating"><img src="catalog/view/theme/default/image/stars-<?php echo $product['rating']; ?>.png" alt="<?php echo $product['reviews']; ?>" /></div>
        <?php } ?>
        <div class="cart"><input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" /></div>
      </div>
      <?php } ?>

    </div>
  </div>
</div>


 

Ну и собственно вопрос: как получить ID категории (хочу присвоить разные классы с номером ID в стилях), и ссылку на нее. Заранее спасибо за ответ

Share this post


Link to post
Share on other sites

У вас в контроллере есть $info_category['category_id'] - задействуйте её в массиве с перечислением данных товара (стр 56-63), и выведите в шаблоне.

Share this post


Link to post
Share on other sites

Так будет работать только в цикле  

<?php foreach ($products as $product) { ?>

И повторяться вывод будет столько же, сколько товаров выводиться.

Share this post


Link to post
Share on other sites

Сделал вывод только первого элемента из массива, но как то громоздко получилось - должен же быть способ получить эту переменную попроще

Share this post


Link to post
Share on other sites

не нужно пихать одну и ту же категорию в массив товаров

добавляйте обработку категории после 19 строки

if(isset($info_category['name'])){

Share this post


Link to post
Share on other sites

в принципе тут уже есть

'filter_category_id' => $info_category['category_id'],

а как ее (filter_category_id) в tpl вывод  сделать?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By whiteblue
      300.00 руб
      Скачать/Купить дополнение


      Подарки Opencart
      Данный модуль предназначен для повышения продаж, предлагая бесплатные подарки при достижении определенных условий.
       
      Демо
      Админка
      gifts/gifts

      Эти условия устанавливаются в админке модуля. Покупатель должен совершить покупку товаров на определённую сумму или больше.
      Также есть возможность выбрать несколько товаров в разных товарных группах. Отличительной особенностью данного модуля
      является то, что клиент может сам выбрать себе подарок из нескольких назначенных вами. При помощи данного модуля вы будете стимулировать покупателей увеличивать сумму чека.
      Подарок будет отображаться во всех товарах категории, к которой он принадлежит.
      Примеры использования данного модуля:
      "купи фотоаппарат и получи в подарок карту памяти", "закажи пиццу и получи бутылку пепси в подарок" и т.д.
      Инструкция.docx
       
       
      Добавил whiteblue Добавлено 18.06.2018 Категория Модули Системные требования Сайт разработчика http://white-blue.com.ua/ Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.1 ocStore 2.3
      2.1 OpenCart.Pro, ocShop Обращение к серверу разработчика Нет  
    • By whiteblue
      Данный модуль предназначен для повышения продаж, предлагая бесплатные подарки при достижении определенных условий.
       
      Демо
      Админка
      gifts/gifts

      Эти условия устанавливаются в админке модуля. Покупатель должен совершить покупку товаров на определённую сумму или больше.
      Также есть возможность выбрать несколько товаров в разных товарных группах. Отличительной особенностью данного модуля
      является то, что клиент может сам выбрать себе подарок из нескольких назначенных вами. При помощи данного модуля вы будете стимулировать покупателей увеличивать сумму чека.
      Подарок будет отображаться во всех товарах категории, к которой он принадлежит.
      Примеры использования данного модуля:
      "купи фотоаппарат и получи в подарок карту памяти", "закажи пиццу и получи бутылку пепси в подарок" и т.д.
      Инструкция.docx
       
       
    • By matrix79
      600.00 руб
      Скачать/Купить дополнение


      Matrix Products 1.0.3 - наценка для товаров
       Matrix_products - модуль для создания различных наценок на товар непосредственно на сайте. В базе в таблице oc_product создает
      колонку cost (закупочная цена). Совместим с CSV Price Pro import/export. В настройках последнего требуется создать макрос для поля
      cost в таблице oc_product.
       
      Совместимость:
      OpenCart 2.0.x, 2.1.x, 2.2.x, 2.3.x
      Ocstore 2.1.x, 2.2.x, 2.3.x
      Opencart Pro 2.1.x, 2.3.x
       
      Обновление
      - добавлена совместимость с версией Opencart Pro 2.1.x, 2.3.x
       
      В архиве три файла. Для Opencart Pro файлы: matrix_products(os20-21).ocmod, matrix_products(os23).ocmod
      Демонстрация:
      Админка
      Логин: demo
      Пароль: demo
       
      Установка и настройка
      1. Загружаем через Установка дополнений localcopy.ocmod. Обновляем модификаторы. Если даный модуль имеется, пропускаем этот шаг.
      2. Через установка дополнений устанавливаем ocmod файл нашешо расширения.
      3. Обновляем все модификаторы.
      4. В списке модулей находим расширение Матрицы наценок и активируем.
      5. Создаем матрицы. Названия произвольные. Создавать можно как с процентной накруткой, так и с фиксированой.
      6. В разделе Категории вкладка Данные выставляем необходимые матрицы.
      5. В разделе Товары если все правильно установлено, должны появиться две кнопки. Одна обновляет только выбранные товары. Вторая - 
      всю базу.
      Примечание: Обновление цены происходит и при редактировании товара.
       
       
      localcopy.ocmod.xml
       
       
      Добавил matrix79 Добавлено 14.05.2018 Категория Модули Системные требования Сайт разработчика Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1 Обращение к серверу разработчика Нет  
    • By matrix79
      Matrix_products - модуль для создания различных наценок на товар непосредственно на сайте. В базе в таблице oc_product создает
      колонку cost (закупочная цена). Совместим с CSV Price Pro import/export. В настройках последнего требуется создать макрос для поля
      cost в таблице oc_product.
       
      Совместимость:
      OpenCart 2.0.x, 2.1.x, 2.2.x, 2.3.x
      Ocstore 2.1.x, 2.2.x, 2.3.x
      Opencart Pro 2.1.x, 2.3.x
       
      Обновление
      - добавлена совместимость с версией Opencart Pro 2.1.x, 2.3.x
       
      В архиве три файла. Для Opencart Pro файлы: matrix_products(os20-21).ocmod, matrix_products(os23).ocmod
      Демонстрация:
      Админка
      Логин: demo
      Пароль: demo
       
      Установка и настройка
      1. Загружаем через Установка дополнений localcopy.ocmod. Обновляем модификаторы. Если даный модуль имеется, пропускаем этот шаг.
      2. Через установка дополнений устанавливаем ocmod файл нашешо расширения.
      3. Обновляем все модификаторы.
      4. В списке модулей находим расширение Матрицы наценок и активируем.
      5. Создаем матрицы. Названия произвольные. Создавать можно как с процентной накруткой, так и с фиксированой.
      6. В разделе Категории вкладка Данные выставляем необходимые матрицы.
      5. В разделе Товары если все правильно установлено, должны появиться две кнопки. Одна обновляет только выбранные товары. Вторая - 
      всю базу.
      Примечание: Обновление цены происходит и при редактировании товара.
       
       
      localcopy.ocmod.xml
       
       
    • By svarcka
      Есть действующий интернет магазин на Opencart 2.3.0.2. Ищем программиста на удаленную работу. На текущий момент есть несколько направлений, в рамках которых будут формулироваться задачи по модернизации сайта:
      1.       Верстка страниц (переверстка элементов) по сформированному макету
      2.       Установка и настройка модулей
      3.       Написание модулей согласно ТЗ и макету
      4.       Проведение технических настроек сайта
      При ответе просьба указать:
      1.       Какие языки и библиотеки в основном используете
      2.       Опыт работы в Opencart
      3.       Формат работы и оплаты
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.