Jump to content
Sign in to follow this  
kate1987

Хлебные крошки (выделить активный пункт)

Recommended Posts

Здравствуйте. Использую opencart 1.5.3 В ходе разработки сайта возник вопрос: как в breadcrumb изменить цвет активной ссылки (активной страницы)? Код

.breadcrumb a:active { color:red; }

не рулит. Может кто знает как?

post-17380-0-57822600-1357307236_thumb.png

Share this post


Link to post
Share on other sites

зайдите в product.tpl

найдите в самом начале файла этот кусок:

<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 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 { ?><font color="#FF0000"><?php echo $breadcrumb['text']; ?></font><?php } ?>
	<?php } ?>
 </div>

Этим вы сразу сделаете 2 полезные вещи:

1) активная ссылка выделяется другим цветом

2) уберете ссылку страницы на саму себя, что в свою очередь сократит шансы попасть под бан гугла

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

  • +1 8

Share this post


Link to post
Share on other sites

зайдите в product.tpl

найдите в самом начале файла этот кусок:

<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 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 { ?><font color="#FF0000"><?php echo $breadcrumb['text']; ?></font><?php } ?>
	<?php } ?>
 </div>

Этим вы сразу сделаете 2 полезные вещи:

1) активная ссылка выделяется другим цветом

2) уберете ссылку страницы на саму себя, что в свою очередь сократит шансы попасть под бан гугла

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

А имеет ли смысл обрезать крошки до категории, убрав при этом конечный пункт, а именно сам товар?

Я вырезал вот это:

else { ?><font color="#FF0000"><?php echo $breadcrumb['text']; ?></font><?php }

из вашего кода.

Share this post


Link to post
Share on other sites

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

  • +1 2

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Не поделитесь кодом для категорий? Буду очень благодарен.

Share this post


Link to post
Share on other sites

все аналогично


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

  • +1 3

Share this post


Link to post
Share on other sites

все аналогично


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

Да, да. Я так и сделал. :-)

  • +1 1

Share this post


Link to post
Share on other sites

Спасибо большое! То что нужно! :)

Share this post


Link to post
Share on other sites

зайдите в product.tpl

найдите в самом начале файла этот кусок:

<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 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 { ?><font color="#FF0000"><?php echo $breadcrumb['text']; ?></font><?php } ?>
	<?php } ?>
 </div>

Этим вы сразу сделаете 2 полезные вещи:

1) активная ссылка выделяется другим цветом

2) уберете ссылку страницы на саму себя, что в свою очередь сократит шансы попасть под бан гугла

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

Здравствуйте!

Не получается применить Ваш метод.

Выдает ошибку 500

Opencart 1.5.3.1 + shoppica2

Share this post


Link to post
Share on other sites

Не получается применить Ваш метод.

Выдает ошибку 500

Opencart 1.5.3.1 + shoppica2

1.5.3.1 (правда не под шопикой) работает отлично, проверьте то ли и там ли меняете

Share this post


Link to post
Share on other sites
  <ul class="breadcrumb">
    <?php foreach ($breadcrumbs as $breadcrumb) { ?>
    <li><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a></li>
    <?php } ?>
  </ul>
 

а если у меня такой код в product.tpl

Share this post


Link to post
Share on other sites

все аналогично


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

 

Спасибо большое, все работает ! :-)

Share this post


Link to post
Share on other sites

столкнулся с проблемой, в общем в хлебных крошках когда я в категориях выводится правильный путь (Главная/Категория/Под категория), но когда я захожу в товар "Под категория" исчезает, остается путь вида: (Главная/Категория/Товар), в product.tpl заменил код на код Энштейна при этом в одной из под категорий все заработало как надо, но в других попрежнему таже история, не пойму в чем дело, может кто сталкивался с этим и исправлял? При чем при выключеном ЧПУ, хлебные крошки отображают все как надо. Спасибо.

Share this post


Link to post
Share on other sites

столкнулся с проблемой, в общем в хлебных крошках когда я в категориях выводится правильный путь (Главная/Категория/Под категория), но когда я захожу в товар "Под категория" исчезает, остается путь вида: (Главная/Категория/Товар), в product.tpl заменил код на код Энштейна при этом в одной из под категорий все заработало как надо, но в других попрежнему таже история, не пойму в чем дело, может кто сталкивался с этим и исправлял? При чем при выключеном ЧПУ, хлебные крошки отображают все как надо. Спасибо.

Посмотрите в Админке: Товары-(изменить)-Связи. Пункт Категория: У Вас может выбран путь без ПодКатегорий.

Share this post


Link to post
Share on other sites

столкнулся с проблемой, в общем в хлебных крошках когда я в категориях выводится правильный путь (Главная/Категория/Под категория), но когда я захожу в товар "Под категория" исчезает, остается путь вида: (Главная/Категория/Товар), в product.tpl заменил код на код Энштейна при этом в одной из под категорий все заработало как надо, но в других попрежнему таже история, не пойму в чем дело, может кто сталкивался с этим и исправлял? При чем при выключеном ЧПУ, хлебные крошки отображают все как надо. Спасибо.

Посмотрите в Админке: Товары-(изменить)-Связи. Пункт Категория: У Вас может выбран путь без ПодКатегорий.

нет, все выставлено как надо, пока проблему не решил...

Share this post


Link to post
Share on other sites

все аналогично


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

а как сделать  размер по  меньше?

Share this post


Link to post
Share on other sites

Простите, что влезаю, но есть вопрос не совсем по теме, но по обсуждаемому вопросу.

Тут озвучена проблема, что ссылка страницы на саму себя может привести к бану. Но ведь этот функционал заложен по умолчанию. Неужели разработчики этого не знают? И второе, при применении микроразметки на эту ссылку ставится свой тег, указывающий что эта ссылка именно на эту страницу. Гугл ее в валидаторе корректно отображает. Так за что бан?

Share this post


Link to post
Share on other sites

а как убрать автоматически проставляющуюся типографскую кавычку » (»)  из хлебных крошек? 

Share this post


Link to post
Share on other sites

а как убрать автоматически проставляющуюся типографскую кавычку » (»)  из хлебных крошек? 

 только на минусы щедрые, господа зажравшиеся программисты  :lol:

Share this post


Link to post
Share on other sites

catalog/language/russian/russian.php

 

$_['text_separator'] = 'чтоугодно';
 

Share this post


Link to post
Share on other sites

У меня сработал такой код:

 

<?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 } ?>
 
Шаблон не стандартный....

Share this post


Link to post
Share on other sites
<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>

Все классно... Не оптимально.. Правда на это можно плюнуть, всего до 6 итераций ... ну разве у кого больше? только вот не совсем читабельно и логично

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

Share this post


Link to post
Share on other sites

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

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

 

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

        <?php } ?>

  </div>

 

 

Ещё видел на сайте каком то перед хлебными крошками стоит фраза "Вы находитесь" , как можно такое добавить?

 

Заранее благодарю за помощь!

Share this post


Link to post
Share on other sites

Немного эстетичности

<div class="breadcrumb">
  <?php foreach ($breadcrumbs as $breadcrumb): ?>
  <?php echo $breadcrumb['separator']; ?>
  <?php if ($breadcrumb == end($breadcrumbs)): ?>
  <?php echo $breadcrumb['text']; ?>
  <?php else: ?>
  <a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a>
  <?php endif; ?>
  <?php endforeach; ?>
</div>

Последний элемент выводится обычным текстом.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.