Как в главном меню вывести изображения категорий?

Тема в разделе "Инструкции и FAQ", создана пользователем solunski.d, 11 фев 2016.

  1. Vlad909

    Vlad909 Новичок

    Сообщения:
    16
    Симпатии:
    0
    я бы взял оригинальный файл контроллера и пробежался пошагово. У вас нет части кода, есть только строка-комментарий //Подключить вывод изображения
     
  2. orientir10000

    orientir10000 Новичок

    Сообщения:
    16
    Симпатии:
    0
    В файле контроллера как раз таки , как в статье полный код :

    PHP:
    $children_data[] = array(
        
    'name'  => $child['name'] . ($this->config->get('config_product_count') ? ' (' $this->model_catalog_product->getTotalProducts($filter_data) . ')' ''),
        
    //Подключить вывод изображения
        
    'thumb'     => $this->model_tool_image->resize($child['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height')),
        
    //
        
    'href'  => $this->url->link('product/category''path=' $category['category_id'] . '_' $child['category_id'])
    );
     
  3. Vlad909

    Vlad909 Новичок

    Сообщения:
    16
    Симпатии:
    0
    Да, но на вашем скриншоте то не так.
     
  4. orientir10000

    orientir10000 Новичок

    Сообщения:
    16
    Симпатии:
    0
    Первый скриншот ( там где, код не полный) файла модификации system/storage/modification/catalog/controller/common/header.php . а второй с нормальным кодом - это файл контроллера. Не могу понять , почему он не полностью переносит код в модификатор.
     
  5. Vlad909

    Vlad909 Новичок

    Сообщения:
    16
    Симпатии:
    0
    // попробуйте весь массив вставить заново :)

    $children_data[] = array(
    'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
    // картинка дочерней категории
    'thumb' => $this->model_tool_image->resize($child['image'], 50, 50, $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height')),
    'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
    );
     
  6. orientir10000

    orientir10000 Новичок

    Сообщения:
    16
    Симпатии:
    0
    Все то же. Причем убирал комменты, пробелы лишние в конце искал - не помогает. Из-за недостатка знаний грешу может что на версию php или какие-то тонкости работы с модификаторами ( не очень хорошо пока эту часть знаю)
     
  7. Vlad909

    Vlad909 Новичок

    Сообщения:
    16
    Симпатии:
    0
    а почему в модификаторах?
    Мож я чего не понимаю, но эта доработка кода к модификаторам не имеет отношения, это же не модуль.
    у топикстартера -
    Путь: catalog/controller/common/header.php
     
  8. orientir10000

    orientir10000 Новичок

    Сообщения:
    16
    Симпатии:
    0
    правлю готовую тему - скорее всего был сделан модификатор в теме, но я пока не силен в том, что касается модификаторов. Я так понимаю, что модификатор для, того что бы программно вносить в него изменения и не затрагивать файлы оригиналы при необходимости. Кстати о картинках в подкатегориях - если в модификатор вношу изменения, то все ок отрабатывает, но понятное дело при обновлении модификаторов мои изменения стираются.
     
  9. DiMoss

    DiMoss Продвинутый пользователь

    Сообщения:
    862
    Симпатии:
    236
    Модификатор не вставляет массив полностью?
     
  10. orientir10000

    orientir10000 Новичок

    Сообщения:
    16
    Симпатии:
    0
    Смотрите . В файле оригинале он закрыт . При обновлении модификатора в МОДИФИКАТОР массив почем-то переносится не весь, ну и собственно возникает ошибка , что не закрыт массив по синтаксису.
     
  11. DiMoss

    DiMoss Продвинутый пользователь

    Сообщения:
    862
    Симпатии:
    236
    А можете показать сам модификатор? Ту часть кода которая делает изменения в массиве.
     
  12. orientir10000

    orientir10000 Новичок

    Сообщения:
    16
    Симпатии:
    0
    Это часть из контроллера
    PHP:
        $data['categories'] = array();

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

            foreach (
    $categories as $category) {
                if (
    $category['top']) {
                    
    // Level 2
                    
    $children_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
                        
    );

                        
    $children_data[] = array(
                            
    'name'  => $child['name'] . ($this->config->get('config_product_count') ? ' (' $this->model_catalog_product->getTotalProducts($filter_data) . ')' ''),
                            
    'thumb'     => $this->model_tool_image->resize($child['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height')),
                            
    'href'  => $this->url->link('product/category''path=' $category['category_id'] . '_' $child['category_id']),
                        );
                    }

                    
    // 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']),
                        
    'thumb'    => $this->model_tool_image->resize($category['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'))
                    );
                }
            }
    А это код из модификатора:
    PHP:
        $data['categories'] = array();

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

            foreach (
    $categories as $category) {
                if (
    $category['top']) {
                    
    // Level 2
                    
    $children_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
                        
    );

                        
    $children_data[] = array(
                            
                        
    $children2 $this->model_catalog_category->getCategories($child['category_id']);
                        
    $children_data2 = array();
                
                        foreach (
    $children2 as $child2) {
                            if(isset(
    $uniset['menu_links_show']) ? $child2['top'] : 1) {
                                
    $children_data2[] = array(
                                    
    'name'          => $child2['name'],
                                    
    'category_id'    => $child2['category_id'],
                                    
    'href'          => $this->url->link('product/category''path='.$category['category_id'].'_'.$child['category_id'].'_'.$child2['category_id']),
                                );
                            }
                        }
                
                        if(isset(
    $uniset['menu_links_show']) ? $child['top'] : 1) {
                            
    $children_data[] = array(
                            
    'name'           => $child['name'],
                            
    'category_id'    => $child['category_id'],
                            
    'children'       => $children_data2,
                            
    'href'            => $this->url->link('product/category''path=' $category['category_id'].'_'.$child['category_id']),
                            );
                        }
                    }
                    
                    
    // Level 1
                
                    
    $data['categories'][] = array(
                        
    'name'     => $category['name'],
    'category_id' => $category['category_id'],
                        
    'children' => $children_data,
                        
    'column'   => $category['column'] ? $category['column'] : 1,
                        
    'href'     => $this->url->link('product/category''path=' $category['category_id']),
                        
    'thumb'    => $this->model_tool_image->resize($category['image'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'))
                    );
                }
            }
     
  13. DiMoss

    DiMoss Продвинутый пользователь

    Сообщения:
    862
    Симпатии:
    236
    Я немножко другое имею ввиду. Нужен код самого модификатора, а не модифицированной копии контроллера. То бишь для начала надо разобраться какой мод вносит такие изменения в код.
     
  14. orientir10000

    orientir10000 Новичок

    Сообщения:
    16
    Симпатии:
    0
    а можете подсказать что вы имеете ввиду? . Как узнать какой элемент вносит в файл изменения? - я так понял вы это имеете в виду?
     
  15. DiMoss

    DiMoss Продвинутый пользователь

    Сообщения:
    862
    Симпатии:
    236
    Скорей всего это модуль который дополняет код оригинала вот этим....
    PHP:
    $children2 $this->model_catalog_category->getCategories($child['category_id']);
    $children_data2 = array();
     
  16. orientir10000

    orientir10000 Новичок

    Сообщения:
    16
    Симпатии:
    0
    я так понимаю эти изменения делает сама тема , потому как, когда ошибка появилась доп модулей кроме темы не стояло. Можете подтолкнуть в каком направлении начать смотреть?
     
  17. DiMoss

    DiMoss Продвинутый пользователь

    Сообщения:
    862
    Симпатии:
    236
    Это надо смотреть в списке модификаторов. Можно наверное в логах отследить или методом тыка отключать и проверять.
    Если имеется модифицированая копия файла, значит включен модификатор. Много их там у Вас?
     
  18. orientir10000

    orientir10000 Новичок

    Сообщения:
    16
    Симпатии:
    0
    модификатор стоял один , когда начал доработку данную QuickFix. Сейчас сделал поиск по проекту phph storm этих строк "$children2 = $this->model_catalog_category->getCategories($child['category_id']); ". Нашел совпадение в файле unishop_template.ocmod.xml в папке system. Там такая часть кода
    PHP:
    <add position="replace" offset="-6" error="skip"><![CDATA[       
                        
    $children2 $this->model_catalog_category->getCategories($child['category_id']);
                        
    $children_data2 = array();
                
                        foreach (
    $children2 as $child2) {
                            if(isset(
    $uniset['menu_links_show']) ? $child2['top'] : 1) {
                                
    $children_data2[] = array(
                                    
    'name'          => $child2['name'],
                                    
    'category_id'    => $child2['category_id'],
                                    
    'href'          => $this->url->link('product/category''path='.$category['category_id'].'_'.$child['category_id'].'_'.$child2['category_id']),
                                );
                            }
                        }
                
                        if(isset(
    $uniset['menu_links_show']) ? $child['top'] : 1) {
                            
    $children_data[] = array(
                            
    'name'           => $child['name'],
                            
    'category_id'    => $child['category_id'],
                            
    'children'       => $children_data2,
                            
    'href'            => $this->url->link('product/category''path=' $category['category_id'].'_'.$child['category_id']),
                            );
                        }
                    }
                    
                    
    // Level 1
                
    ]]></add>
     
  19. orientir10000

    orientir10000 Новичок

    Сообщения:
    16
    Симпатии:
    0
    unishop_template.ocmod.xml Этот файл используется каждый раз при обновлении модификаторов или один раз при установке в данном случает темы?
     
  20. DiMoss

    DiMoss Продвинутый пользователь

    Сообщения:
    862
    Симпатии:
    236
    А покажите код, который чуть выше, где теги <search>. Надо понять какую строку он ищет.
     
    Последнее редактирование: 30 мар 2017