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

Исправляем хлебные крошки


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

По умолчанию в Опенкарте формируются хлебные крошки вида:

 

Главная / Раздел / Подраздел / Товар

 

Где все 4 элемента являются ссылками. Это не совсем логично и верно как для пользователя так и для поисковика, так как последний элемент ТОВАР не должен быть ссылкой, незачем на странице размещать ссылку на саму себя.

 

Поскольку вывод дороги формируется отдельно в каждом контроллере, то чтобы исправить данную ситуацию необходимо внести правки во все файлы основных шаблонов.

 

А именно заменить 

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

 

на 

 

<div class="breadcrumb">
<?php 
  $total = count($breadcrumbs);
  $counter = 0;
  foreach ($breadcrumbs as $breadcrumb) { 
    echo $breadcrumb['separator']; 
    $counter++;
    if($counter == $total){
       echo $breadcrumb['text'];
    }
    else { ?>
      <a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a> 
    <?php  } 
  } 
?>
</div> 

Код не совсем красив, но универсален. Если кто-то предложит способ покороче, буду признателен :)

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


я использую вот такой

<?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 } ?>

ссылка на эту же страницу отсутствует, но присутствует заголовок в хлебных крошках

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


1. Тут на форуме это не раз обсуждалось и есть решения.

 

2. А то что не верно для поисковиков это еще надо узнать у самих поисковиков, которые алгоритмы меняются каждые полгода.  Вся информация в интернете о сео оптимизации итд итп давно уже устарела, но зато хорошая кормушка для сеооптимизаторов !! 

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

я использую вот такой

<?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 } ?>

ссылка на эту же страницу отсутствует, но присутствует заголовок в хлебных крошках

Лаконичней:)

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


1. Тут на форуме это не раз обсуждалось и есть решения.

 

2. А то что не верно для поисковиков это еще надо узнать у самих поисковиков, которые алгоритмы меняются каждые полгода.  Вся информация в интернете о сео оптимизации итд итп давно уже устарела, но зато хорошая кормушка для сеооптимизаторов !! 

 

Прошу прощения, не нашел, искал по "хлебные крошки".

 

Ну я денег не беру)))

 

Это скорее логическая ошибка:) Поисковики, это так, для массы:)

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


лаконичней ))) Хотя вариантов масса от изменений в шаблоне, до изменений в контролере...


<div class="breadcrumb">

<?php array_pop($breadcrumbs); ?>

<?php foreach ($breadcrumbs as $breadcrumb) { ?>

<?php echo $breadcrumb['separator']; ?><a href="<?php echo $breadcrumb['href']; ?>">

<?php echo $breadcrumb['text']; ?></a>

<?php } ?>

<?php echo $breadcrumb['separator']; ?><?php echo $heading_title; ?>

</div>

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

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

 

Сейчас наибольшее значение в продвижении имеет  хороший контент и социальные показатели, а не алгоритм внутренней перелинковки, ссылки с бирж итд. Это года 2 назад можно было накупить 100500 гавноссылок и сайт взлетал в выдаче. Сейчас за такое он наоборот уйдет на дно и надолго))

 

Если в мире работает несколько сотен тысяч сайтов на опенкарте и у всех есть ссылка на товар в хлебных крошках то это вообще никак не повлияет на позицию сайта, так как поисковики учатся.

 

Чисто ради спортивного интереса, мой вариант:

<?php 
  $total = count($breadcrumbs);
  foreach ($breadcrumbs as $counter => $breadcrumb) { 
    echo $breadcrumb['separator'] . ($counter == $total - 1) ? $breadcrumb['text'] : "<a href='" . $breadcrumb['href'] . "'>" . $breadcrumb['text'] . "</a>"; 
  } 
?>
  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

[ЗАНУДА-MODE ON]

Также стоит заметить, что вывод хлебных крошек на страницах статей - это вообще загадка из загадок, ибо мало того, что идет ссылка на главную, на которую и так есть ссылка не только с меню (верхнего + нижнего), но и с логотипа, так кроме этого после главной идет ссылка на саму же статью, которую мы и читаем!

[ЗАНУДА-MODE OFF] 

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

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

 

Сейчас наибольшее значение в продвижении имеет  хороший контент и социальные показатели, а не алгоритм внутренней перелинковки, ссылки с бирж итд. Это года 2 назад можно было накупить 100500 гавноссылок и сайт взлетал в выдаче. Сейчас за такое он наоборот уйдет на дно и надолго))

 

Если в мире работает несколько сотен тысяч сайтов на опенкарте и у всех есть ссылка на товар в хлебных крошках то это вообще никак не повлияет на позицию сайта, так как поисковики учатся.

 

Чисто ради спортивного интереса, мой вариант:

<?php 
  $total = count($breadcrumbs);
  foreach ($breadcrumbs as $counter => $breadcrumb) { 
    echo $breadcrumb['separator'] . ($counter == $total - 1) ? $breadcrumb['text'] : "<a href='" . $breadcrumb['href'] . "'>" . $breadcrumb['text'] . "</a>"; 
  } 
?>

Тоже неплохо :) Только counter надо объявить :)

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


[ЗАНУДА-MODE ON]

Также стоит заметить, что вывод хлебных крошек на страницах статей - это вообще загадка из загадок, ибо мало того, что идет ссылка на главную, на которую и так есть ссылка не только с меню (верхнего + нижнего), но и с логотипа, так кроме этого после главной идет ссылка на саму же статью, которую мы и читаем!

[ЗАНУДА-MODE OFF] 

 

Я из подвала ссылку убрал.

 

Интересно, если на логотип повесить ссылку вида <a href="/"><img scr="logo.png></a> она поисковиком принимается за полноценную ссылку на главную?

 

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

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


Тоже неплохо :) Только counter надо объявить :)

$counter oбъявляется как ключ к цикле foreach
Ссылка на комментарий
Поделиться на других сайтах

Тоже неплохо :) Только counter надо объявить :)

$counter oбъявляется как ключ к цикле foreach

Извините, жара сказывается :) недоглядел:)

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


[ЗАНУДА-MODE ON]

Также стоит заметить, что вывод хлебных крошек на страницах статей - это вообще загадка из загадок, ибо мало того, что идет ссылка на главную, на которую и так есть ссылка не только с меню (верхнего + нижнего), но и с логотипа, так кроме этого после главной идет ссылка на саму же статью, которую мы и читаем!

[ЗАНУДА-MODE OFF] 

 

Я из подвала ссылку убрал.

 

Интересно, если на логотип повесить ссылку вида <a href="/"><img scr="logo.png></a> она поисковиком принимается за полноценную ссылку на главную?

 

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

Ну у себя я вообще убрал вывод крошек на страницах статей, так как никакой информативности они не несут

Мне кажется принимается в любом случае, тогда уж можно еще попробовать <a href="#"> :-)

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

Ребят а у меня проблема: Хлебные крошки вообще на глушняк не работают, при нажатии на раздел выше сразу скидывает на главную страницу

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


  • 3 месяца спустя...

catalog/view/theme/ВашаТема/template/product/ вот тут все файлы

catalog/view/theme/ВашаТема/template/information/ тут все файлы

 

это файлы шаблона

А если нужно править контроллер (врядли) - найдете их по адресу:
catalog/controller/product/

catalog/controller/information/

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


И я хочу принять участие в конкурсе на самую короткую запись :)

foreach ($breadcrumbs as $b) { echo end($breadcrumbs) == $b ? $b['separator'] . $b['text'] : $b['separator'] . '<a href="'. $b['href'] . '">'. $b['text'] .'</a>'; }

А вообще, по правилам хорошего тона нужно пользоваться хелперами. Пример функции хелпера:

/**
 * Breadcrumb
 *
 * @access	public
 * @param	array
 * @param	string
 * @param	string
 * @return	string
 */
 
if (!function_exists('breadcrumb')) {
	
	function breadcrumb($breadcrumbs, $class = false, $attr = false) {

		$output = '<div class="breadcrumb '. $class .'" '.$attr.'>';
		foreach ($breadcrumbs as $breadcrumb) {
			$output .= $breadcrumb['separator'].'<a href="'. $breadcrumb['href'] .'">'. $breadcrumb['text'].'</a>';
		}
		$output .= '</div>';
		return $output;
	}

Пример вызова:

<?=breadcrumb($breadcrumbs);?>
Ссылка на комментарий
Поделиться на других сайтах

catalog/view/theme/ВашаТема/template/product/ вот тут все файлы

catalog/view/theme/ВашаТема/template/information/ тут все файлы

 

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

И ещё вопрос) Что нужно сделать, чтобы логотип на главной не был ссылкой на главную страницу?

Знаю, что в новой версии магазина это исправлено, но обновляться пока не собираюсь.

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


в header.tpl вместо существующей записи лого, прописываете вот такую
 

 <?php if ($logo) { ?>
			<?php if (strlen ($_SERVER['REQUEST_URI']) > 1 ){ ?>
				<div id="logo"><a href="<?php echo $home; ?>"><img src="<?php echo $logo; ?>" title="<?php echo $name; ?>" alt="<?php echo $name; ?>" /></a></div>
			<?php } else  { ?>
				<div id="logo"><img src="<?php echo $logo; ?>" title="<?php echo $name; ?>" alt="<?php echo $name; ?>" /></div>
			<?php } ?>
		<?php } ?>

если не получится - под спойлер положите код из своего файла и стукните в личку

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


в header.tpl вместо существующей записи лого, прописываете вот такую ...

 

Спасибо Большое, код подошёл, лого на главной теперь неактивно. Прям волшебство какое-то)

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


Имеет ли смысл делать неактивной эту ссылку, когда находимся на главной?

Искал, но ответа пока не нашёл.

 

 

post-670679-0-16735800-1378774339_thumb.jpg

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


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

Не знаю, может кому пригодится, а может и нет, делал для себя, чтобы по 100 раз не переписывать десятки файлов
хлебные крошки на vqmod (делаем не кликабельным конечный путь) - кому для красоты и эстетики, а кому для SEO
за основу взято исправление от Einshtein(второй пост в этой теме)

bread crumbs.xml

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


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

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

хлебные крошки на vqmod (делаем не кликабельным конечный путь) - кому для красоты и эстетики, а кому для SEO

за основу взято исправление от Einshtein(второй пост в этой теме)

Спасибо!

Действительно удобно.

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


  • 1 месяц спустя...

А как сделать что бы последнее звено хлебных крошек не только не было ссылкой, а вообще не выводилось!

Зачем два раза писать один и тот же текст?!

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


А как сделать что бы последнее звено хлебных крошек не только не было ссылкой, а вообще не выводилось!

Зачем два раза писать один и тот же текст?!

Поддерживаю вопрос!

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


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

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

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

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

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

Войти

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

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

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

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

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

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