Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

Breadcrumbs «Хлебные крошки»
http://forum.kohanaframework.su/viewtopic.php?f=31&t=399
Страница 1 из 1

Автор:  StritCoder [ 06 окт 2012, 17:27 ]
Заголовок сообщения:  Breadcrumbs «Хлебные крошки»

Здравствуйте!
Уже неделю рою интернет и негде нет нормальной информации по «Хлебным крошкам» объясните пожалуйста как в Kohana 3.2 реализовать на сайте «Хлебные крошки»

Автор:  evgentus [ 06 окт 2012, 19:33 ]
Заголовок сообщения:  Re: Breadcrumbs «Хлебные крошки»

Ну иногда проще 1 раз подумать и за 5 мин реализовать, чем недели гуглить...

Простейшая реализация:

Создаете в application/classes/ файл breadcramb.php

Пихаете в него:

Код:
<?php defined('SYSPATH') or die('No direct script access.');
 
class Breadcrumb {
   
   static function generate($bred_array){
      $bred_generated = array();
      $i = 0;
      foreach($bred_array as $bred){
         $i++;
         if ( ! isset($bred['link']) || $i == count($bred_array))
            $bred_generated[] = $bred['name'];
         else
            $bred_generated[] = '<a href="'.$bred['link'].'">'.HTML::chars($bred['name']).'</a>';
      }
      $bred_generated = '<div class="breadcrumb" id="breadcrumb">'.implode('<span class="separator"> / </span>', $bred_generated).'</div>';
      return $bred_generated;
   }
   
}


В нужном контроллере строите последовательно хлебные крошки:

Код:
$this->breadcrumb[] = array('name' => 'Главная', 'link' => '/');
/* тут можно их хоть 100500 написать */
$this->breadcrumb[] = array('name' => 'Последний элемент', 'link' => 'Ссылка на последний элемент');

$view = View::factory('представление')
                                ->set('breadcrumb', Breadcrumb::generate($this->breadcrumb));


Ну и собственно в представлении хлебные крошки доступны как $breadcrumb

Автор:  alexsaab [ 10 ноя 2013, 12:54 ]
Заголовок сообщения:  Re: Breadcrumbs «Хлебные крошки»

Не работает к сожалению эта фишка.

Если хлебные крошки выводятся в родительском контроллере с ними ничего нельзя сделать из потомка.

С ув., Алексей

Автор:  Sergey [ 10 ноя 2013, 15:21 ]
Заголовок сообщения:  Re: Breadcrumbs «Хлебные крошки»

Как это? о_О

Автор:  Junior [ 27 ноя 2013, 14:52 ]
Заголовок сообщения:  Re: Breadcrumbs «Хлебные крошки»

К примеру в магазине, можно строить так "Главная -> Компьютеры -> Мыши, клавиатуры -> Logitech -> g800"

"Компьютеры -> Мыши, клавиатуры" берем категорию товара. Лучше всего написать функцию вроде get_cats с рекурсивным запросом, который остановится когда parent_id равен 0.
Ну а уже фирму и бренд можно брать прямо из данных, полученных по текущему товару.
Как-то так. Не критикуйте, учусь еще пока сам. Хочу тоже оказывать помощь таким как я :D

Готов принят любую конструктивную критику, ругайте - но расскажите как надо :lol:

Код:
$this->breadcrumb[] = array('name' => 'Главная', 'link' => '/');

foreach($cats as $cat) {
      $this->breadcrumb[] = array('name' => $cat->name, 'link' => 'domen/cat/'.$cat->id);
}



$this->breadcrumb[] = array('brend' => 'Бренд товара', 'link' => 'domen/brend/'.$domen_id);
$this->breadcrumb[] = array('product' => 'Текущий товар', 'link' => 'domen/product/'.$id);

$view = View::factory('представление')
                                ->set('breadcrumb', Breadcrumb::generate($this->breadcrumb));


Знаю что есть другой способ, более сложный и правильный, но я пока не дорос до него(

Страница 1 из 1 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/