Перейти к содержанию

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

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

 

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

 

Где все 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 9

Поделиться сообщением


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

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="#"> :-)

Поделиться сообщением


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

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

Поделиться сообщением


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

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

Поделиться сообщением


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

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

Поделиться сообщением


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

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

bread crumbs.xml

  • +1 4

Поделиться сообщением


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

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

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

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

Спасибо!

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

Поделиться сообщением


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

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

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

Поделиться сообщением


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

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

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

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

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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