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

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


Recommended Posts

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

 

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

 

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

[ЗАНУДА-MODE ON]

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

[ЗАНУДА-MODE OFF] 

 

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

 

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

 

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

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

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

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

  • 3 months later...

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 вместо существующей записи лого, прописываете вот такую ...

 

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

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


  • 2 weeks later...

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

bread crumbs.xml

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


  • 2 weeks later...

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

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

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

Спасибо!

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

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


  • 1 month later...

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

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

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


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

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

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

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


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

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

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

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

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

Вхід

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

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

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

×
×
  • Створити...

Important Information

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