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

[Решено] 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
Надіслати
Поділитися на інших сайтах

  В 21.03.2017 в 08:09, 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,
				);

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

Expand  
 

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

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


  В 21.03.2017 в 08:40, Jozo сказав:

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

Expand  

 

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

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

  В 22.03.2017 в 04:17, druzhkov сказав:

 

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

Expand  
 
 

Почти разобрался. Я так понял нужно делать два 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 і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.