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

[Решено] Доработка хлебных крошек (breadcrumb)


Recommended Posts

К примеру есть страница вида

Изображение

Как видно, в хлебных крошках прописывается название товара. Вопрос: как его оттуда убрать, чтобы не дублировалось с заголовком?

Вариант - убрать сам заголовок, оставить только ссылку на товар в крошках - не предлагать. Страница не должна ссылаться сама на себя.

===

По ходу дела тут, вдруг кому пригодиться - способ выводить хлебные крошки не только в хедере, а в любой части сайта. Мне понадобилось вывести в шаблоне product.tpl (catalog/view/theme/ваша тема/template/product). Я добавил в нужном месте код (спан можно убрать, либо прописать ему стиль):

<?php foreach ($breadcrumbs as $breadcrumb) { ?>
<span class="breadcrumb"><?php echo $breadcrumb['separator']; ?><a href="<?php echo str_replace('&', '&', $breadcrumb['href']); ?>"><?php echo $breadcrumb['text']; ?></a></span>
<?php } ?>

Выдавало ошибку. Решение простое: в catalog/controller/product прописать около 130 строчки:

$this->data['breadcrumbs'] = $this->document->breadcrumbs;

Да, в моем шаблоне не было хлебных крошек по умолчанию=)

Змінено користувачем afwollis
прячьте код в тэг CODE
Надіслати
Поділитися на інших сайтах


...Страница не должна ссылаться сама на себя...

Для этого можно в "хлебных крошках" последний элемент (текущую страницу) делать не ссылкой, а простым текстом.
Надіслати
Поділитися на інших сайтах

Для этого можно в "хлебных крошках" последний элемент (текущую страницу) делать не ссылкой, а простым текстом.

Допустим. А как это сделать? Не могу найти, где формируются ссылки.

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


обычно в самом начале функции index() в каждом контроллере:

$this->document->breadcrumbs = array();
		
		$this->document->breadcrumbs[] = array(
			'href'      => HTTP_SERVER . 'index.php?route=common/home',
			'text'      => $this->language->get('text_home'),
			'separator' => FALSE
		);
ну и по ходу формирования страницы что-то там добавляется.
Надіслати
Поділитися на інших сайтах

обычно в самом начале функции index() в каждом контроллере:

$this->document->breadcrumbs = array();
		
		$this->document->breadcrumbs[] = array(
			'href'      => HTTP_SERVER . 'index.php?route=common/home',
			'text'      => $this->language->get('text_home'),
			'separator' => FALSE
		);
ну и по ходу формирования страницы что-то там добавляется.

Поубирал в файле controller/product/product.php строки ниже и все исчезло, как и было задумано. Спасибо!

$this->document->breadcrumbs[] = array(
				'href'      => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product' . $url . '&product_id=' . $this->request->get['product_id']),
				'text'      => $product_info['name'],
				'separator' => $this->language->get('text_separator')
			);

$this->document->links[] = array(
				'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&product_id=' . $this->request->get['product_id']),
				'rel'  => 'canonical'
			);

$this->document->breadcrumbs[] = array(
				'href'      => HTTP_SERVER . 'index.php?route=product/search&keyword=' . $this->request->get['keyword'] . $url,
				'text'      => $this->language->get('text_search'),
				'separator' => $this->language->get('text_separator')
			);
Надіслати
Поділитися на інших сайтах


  • 1 month later...

Поубирал в файле controller/product/product.php строки ниже и все исчезло, как и было задумано. Спасибо!

Только на страницах товара исчезло? А как другие страницы? Ведь очень плохо, когда на странице есть активная ссылка на саму себя. Это же дубль. Seo косяк.
Надіслати
Поділитися на інших сайтах


  • 4 weeks later...

Ребята, есть способ гораздо проще:

в www/catalog/view/theme/default/template/common/header.tpl

после <body> вставить

<?php array_pop($breadcrumbs); ?>
- полностью удаляет ссылку на странице продукта на саму себя
  • +1 2
Надіслати
Поділитися на інших сайтах


ну если будет двойной текст то это не очень красиво. на розетке сделано именно так: в хлебных крошках ссылки только на категории, не вижу смысла дублировать название товара дополнительно к тегу h1, ну это уже дело каждого.

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


  • 11 months later...

Стоит OcStore 1.5.1.3. Товары ссылаются сами на себя. Воспользовался предложенным выше методом и закомментировал строчки

$this->document->breadcrumbs[] = array(

'href' => HTTP_SERVER . 'index.php?route=common/home',

'text' => $this->language->get('text_home'),

'separator' => FALSE

);

Ссылка на товар пропала, но хотелось бы чтобы она не удалялась, а стала простым текстом. Как последнюю ссылку сделать простым текстом?
Надіслати
Поділитися на інших сайтах


Ссылка на товар пропала, но хотелось бы чтобы она не удалялась, а стала простым текстом. Как последнюю ссылку сделать простым текстом?

те строчки раскомментить, но заменить вывод breadcrumbs во view на следующее

<div class="breadcrumb">
	<?php foreach ($breadcrumbs as $i=> $breadcrumb) { ?>
	<?php echo $breadcrumb['separator']; ?><?php if($i+1<count($breadcrumbs)) { ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a> <?php } else { ?><?php echo $breadcrumb['text']; ?><?php } ?>
	<?php } ?>
  </div>
код взят с http://first.net23.net/index.php?route=product/product&path=20&product_id=28
  • +1 5
Надіслати
Поділитися на інших сайтах

Ребята, есть способ гораздо проще:

в www/catalog/view/theme/default/template/common/header.tpl

после <body> вставить

<?php array_pop($breadcrumbs); ?>
- полностью удаляет ссылку на странице продукта на саму себя

Спасибо, всё получилось!

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


  • 2 months later...
  • 1 month later...

Ребят, всем спасибо за помощь!

Но можно ли убрать ссылку на "Главная" из хлебных крошек?

Или чтобы вместо http://домен/index.php?route=common/home был прописан там сам Домен?
Надіслати
Поділитися на інших сайтах


те строчки раскомментить, но заменить вывод breadcrumbs во view на следующее

<div class="breadcrumb">
	<?php foreach ($breadcrumbs as $i=> $breadcrumb) { ?>
	<?php echo $breadcrumb['separator']; ?><?php if($i+1<count($breadcrumbs)) { ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a> <?php } else { ?><?php echo $breadcrumb['text']; ?><?php } ?>
	<?php } ?>
  </div>
код взят с http://first.net23.n...0&product_id=28

Спасибо большое, все заработало

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


  • 1 month later...

Здравствуйте ребята.

Хочу возобновить тему (Хлебных крошек).

А именно, при переходе на товар с модуля (Последние поступления) Прописует ( Главная > Название товара )

Как вывести полный адрес - ( Главная > Категория > Подкатегория > Название товара )?

Поделитесь кто сталкивался .

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


webiinfo Зайдите в админке в Система/Настройки/Сервер. Там есть пунктик ЧПУ товаров с категориями. Выберите ДА.

это не помогает, все равно в товаре крошки отображаются без категории: Главная

» товар1

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


Здравствуйте ребята.

Хочу возобновить тему (Хлебных крошек).

А именно, при переходе на товар с модуля (Последние поступления) Прописует ( Главная > Название товара )

Как вывести полный адрес - ( Главная > Категория > Подкатегория > Название товара )?

Поделитесь кто сталкивался .

Тема актуальна, кто нашел решение?
Надіслати
Поділитися на інших сайтах

Не помогло ( . Но за совет спасибо ...

Я не спец, всего лишь пользователь, но у меня все работает.

У меня стоит Ostore 1.5.1.3 с SeoPro. В настройках системы стоит: Включить ЧПУ - Да, Тип ЧПУ - SeoPro, ЧПУ товаров с категориями - Да.

Вроде никаких дополнительных настоек не было.

Может у Вас SeoPro не стоит, или в другой версии настраивается по другому.

Может быть зависит от того, прописана главная категория у товаров или нет

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


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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

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

Important Information

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