Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Подскажите по редактированию одного файла


hon2012

Recommended Posts

Есть бесплатный модуль вывода главных категорий на главную страницу (Category Wall) - у него прописано условие что выводятся в модуле только родительские категории у которых стоит галочка в админке "Главное меню".

 

Мне не хватает знаний PHP чтоб изменить условие вывода, чтоб выводились в модуле все категории у которых стоит галочка "Главное меню" и не важно категория родительская или нет. Т.е. главное галочка чтоб стояла у категории и не важно какого она уровня вложенности.

 

Подскажите пожалуйста, код файла контроллера модуля (для фронта) ниже

 

<?php
class ControllerModuleCategoryWall extends Controller {

    public function index() {
        $this->load->language('module/category_wall');

        $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');

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

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

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

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

        foreach ($categories as $category) {
            if ($category['top']) {
            $img_w = $this->config->get('config_image_category_width');
            $img_h = $this->config->get('config_image_category_height');

            if ($category['image']) {
                $image = $this->model_tool_image->resize($category['image'], $img_w, $img_h);
            } else {
                $image = $this->model_tool_image->resize('placeholder.png', $img_w, $img_h);
            }

            $data['categories'][] = array(
                'description' => $category['description'],
                'name' => $category['name'],
                'image' => $image,
                'href' => $this->url->link('product/category', 'path=' . $category['category_id'])
                );
            }
        }

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

 

Надіслати
Поділитися на інших сайтах


1) Замість рядка:

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

цей код:

 

 

$categories = array();

$collectCategories = function ($parent_id, $parent_path = '') use (&$collectCategories, &$categories) {
    $items = $this->model_catalog_category->getCategories($parent_id);

    foreach ($items as $item) {
        $path = $parent_path === ''
            ? (string) $item['category_id']
            : $parent_path . '_' . $item['category_id'];

        if ($item['top']) {
            $item['full_path'] = $path;
            $categories[] = $item;
        }
        $collectCategories($item['category_id'], $path);
    }
};

$collectCategories(0);

 


2) Замість:

'href' => $this->url->link('product/category', 'path=' . $category['category_id'])

цей код:

'href' => $this->url->link('product/category', 'path=' . $category['full_path'])

 

  • +1 1
Надіслати
Поділитися на інших сайтах


09.11.2026 в 16:48, WebSochka сказал:

1) Замість рядка:

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

цей код:

 

 

$categories = array();

$collectCategories = function ($parent_id, $parent_path = '') use (&$collectCategories, &$categories) {
    $items = $this->model_catalog_category->getCategories($parent_id);

    foreach ($items as $item) {
        $path = $parent_path === ''
            ? (string) $item['category_id']
            : $parent_path . '_' . $item['category_id'];

        if ($item['top']) {
            $item['full_path'] = $path;
            $categories[] = $item;
        }
        $collectCategories($item['category_id'], $path);
    }
};

$collectCategories(0);

 


2) Замість:

'href' => $this->url->link('product/category', 'path=' . $category['category_id'])

цей код:

'href' => $this->url->link('product/category', 'path=' . $category['full_path'])

 

 

Рабочее решение, спасибо, плюсую!

 

 

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
Гість
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.