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

[Решено?..] Вывод отдельных категорий в поиске


Recommended Posts

Версия ocstore 1.5.3.1
 
Стоит задача вывода отдельных категорий в поиске. На сайте есть некоторое подобие подбора товаров, категорий товаров несколько и хотелось бы вывести для каждого формализованного поиска свою категорию товаров.

 

В контроллере на 168 строке файла /catalog/contoller/product/search.php находится перебор массива категорий по предкам-потомкам.

$categories_1 = $this->model_catalog_category->getCategories(0);
        
        
        foreach ($categories_1 as $category_1) {
            $level_2_data = array();
            
            $categories_2 = $this->model_catalog_category->getCategories($category_1['category_id']);
            
            foreach ($categories_2 as $category_2) {
                $level_3_data = array();
                
                $categories_3 = $this->model_catalog_category->getCategories($category_2['category_id']);
                
                foreach ($categories_3 as $category_3) {
                    $level_3_data[] = array(
                        'category_id' => $category_3['category_id'],
                        'name' => $category_3['name'],
                    );
                }
                
                $level_2_data[] = array(
                    'category_id' => $category_2['category_id'],    
                    'name' => $category_2['name'],
                    'children' => $level_3_data
                );                    
            }
            
            $this->data['categories'][] = array(
                'category_id' => $category_1['category_id'],
                'name' => $category_1['name'],
                'children' => $level_2_data
            );
        }

Обращаем внимание на $categories_1

 

В стандартном шаблоне поиска есть вывод этих категорий в форме.

 
<?php foreach ($categories as $category_1) { ?>
          <?php if ($category_1['category_id'] == $filter_category_id) { ?>
            <option value="<?php echo $category_1['category_id']; ?>" selected="selected"><?php echo $category_1['name']; ?></option>
            <?php } else { ?>
            <option value="<?php echo $category_1['category_id']; ?>"><?php echo $category_1['name']; ?></option>
            <?php } ?>
              <?php foreach ($category_1['children'] as $category_2) { ?>
              <?php if ($category_2['category_id'] == $filter_category_id) { ?>
              <option value="<?php echo $category_2['category_id']; ?>" selected="selected">      <?php echo $category_2['name']; ?></option>
              <?php } else { ?>
              <option value="<?php echo $category_2['category_id']; ?>">      <?php echo $category_2['name']; ?></option>
              <?php } ?>
                <?php foreach ($category_2['children'] as $category_3) { ?>
                <?php if ($category_3['category_id'] == $filter_category_id) { ?>
                <option value="<?php echo $category_3['category_id']; ?>" selected="selected">            <?php echo $category_3['name']; ?></option>
                <?php } else { ?>
                <option value="<?php echo $category_3['category_id']; ?>">            <?php echo $category_3['name']; ?></option>
                <?php } ?>
            <?php } ?>
          <?php } ?>
        <?php } ?>

Вопрос 1: почему в контроллере $categories_1, а в шаблоне $categories?

 

Вопрос 2: как связать в контроллере  $categories_1_1 с шаблоном?

 

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


1. rtfm. $this->data['categories'][] = array(...

2. ???

 

благодарю.

 

на 2 вопрос ответ такой:

 

$this->data['categories_1_1'][] = array(
'category_id' => $category_1_1['category_id'],
'name'        => $category_1_1['name'],
'children'    => $level_2_data
);
Надіслати
Поділитися на інших сайтах


твоё @'children' => $level_2_data@ идентично уже существующему в @$this->data['categories'][]@

зачем тебе оно еще раз?

или ты там что-то перекручиваешь?

если не перекручиваешь и идентично - нет смысла в конструкции

$this->data['categories_1_1'][] = array(
'category_id' => $category_1_1['category_id'],
'name'        => $category_1_1['name'],
Надіслати
Поділитися на інших сайтах

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

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

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

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

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

Вхід

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

Вхід зараз

×
×
  • Створити...

Important Information

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