[Решено] Категории меню, присвоения id

Тема в разделе "PHP", создана пользователем Vadya25, 14 апр 2016.

Статус темы:
Закрыта.
  1. Vadya25

    Vadya25

    Регистрация:
    9 дек 2015
    Сообщения:
    0
    Симпатии:
    0
    Доброй ночи. Подскажите добрые люди, может кто знает.
    Opencart 2.0.1.1
    Есть модуль меню
    Нужно чтобы каждая категория была индивидуальная,тойсть задавать стиль каждой категории отдельно.
    Создал клас для каждой категории и прописывал айдишник,но всеравно результат ноль. Выдает Undefined index: category id после присвоения айди категории.
    Может кто сталкивался или знает посоветуйте как можно сделать.
    Заранее спасибо.

    Файл контроллера -
    PHP:
    <?php
    class ControllerModuleTmCategoryMenu extends Controller {
        public function 
    index() {
            
    $this->load->language('module/tm_category_menu');
          
          
            
    $this->document->addStyle('catalog/view/javascript/tmcategory/tm_category_menu.css');
            
    $data['heading_title'] = $this->language->get('heading_title');

            if (isset(
    $this->request->get['path'])) {
                
    $parts explode('_', (string)$this->request->get['path']);
            } else {
                
    $parts = array();
            }

            if (isset(
    $parts[0])) {
                
    $data['category_id'] = $parts[0];
            } else {
                
    $data['category_id'] = 0;
            }

            if (isset(
    $parts[1])) {
                
    $data['child_id'] = $parts[1];
            } else {
                
    $data['child_id'] = 0;
            }

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

            
    $this->load->model('catalog/product');
            
    $this->load->model('tool/image');

            
    $data['categories'] = array();

            
    $categories $this->model_catalog_category->getCategories(0);

            foreach (
    $categories as $category) {

              
                    
    // Level 2
                    
    $children_data = array();
                    
    //$subchildren_data = array();

                    
    $children $this->model_catalog_category->getCategories($category['category_id']);

                    foreach (
    $children as $child) {
                        
    $filter_data = array(
                            
    'filter_category_id'  => $child['category_id'],
                            
    'filter_sub_category' => true
                        
    );
                      
                        
    // Level 3
                        
    $subchildren_data = array();
                        
    $subchildren $this->model_catalog_category->getCategories($child['category_id']);

                        foreach (
    $subchildren as $subchild) {
                            
    $filter_subdata = array(
                                
    'filter_category_id'  => $subchild['category_id'],
                                
    'filter_sub_category' => true
                            
    );
                            
    $subchildren_data[] = array(
                                
    'category_id' => $subchild['category_id'],
                                
    'name'  => $subchild['name'] . ($this->config->get('config_product_count') ? ' (' $this->model_catalog_product->getTotalProducts($filter_subdata) . ')' ''),
                                
    'href'  => $this->url->link('product/category''path=' $category['category_id'] . '_' $child['category_id'] . '_' $subchild['category_id']),
                              
                            );
                        }
                        if (
    $child['image']) {
                            
    $image $this->model_tool_image->resize($child['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
                        } else {
                            
    $image $this->model_tool_image->resize('placeholder.png'$this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
                        }
                        
    $children_data[] = array(
                            
    'name'  => $child['name'] . ($this->config->get('config_product_count') ? ' (' $this->model_catalog_product->getTotalProducts($filter_data) . ')' ''),
                            
    'href'  => $this->url->link('product/category''path=' $category['category_id'] . '_' $child['category_id']),
                            
    'thumb'       => $image,
                            
    'subchildren' => $subchildren_data
                        
    );
                      
                    }
                  
                    
    // Level 1
                    
    $data['categories'][] = array
                        
    'name'     => $category['name'],
                        
    'children' => $children_data,
                        
    'column'   => $category['column'] ? $category['column'] : 1,
                      
                        
    'href'     => $this->url->link('product/category''path=' $category['category_id'])
                    );
              
            }

            if (
    file_exists(DIR_TEMPLATE $this->config->get('config_template') . '/template/module/tm_category_menu.tpl')) {
                return 
    $this->load->view($this->config->get('config_template') . '/template/module/tm_category_menu.tpl'$data);
            } else {
                return 
    $this->load->view('default/template/module/tm_category_menu.tpl'$data);
            }
        }
    }

    Файл tpl -
    HTML:
    <div class="box category col-sm-3">
        <div class="box-heading"><h3><?php echo $heading_title; ?></h3></div>
        <div class="box-content">
            <div class="box-category">
            <ul class="list-unstyled category_menu">
            <?php foreach ($categories as $category) { ?>
            <?php if ($category['children']) { ?>
            <li>
                <a class="children" href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
                 <?php foreach (array_chunk($category['children'], ceil(count($category['children']) )) as $children) { ?>
                 <ul>
                    <?php foreach ($children as $child) {?>
                            <li>
                                <b><a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a></b>
                                    <?php if ($child['subchildren']) { ?>
                                        <ul>
                                            <?php foreach ($child['subchildren'] as $subchild) { ?>
                                                <li><a href="<?php echo $subchild['href']; ?>"> - <?php echo $subchild['name']; ?></a></li>
                                            <?php } ?>
                                        </ul>
                                    <?php } ?>
                                    <img src="<?php echo $child['thumb']; ?>" alt="<?php echo $child['thumb']; ?>" />
                            </li>
                    <?php } ?>
                 </ul>
                 <?php } ?>
            </li>
            <?php } else { ?>
            <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li>
            <?php } ?>
          
            <?php } ?>
            </ul>
        </div>
    </div>
    </div>
     
    Lasted edited by : 14 апр 2016
  2. alex_storm

    alex_storm webdev

    Регистрация:
    11 дек 2012
    Сообщения:
    1.151
    Симпатии:
    667
    Вот сюда
    PHP:
    $data['categories'][] = array
    'name' => $category['name'],
    'children' => $children_data,
    'column' => $category['column'] ? $category['column'] : 1,

    'href' => $this->url->link('product/category''path=' $category['category_id'])
    );
    надо передать category_id

    Т.е. сделать так
    PHP:
    $data['categories'][] = array
    'category_id'=>$category['category_id'],
    'name' => $category['name'],
    'children' => $children_data,
    'column' => $category['column'] ? $category['column'] : 1,

    'href' => $this->url->link('product/category''path=' $category['category_id'])
    );
    ну и на выводе будет просто echo $categories['category_id']
     
    Lasted edited by : 14 апр 2016
  3. Vadya25

    Vadya25

    Регистрация:
    9 дек 2015
    Сообщения:
    0
    Симпатии:
    0
    Да точно, помогло все отлично. Спасибо Вам большое, очень выручили.
     
Статус темы:
Закрыта.