Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

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


 Поделиться

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

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

Изображение

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

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

===

По ходу дела тут, вдруг кому пригодиться - способ выводить хлебные крошки не только в хедере, а в любой части сайта. Мне понадобилось вывести в шаблоне 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 месяц спустя...

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

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


  • 4 недели спустя...

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

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

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

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


Surfer7, я уже описывал в какой-то теме, как сделать из последней ссылки текст.

ничего удалять не надо.

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

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

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


  • 11 месяцев спустя...

Стоит 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 месяца спустя...
  • 1 месяц спустя...

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

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

Или чтобы вместо 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 месяц спустя...

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

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

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

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

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

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


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


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

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

» товар1

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


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

Не помогло ( . Но за совет спасибо ...
Ссылка на комментарий
Поделиться на других сайтах


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

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

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

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

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

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

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

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

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

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

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

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

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


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

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

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