Виджет показа нескоьких новостей

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
vav
Сообщения: 91
Зарегистрирован: 2014.07.16, 18:07

Виджет показа нескоьких новостей

Сообщение vav »

Прочел http://www.yiiframework.com/doc/guide/1 ... view#sec-3 но многое осталось непонятно, может у кого-то есть уже решения, хочу с помощью виджета вывести на главную страницу 5 новостей с таблицы News (раздел новостей)
mickgeek
Сообщения: 957
Зарегистрирован: 2014.05.31, 20:50
Откуда: Санкт-Петербург
Контактная информация:

Re: Виджет показа нескоьких новостей

Сообщение mickgeek »

Реализация должна быть похожей как у виджета последних комментариев из демо блога:
https://github.com/yiisoft/yii/blob/mas ... mments.php
https://github.com/yiisoft/yii/blob/mas ... n2.php#L16
HQ0
Сообщения: 182
Зарегистрирован: 2012.10.17, 17:21

Re: Виджет показа нескоьких новостей

Сообщение HQ0 »

Почему бы не попробовать как-то так ?

Код: Выделить всё

# application.php (layout)

...
<?php $this->widget('ext.widgets.NewsWidget', [
    'count' => 5,
]) ?>
...

# protected/extensions/widgets/NewsWidget.php

<?php

class NewsWidget extends CWidget {
    
    public $count = 3;

    public function run()
    {
        $models = News::model()->findAll([
            'limit' => $this->count,
        ]);

        $this->render('NewsWidgetView', compact('models'));
    }

}

?>

# protected/extensions/widgets/views/NewsWidgetView.php

<?php if (!empty($models)): ?>
    <ul>
        <?php foreach ($models as $model): ?>
            <li><?php echo $model->title ?></li>
        <?php endforeach ?>    
    </ul>
<?php endif ?>
vav
Сообщения: 91
Зарегистрирован: 2014.07.16, 18:07

Re: Виджет показа нескоьких новостей

Сообщение vav »

HQ0 писал(а):Почему бы не попробовать как-то так ?

Код: Выделить всё

# application.php (layout)

...
<?php $this->widget('ext.widgets.NewsWidget', [
    'count' => 5,
]) ?>
...

# protected/extensions/widgets/NewsWidget.php

<?php

class NewsWidget extends CWidget {
    
    public $count = 3;

    public function run()
    {
        $models = News::model()->findAll([
            'limit' => $this->count,
        ]);

        $this->render('NewsWidgetView', compact('models'));
    }

}

?>

# protected/extensions/widgets/views/NewsWidgetView.php

<?php if (!empty($models)): ?>
    <ul>
        <?php foreach ($models as $model): ?>
            <li><?php echo $model->title ?></li>
        <?php endforeach ?>    
    </ul>
<?php endif ?>
Cпасибо, но выдает ошибку Parse error: syntax error, unexpected '[' видимо, из-за того что у меня пхп 5.2?
HQ0
Сообщения: 182
Зарегистрирован: 2012.10.17, 17:21

Re: Виджет показа нескоьких новостей

Сообщение HQ0 »

Было бы неплохо сделать себе пхп >= 5.4, но если такой возможности нет, то заменять [ ], на array( )
vav
Сообщения: 91
Зарегистрирован: 2014.07.16, 18:07

Re: Виджет показа нескоьких новостей

Сообщение vav »

HQ0 писал(а):Было бы неплохо сделать себе пхп >= 5.4, но если такой возможности нет, то заменять [ ], на array( )
Спасибо огромное, все работает, почти с первого раза, что удивительно
HQ0
Сообщения: 182
Зарегистрирован: 2012.10.17, 17:21

Re: Виджет показа нескоьких новостей

Сообщение HQ0 »

Пользуйся, но помни -- всегда думай головой :)
vav
Сообщения: 91
Зарегистрирован: 2014.07.16, 18:07

Re: Виджет показа нескоьких новостей

Сообщение vav »

Подскажите пожалуйста:
Изображение
сейчас так, хочу чтобы название инпута было слева от него, а не над. как сделать?
не на всех страницах используется бустраповская актив-форм, и не везде почему-то работает type-horizonal
HQ0
Сообщения: 182
Зарегистрирован: 2012.10.17, 17:21

Re: Виджет показа нескоьких новостей

Сообщение HQ0 »

Не могу ничего сказать на этот счет. Вопрос решается стилями.
vav
Сообщения: 91
Зарегистрирован: 2014.07.16, 18:07

Re: Виджет показа нескоьких новостей

Сообщение vav »

HQ0 писал(а):Не могу ничего сказать на этот счет. Вопрос решается стилями.
Ок, наверное глупый вопрос, но задам:
я хочу чтобы изображение в виджете было слева, справа обтекался текстом ( на картинке 1). задаю соответствующий див с флоат:лефт во вьюхе виджета <?php echo CHtml::image(Yii::app()->baseUrl."/images/".$model->image); ?> но дело в том, что получается вот как:( на картинке 2)

[img]]http://ipic.su/img/img7/fs/dchempng.1410385684.png[/img]
HQ0
Сообщения: 182
Зарегистрирован: 2012.10.17, 17:21

Re: Виджет показа нескоьких новостей

Сообщение HQ0 »

Попробуй всё-таки разобраться как работают стили — вот пример написанный на голени http://jsfiddle.net/hwxcbhok/
vav
Сообщения: 91
Зарегистрирован: 2014.07.16, 18:07

Re: Виджет показа нескоьких новостей

Сообщение vav »

HQ0 писал(а):Попробуй всё-таки разобраться как работают стили — вот пример написанный на голени http://jsfiddle.net/hwxcbhok/
да я что-то в фориче потерялся:

Код: Выделить всё

<div class="newswidg">
    
<?php if (!empty($models)): ?>
    
        <?php foreach ($models as $model): ?>
    <div class="newswidgimg">      <?php echo CHtml::image(Yii::app()->baseUrl."/images/".$model->image); ?>  </div>
          <?php echo $model->title ?> 
             <?php echo $model->adress ?>  
            
        <?php endforeach ?>    
    
<?php endif ?> 
</div>

Код: Выделить всё

.newswidgimg {
    float: left;
    width: 350px;
    margin: 0 5px 5px 0;
}

.newswidg {
    float: left;
    margin: 0 5px 5px 0;
} 
В итоге имею - всея картинки слева, IMG1IMG2IMG3 а справа все описания T1T2T3
vav
Сообщения: 91
Зарегистрирован: 2014.07.16, 18:07

Re: Виджет показа нескоьких новостей

Сообщение vav »

Вроде разобрался, но буду держать вас в курсе :D
vav
Сообщения: 91
Зарегистрирован: 2014.07.16, 18:07

Re: Виджет показа нескоьких новостей

Сообщение vav »

а блин, подскажите пожалуйста, как в моем выводе изображение

Код: Выделить всё

<?php echo CHtml::image(Yii::app()->baseUrl."/images/".$model->image); ?>
обрамить в бутстраповский

Код: Выделить всё

<?php $this->widget('bootstrap.widgets.TbThumbnails', array(
    'dataProvider'=>$listDataProvider,
    'template'=>"{items}\n{pager}",
    'itemView'=>'_thumb',
)); ?>
?
Ответить