Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 23 апр 2024, 12:38

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Breadcrumbs «Хлебные крошки»
СообщениеДобавлено: 06 окт 2012, 17:27 
Не в сети
Зеленый

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Breadcrumbs «Хлебные крошки»
СообщениеДобавлено: 06 окт 2012, 19:33 
Не в сети
Бывалый

Зарегистрирован: 29 авг 2012, 16:09
Сообщения: 46
Ну иногда проще 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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Breadcrumbs «Хлебные крошки»
СообщениеДобавлено: 10 ноя 2013, 12:54 
Не в сети
Зеленый

Зарегистрирован: 10 ноя 2013, 12:48
Сообщения: 1
Не работает к сожалению эта фишка.

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Breadcrumbs «Хлебные крошки»
СообщениеДобавлено: 10 ноя 2013, 15:21 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
Как это? о_О


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Breadcrumbs «Хлебные крошки»
СообщениеДобавлено: 27 ноя 2013, 14:52 
Не в сети
Зеленый

Зарегистрирован: 27 ноя 2013, 13:42
Сообщения: 2
К примеру в магазине, можно строить так "Главная -> Компьютеры -> Мыши, клавиатуры -> 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));


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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group