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

Как добавить после второго элемента в хлебных крошках?


comers

Recommended Posts

Решил попробовать добавить в хлебные крошки после 2-го элемента что-то своё, например смайлик, но не пойму как. 

Можно было б сделать по детски так if($breadcrumb['text'] == 'Категория 2') {echo ' - ';}, но это не правильно и хотелось бы освоить верный способ.

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

 

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


  В 28.11.2019 в 09:25, comers сказав:

Можно было б сделать по детски так if($breadcrumb['text'] == 'Категория 2') {echo ' - ';},

Expand  

Дак так и надо. Сайт то у Вас же с детской тематикой

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


  В 28.11.2019 в 09:28, i3bepb сказав:

Дак так и надо. Сайт то у Вас же с детской тематикой

Expand  

Да, но категорий много и планируется добавлять еще n-количество

 

Еще такое решение нашел на jquery - $(".item_cat_2 span").prepend(" - "), но прежде добавил класс с нумерацией крошек - item_cat_<?php echo $count;?> 

 

Правильно ли я делаю или есть рекомендации?

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


  В 28.11.2019 в 09:51, comers сказав:

Да, но категорий много и планируется добавлять еще n-количество

Expand  

 

Т.е. для каждой категории будет свое что-то вставляться?

 

Если так то сколько категории, столько и будет условии

  В 28.11.2019 в 09:25, comers сказав:

if($breadcrumb['text'] == 'Категория 2') {echo ' - ';}

Expand  

или также в js, тоже будет столько же условии

  В 28.11.2019 в 09:51, comers сказав:

$(".item_cat_2 span").prepend(" - ")

Expand  

 

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


  В 28.11.2019 в 10:14, i3bepb сказав:

Т.е. для каждой категории будет свое что-то вставляться?

Expand  

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

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


  В 28.11.2019 в 09:25, comers сказав:

Решил попробовать добавить в хлебные крошки после 2-го элемента что-то своё, например смайлик, но не пойму как. 

Можно было б сделать по детски так if($breadcrumb['text'] == 'Категория 2') {echo ' - ';}, но это не правильно и хотелось бы освоить верный способ.

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

 

Expand  

определяйте селектор 2-го элемента и в настройках - выбирайте как выводить "До"

все очень просто..., даже в код не нужно лазить

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

  В 28.11.2019 в 10:50, comers сказав:

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

Expand  

Тогда надо просто в контроллере, который отвечает за вывод страницы товара и страницы категории поправить и все, для всех будет выводится, не надо будет добавлять условия

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


На примере страницы товара, ищем в файле catalog/controller/product/product.php место где заполняется массив хлебных крошек, категориями:

			foreach ($parts as $path_id) {
				if (!$path) {
					$path = $path_id;
				} else {
					$path .= '_' . $path_id;
				}

				$category_info = $this->model_catalog_category->getCategory($path_id);

				if ($category_info) {
					$data['breadcrumbs'][] = array(
						'text' => $category_info['name'],
						'href' => $this->url->link('product/category', 'path=' . $path)
					);
				}
			}

Добавляем счетчик, нам нужна первая категория, т.е. первый элемент в цикле выше, получаем вот такой измененный вариант:

			$i = 0;
			foreach ($parts as $path_id) {
				if (!$path) {
					$path = $path_id;
				} else {
					$path .= '_' . $path_id;
				}

				$category_info = $this->model_catalog_category->getCategory($path_id);

				if ($category_info) {
					$data['breadcrumbs'][] = [
						'text' => $category_info['name'],
						'href' => $this->url->link('product/category', 'path=' . $path),
						'metka' => $i == 0 ? 1 : 0,
					];
                    ++$i;
				}
			}

Теперь у нас в массиве с хлебными крошками всегда у первой категории есть элемент 'metka'. А в шаблоне, файл catalog/view/theme/default/template/product/product.tpl, делаем в зависимости от наличия этого элемента какой-либо вывод свой:

if (!empty($breadcrumb['metka'])) {echo ' - ';}

В итоге алгоритм такой проставить признак всем категориям определенного уровня путем правки в контроллере места сбора хлебных крошек и затем в шаблоне опираясь на этот признак делать какой-нибудь свой вывод. Но вообще по уму это надо делать с помощью модификатора.

Змінено користувачем i3bepb
  • +1 1
Надіслати
Поділитися на інших сайтах


  В 28.11.2019 в 11:54, i3bepb сказав:

'metka' => $i == 0 ? 1 : 0,

Expand  

полагаю таким условием $i == 2 ? 1 : 0 можно поставить метку категории третьего уровня?

 

  В 28.11.2019 в 11:54, i3bepb сказав:

Но вообще по уму это надо делать с помощью модификатора

Expand  

Да, возможно, но я не планирую обновлять шаблон и решили модификатором делать более крупные правки. К тому же, чем больше модификаторов, тем чаще надо чистить кеш. Возможно не прав и когда-то это аукнется, но ведь это полезный опыт ))

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


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

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

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

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

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

Вхід

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

Вхід зараз
×
×
  • Створити...

Important Information

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