Вывод модуля html в выбраных категориях opencart

Html модуль для opencart очень хорош и позволяет добавлять контент где вам нужно. Но что если нужно добавить контент только в отдельную категорию?

28 opencart Aвтор:
Рейтинг: 0/5 - 0 голосов

Вывод модуля html в выбраных категориях opencart

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

Все работает просто и понятно .

Admin->view

<div class="col-sm-10">
              <div class="well well-sm" style="height: 150px; overflow: auto;">
                
                <?php
              

                 foreach ($categories as $category) { ?>
                <div class="checkbox">
                  <label>
                    <?php if (in_array($category['category_id'], $module_html_categories)) { ?>
            <input type="checkbox" name="module_html_categories[]" value="<?php echo $category['category_id']; ?>" checked="checked" />
            <?php echo $category['name']; ?>
            <?php } else { ?>
            <input type="checkbox" name="module_html_categories[]" value="<?php echo $category['category_id']; ?>" />
            <?php echo $category['name']; ?>
            <?php } ?>
                  </label>
                </div>
                <?php } ?>
              </div>
              
          </div>

Admin->controller

$this->load->model('catalog/category');

		$data['categories'] = $this->model_catalog_category->getCategories(0);

		

		if (isset($this->request->post['module_html_categories'])) {
			$data['module_html_categories'] = $this->request->post['module_html_categories'];
		} elseif (!empty($module_info)) {
			if (isset($module_info['module_html_categories']) && is_array($module_info['module_html_categories'])) {				
			$data['module_html_categories'] = $module_info['module_html_categories'];
			}else{
				$data['module_html_categories'] = array();
			}
		} else {
			$data['module_html_categories'] = '';
		}

Далее код для контроллера вывода модуля, модернизируем код с учетом категорий

catalog / controller / controller / extension / module / html.php 

<?php
class ControllerExtensionModuleHTML extends Controller {
	public function index($setting) {
		$this->load->model('catalog/category');

		
		if (isset($setting['module_description'][$this->config->get('config_language_id')])) {
			$data['heading_title'] = html_entity_decode($setting['module_description'][$this->config->get('config_language_id')]['title'], ENT_QUOTES, 'UTF-8');
			$data['html'] = html_entity_decode($setting['module_description'][$this->config->get('config_language_id')]['description'], ENT_QUOTES, 'UTF-8');
			
			if (isset($setting['module_html_categories']) && is_array($setting['module_html_categories'])) {
			 	
		$path = '';
		
		$parts = explode('_', (string)$this->request->get['path']);
			
		$category_id =  (int)array_pop($parts);
		

		$data['data'] = $setting;
		$data['cat'] = $category_id;
			 	if (in_array($category_id, $setting['module_html_categories'])) { //если в массиве есть id текущей категории выводим 
			 	return $this->load->view('extension/module/html', $data);
				 }
			}
			else{
				return $this->load->view('extension/module/html', $data);
			}

			
		}
	}
}

Вот и все. Вот так это выглядит . Если не выбрать — будет показываться во всех категориях 

html в категории

 

3 случайных Поста

Card image cap
Мини галерея товара в категории Opencart 2.x
Card image cap
Дополнительная картинка в карточке товара OpenCart 2.x
Card image cap
Загружам сss Асинхронно

коммент.

Контакти

Contact

info@pechenki.top

Начать чат со мной

© SiteBlog designer