Всем привет!!! Подскажите, кто знает как вывести данные из базы в виджете и передать их в основной контроллер и оттуда в вид? Я делаю так:
Код виджета
Код:
class Controller_Widgets_Primer extends Controller_Template {
public $template = 'widgets/w_view_primer';
public function action_index()
{
//Вывод в шаблон
$primersql = ORM::factory('carousel')
->limit(10)
->order_by('view', 'DESC')
->find_all();
//Вывод в шаблон
$primer = View::factory('widgets/w_view_primer', array(
'primer' => $primersql,
));
$this->template->block_footer = array($primer);
}
}
Код вида
Код:
<div class="carousel">
<ul id="mycarousel" class="jcarousel-skin-tango">
<?foreach($primer as $primerview):?>
<li>
<div class="home-box dark">
<h4><?=$primerview->title?></h4>
<a href="<?=$primerview->screenshot?>" class="fancycaption photo-overlay fancybox-photo">
<img class="fade" src="<?=$primerview->mini_img?>" width="150" height="100" alt="<?=$primerview->category?> шаблон <?=$primerview->title?>" />
</a>
<div class="carousel-info">
<a class="carousel-link" href="<?=$primerview->download_link?>">Скачать</a>
<a class="carousel-link" href="/material/<?=$primerview->category?>/<?=$primerview->post?>">Подробнее</a>
</div>
</div>
</li>
<?endforeach?>
</ul>
</div>
В контроллере подключаю и передаю так
Код:
class Controller_Base extends Controller_Template {
public $template = 'view_base';
protected $widgets_folder = 'widgets'; // Папка для контроллеров виджетов
public function before()
{
parent::before();
$settings = Kohana::$config->load('settings');
$search = Widget::load('search');
$site = Widget::load('site');
$recomend = Widget::load('recomend');
$help = Widget::load('help');
$primer = Widget::load('primer');
//Вывод в шаблон
$this->template->block_footer = array($primer);
$this->template->site_name = $settings->site_name;
$this->template->site_description = $settings->site_description;
$this->template->block_right = array($search, $site, $help, $recomend);
//Подключение стилей и скриптов
$this->template->styles = array(
'media/css/style.css',
'media/css/960.css',
'media/fancybox/jquery.fancybox-1.3.4.css',
'media/css/rating.css'
);
$this->template->scripts = array(
'media/js/jquery.js',
'media/js/custom.js',
'media/js/jquery.packed.js',
'media/js/jcarousel.min.js',
'media/js/rating.js',
);
//Подключаем блоки
$this->template->header = null;
$this->template->block_left = null;
$this->template->block_footer = null;
$this->template->page_title = null;
}
С контроллера передает в такой вид
Код:
<!-- ФУТЕР -->
<?if(isset($block_footer)):?>
<?foreach($block_footer as $footer_div):?>
<?=$footer_div?>
<?endforeach?>
<?endif?>
<!-- ///ФУТЕР -->
Выдает такую ошибку
Причем все виджеты которые без получения данных из базы нормально отображаются((