Перейти к содержанию

Рекомендуемые сообщения

Здравствуйте, нужно вывести текущие категории и объеденить их в зависимости от значений которые они имеют.

Было создано доп. поле в качестве значения и добавлено в массив $categories

				$this->data['categories'][] = array(
					'name'  => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),
					'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url),
					'thumb' => $image,
					'bcat'	=> $result['bcat']  // это оно
				);

Сейчас категории выводятся перебором foreach ($categories as $category)

						<?php if ($categories) { ?>
						<div class="panel panel-default refine-search clearfix box white">
							<div class="panel-heading box-heading">
								<center><span><?php echo $text_refine; ?></span></center>
							</div>
							<div class="panel-body category-list clearfix box-content">
							<div class="content">
							<div class="grid">
								<?php if (count($categories) <= 5) { ?>								
								<?php foreach ($categories as $category) { ?>
									<figure class="effect-steve">
										<img style="border-radius: 7px;" src="<?php echo $category['thumb']; ?>" title="<?php echo $category['name']; ?>" />
										<figcaption>											
											<a href="<?php echo $category['href']; ?>"></a>
										</figcaption>			
									</figure>
								<?php } ?>
							</div>
						</div>
						<?php } ?>

Вот что нужно сделать  (добавил в комментариях)

						<?php if ($categories) { ?>
    					<!-- Для каждой $category['bcat'] создается отдельная сетка и header-->
						<div class="panel panel-default refine-search clearfix box white">
							<div class="panel-heading box-heading">
                              <!-- Добавляем значение $category['bcat']  как заголовок -->
								<center><span><?php echo $category['bcat']; ?></span></center>
							</div>
							<div class="panel-body category-list clearfix box-content">
							<div class="content">
							<div class="grid">
								<!-- <?php if (count($categories) <= 5) { ?>								
								<?php foreach ($categories as $category) { ?> -->
                              <!-- Тут нужно вывести только те категории у которых значение текущей $category['bcat'] -->
									<figure class="effect-steve">
										<img style="border-radius: 7px;" src="<?php echo $category['thumb']; ?>" title="<?php echo $category['name']; ?>" />
										<figcaption>											
											<a href="<?php echo $category['href']; ?>"></a>
										</figcaption>			
									</figure>
								<?php } ?>
							</div>
						</div>
						<?php } ?>

Прошу помощи с реализацией

Изменено пользователем Jozo

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если я правильно понял, то можно вот так:

$this->data['categories'][$result['bcat']][] = array(
					'name'  => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),
					'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url),
					'thumb' => $image,
				);

Ну и вспомогательный массив сделать, где будут лежать заголовки категорий.

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
30 минут назад, druzhkov сказал:

Если я правильно понял, то можно вот так:


$this->data['categories'][$result['bcat']][] = array(
					'name'  => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),
					'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url),
					'thumb' => $image,
				);

Ну и вспомогательный массив сделать, где будут лежать заголовки категорий.

 

http://prntscr.com/emklw3 сверху - то что сейчас, снизу то что я имел в виду

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
19 часов назад, Jozo сказал:

http://prntscr.com/emklw3 сверху - то что сейчас, снизу то что я имел в виду

 

Ну вроде сходится. Вы сделайте print_r($this->data['categories']) и увидите, что они у вас распределились по блокам.

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
9 часов назад, druzhkov сказал:

 

Ну вроде сходится. Вы сделайте print_r($this->data['categories']) и увидите, что они у вас распределились по блокам.

 
 

Почти разобрался. Я так понял нужно делать два foreach? 


Array
(
    [3] => Array
        (
            [0] => Array
                (
                    [name] => dsdasd
                    [href] => dsdasd
                    [thumb] => dsdasd
                )

        )

    [2] => Array
        (
            [0] => Array
                (
                    [name] => aaaa
                    [href] => aaaa
                    [thumb] => aaaa
                )

            [1] => Array
                (
                    [name] => asss
                    [href] => asss
                    [thumb] => asss
                )

        )
)
							

Первый выводит именно количество вложенных массивов формируя дивы, а второй будет выводить именно сами категории? 

						<?php foreach ($categoriestest as $categorytest) {?>
						<div class="panel panel-default refine-search clearfix box white" style="display:none;">
							<div class="panel-heading box-heading">
								<center><span><?php echo $text_refine; ?></span></center>
							</div>
							<div class="panel-body category-list clearfix box-content">
								<div class="content">
									<div class="grid">
											<figure class="effect-steve">
                                              <--!  Вот тут нужен еще один foreach для вывода всех категорий в данной группе? -->
												<img style="border-radius: 7px;" src="<?php echo $categorytest[0]['thumb']; ?>" title="<?php echo $categorytest[0]['name']; ?>" />
												<figcaption>											
													<a href="<?php echo $categorytest[0]['href']; ?>"></a>
												</figcaption>			
											</figure>
									</div>
								</div>	
							</div>
						</div>
                          <?php } ?>

 

Изменено пользователем Jozo

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблему решил, спасибо за помощь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.