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

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 11 дек 2023, 04:00

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




Начать новую тему Ответить на тему  [ Сообщений: 11 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Получение и вывод записей ORM и WIDGET
СообщениеДобавлено: 12 окт 2012, 11:07 
Не в сети
Зеленый

Зарегистрирован: 12 окт 2012, 10:33
Сообщения: 4
Всем привет!!! Подскажите, кто знает как вывести данные из базы в виджете и передать их в основной контроллер и оттуда в вид? Я делаю так:
Код виджета
Код:
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?>
        <!-- ///ФУТЕР -->

Выдает такую ошибку
Изображение
Причем все виджеты которые без получения данных из базы нормально отображаются((


Последний раз редактировалось limurec 13 окт 2012, 13:06, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 окт 2012, 04:29 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
Код:
$primer = View::factory('widgets/w_view_primer')->bind('primer' => $primersql));


И прекратите пользоваться <?, <?= и прочим, вместо <?php. Пока не поздно


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 окт 2012, 07:37 
Не в сети
Зеленый

Зарегистрирован: 12 окт 2012, 10:33
Сообщения: 4
Не помогает это все...((( если код из виджета поставить напрямую в главный контроллер то все нормально...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 окт 2012, 12:12 
Не в сети
Зеленый

Зарегистрирован: 12 окт 2012, 10:33
Сообщения: 4
Проблема решена


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 окт 2012, 12:12 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
Как это не помогает?
После передачи $primersql в представлении делали var_dump($primer)?
Какой вывод был?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 окт 2012, 12:12 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
limurec писал(а):
Проблема решена

Как?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 окт 2012, 13:02 
Не в сети
Зеленый

Зарегистрирован: 12 окт 2012, 10:33
Сообщения: 4
В самом виджете вот это было лишним...

$primer = View::factory('widgets/w_view_primer', array(
'primer' => $primersql,
));
И вывод просто сделал вот так
$this->template->primer = $primer;


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 окт 2012, 13:24 
Не в сети
Бывалый

Зарегистрирован: 29 сен 2012, 00:30
Сообщения: 65
Откуда: Рига, Латвия
Sergey писал(а):
И прекратите пользоваться <?, <?= и прочим, вместо <?php. Пока не поздно

Обоснуйте


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 окт 2012, 01:15 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 05 июн 2012, 03:08
Сообщения: 213
http://php.net/manual/ru/language.basic ... hpmode.php

_________________
http://de-en.info (работает на Kohana 3.3)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 окт 2012, 02:16 
Не в сети
Бывалый

Зарегистрирован: 29 сен 2012, 00:30
Сообщения: 65
Откуда: Рига, Латвия
AmberLEX писал(а):
http://php.net/manual/ru/language.basic-syntax.phpmode.php


Цитата:
Замечание:

Начиная с PHP 5.4 короткий тег echo <?= всегда распознается и действует, несмотря на значение опции short_open_tag.


Ну а если на сервере ВДРУГ отключен short_open_tag и его нельзя включить через ini_set, то в IDE всегда можно заменить <?= на <?php echo во всем проекте.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ]  На страницу 1, 2  След.

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


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

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


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

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