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

[Решено] foreach или вывод категорий


Recommended Posts

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

Было создано доп. поле в качестве значения и добавлено в массив $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 користувачів

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

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

Important Information

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