Автор Тема: Хлебные крошки  (Прочитано 2529 раз)

07 Января 2015, 12:07:03
  • Новичок
  • *
  • Сообщений: 27
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Редактирую стандартный шаблон, 1.6. Как подкорректировать хлебные крошки? http://prntscr.com/5ph4b3
Дневные ходовые огни>Palmann 512A Libelle + карты всего Мира
разделение > не получается убрать , оно убирается вместе с названием
в файле стандартного шаблона оно содержится в breadcrumb.tpl в виде кода {$path}
а где лежит то что находится в этой переменной и почему там содержится >
07 Января 2015, 12:35:52
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 763
  • Репутация: +6/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В файле FrontController.php
/* Breadcrumb */
$navigationPipe = (Configuration::get('PS_NAVIGATION_PIPE') ? Configuration::get('PS_NAVIGATION_PIPE') : '>');
$this->context->smarty->assign('navigationPipe', $navigationPipe);
07 Января 2015, 12:51:20
Ответ #2
  • Ветеран
  • *****
  • Сообщений: 884
  • Репутация: +206/-0
    • Просмотр профиля
В prestashop 1.5 можно менять знак разделителя в админке Настройки -> Шаблоны.
09 Января 2015, 01:26:08
Ответ #3
  • Новичок
  • *
  • Сообщений: 27
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
у меня 1.6.0.9 версия...где находится этот файл?
09 Января 2015, 11:54:10
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 763
  • Репутация: +6/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В папке /classes/controller/
09 Января 2015, 14:11:40
Ответ #5
  • Новичок
  • *
  • Сообщений: 27
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В файле FrontController.php
/* Breadcrumb */
$navigationPipe = (Configuration::get('PS_NAVIGATION_PIPE') ? Configuration::get('PS_NAVIGATION_PIPE') : '>');
$this->context->smarty->assign('navigationPipe', $navigationPipe);
редактировал, потом удалил данные строки ничего не изменилось...может где то еще редактировать?
и там знак <, а не >
09 Января 2015, 16:57:05
Ответ #6
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102470
  • Репутация: +34217/-0
    • Просмотр профиля
В базе данных
UPDATE ps_configuration SET value = 'То что вы хотите использовать как разделитель'  WHERE name = 'PS_NAVIGATION_PIPE';
07 Марта 2015, 17:17:36
Ответ #7
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Я сама сейчас чуть голову не сломала и день потеряла с этими Breadcrumb (Prestashop_1.6.0.11). Пыталась убрать этот > из страницы с карточкой продукта. Совет с файлом FrontController.php мне не помог, я даже вообще удаляла приведённые mistral строки, никаких изменений. В итоге в файле темы breadcrumb.tpl из всего кода
<div class="breadcrumb clearfix">
<a class="home" href="{$base_dir}" title="{l s='Return to Home'}"></a>
{if isset($path) AND $path}
<span class="navigation-pipe"{if isset($category) && isset($category->id_category) && $category->id_category == 1} style="display:none;"{/if}>{$navigationPipe|escape:'html':'UTF-8'}</span>
{if $path|strpos:'span' !== false}
<span class="navigation_page">{$path|@replace:'<a ': '<span itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a itemprop="url" '|@replace:'data-gg="">': '><span itemprop="title">'|@replace:'</a>': '</span></a></span>'}</span>
{else}
{$path}
{/if}
{/if}
</div>
я оставила только:
<div class="breadcrumb clearfix">
<a class="home" href="{$base_dir}" title="{l s='Return to Home'}">Главная</a>
{$path}
</div>
А потом, через controllers\front\ProductController.php (там есть: $path = Tools::getPath) вышла на  classes\Tools.php, а уже в этом файле мне помогли манипуляции с $full_path. Я там убрала <span class="navigation-pipe">'.$pipe.'</span> в строке 1089. Было
$full_path .=
(($n < $n_categories || $link_on_the_item) ? '<a href="'.Tools::safeOutput($context->link->getCategoryLink((int)$category['id_category'], $category['link_rewrite'])).'" title="'.htmlentities($category['name'], ENT_NOQUOTES, 'UTF-8').'" data-gg="">' : '').
htmlentities($category['name'], ENT_NOQUOTES, 'UTF-8').
(($n < $n_categories || $link_on_the_item) ? '</a>' : '').
(($n++ != $n_categories || !empty($path)) ? '<span class="navigation-pipe">'.$pipe.'</span>' : '');
}
стало:
$full_path .=
(($n < $n_categories || $link_on_the_item) ? '<a href="'.Tools::safeOutput($context->link->getCategoryLink((int)$category['id_category'], $category['link_rewrite'])).'" title="'.htmlentities($category['name'], ENT_NOQUOTES, 'UTF-8').'" data-gg="">' : '').
htmlentities($category['name'], ENT_NOQUOTES, 'UTF-8').
(($n < $n_categories || $link_on_the_item) ? '</a>' : '').
(($n++ != $n_categories || !empty($path)) ? '' : '');
}
И у меня этот разделитель, ура, исчез!
Судя по тому, что этот <span class="navigation-pipe"> и эта $pipe встречается в Tools.php ещё в нескольких местах, то видимо мой "рецепт" убрал разделитель ">" не из всех страниц и категорий хлебных крошек. Но главное, что исправляя их в этом файле можно, надеюсь, справится и с остальными
07 Марта 2015, 21:49:49
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 20853
  • Репутация: +25278/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
В настройках темы можно менять разделитель.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
08 Марта 2015, 11:54:22
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 105581
  • Репутация: +39547/-0
    • Просмотр профиля
    • Webstudio UwK
Я сама сейчас чуть голову не сломала и день потеряла с этими Breadcrumb (Prestashop_1.6.0.11). Пыталась убрать этот > из страницы с карточкой продукта. Совет с файлом FrontController.php мне не помог, я даже вообще удаляла приведённые mistral строки, никаких изменений. В итоге в файле темы breadcrumb.tpl из всего кода
С праздником!

В настройках темы можно менять разделитель.
Только в prestashop 1.5.

Для prestashop 1.6 поменять знак разделителя можно в бд
UPDATE `ps_configuration` SET `value` = 'ваш разделитель' WHERE `name` = 'PS_NAVIGATION_PIPE';
Чтобы не показывать разделитель, нужно в стилях добавить
.navigation-pipe{display:none;}
Cоздание интернет сайтов Webstudio UwK
08 Марта 2015, 17:10:42
Ответ #10
  • Новичок
  • *
  • Сообщений: 18
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Виталий, спасибо.