Новостной блок

Вопросы и ответы по изменению функционала, смене дизайна, переносу сайта и т.п.

Модераторы: Xpycm, Koduc

Правила форума
ВНИМАНИЕ! Форум не является средством гарантированной поддержки клиентов и пользователей. Поэтому на быстрый ответ тут рассчитывать не нужно, как и на ответ вообще. Сотрудники отвечают по мере своих возможностей.

На форуме действует ограничение в 3 сообщения / сутки.
Если Вы хотите сказать "спасибо", то воспользуйтесь функцией "Повысить репутацию" - зелёная иконка "плюс" под ником ответившего.

Re: Новостной блок

Сообщение Xpycm » 30 окт 2013, 11:34

В папке view есть каталог backend - админские вьюшки

Если это создание админом новости, то:
вьюшка - protected\modules\news\views\backend\create.php
Контроллер - protected\modules\news\controllers\backend\MainController.php. Метод actionCreate()
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50

Re: Новостной блок

Сообщение gen » 30 окт 2013, 11:47

Если какой- либо код вставляю, допустим код формы, форма появляются в разделе админа "Добавить новость", но при нажатии на кнопку формы отправить новость пишет "Контроллер MainController не может найти представление "index".
gen
Прохожий
 
Сообщения: 31
Зарегистрирован: 05 окт 2013, 20:15
Очки репутации: 1

Re: Новостной блок

Сообщение bersh » 21 ноя 2013, 18:21

Код: Выделить всё
<div class="news_block">
            <p class="title"><?php echo tc('News');?></p>
            <?php
            $criteria 
= new CDbCriteria();
            $criteria->limit = 5;
            $criteria->order = 'id DESC';

            $news5 = News::model()->findAll($criteria);
            foreach($news5 as $news){
                echo CHtml::link($news->getTitle(), $news->getUrl());
                echo '<p>' . $news->getAnnounce() . '</p>'; 
                echo CHtml
::link(tt('Read more &raquo;', 'news'), $news->getUrl());                         
                echo 
'<hr>';                       
            
}
            ?>     
        </div>


Как укоратить анонс, что бы не весь анонс показывался?
bersh
Незнакомец
 
Сообщения: 9
Зарегистрирован: 10 авг 2013, 03:31
Откуда: Испания
Очки репутации: 0

Re: Новостной блок

Сообщение Koduc » 22 ноя 2013, 01:31

bersh писал(а):
Код: Выделить всё
<div class="news_block">
            <p class="title"><?php echo tc('News');?></p>
            <?php
            $criteria 
= new CDbCriteria();
            $criteria->limit = 5;
            $criteria->order = 'id DESC';

            $news5 = News::model()->findAll($criteria);
            foreach($news5 as $news){
                echo CHtml::link($news->getTitle(), $news->getUrl());
                echo '<p>' . $news->getAnnounce() . '</p>'; 
                echo CHtml
::link(tt('Read more &raquo;', 'news'), $news->getUrl());                         
                echo 
'<hr>';                       
            
}
            ?>     
        </div>


Как укоратить анонс, что бы не весь анонс показывался?


 echo '<p>' . $news->getAnnounce() . '</p>';  заменить на
 echo '<p>' . truncateText($news->getAnnounce(), 10) . '</p>'; 
10 - это количество слов, после которых будет обрезан анонос. Но при таком подходе из текста анонса также вырезаются все тэги.
-- Меньше знаешь - крепче спишь --
Аватара пользователя
Koduc
Ведущий разработчик
Ведущий разработчик
 
Сообщения: 902
Зарегистрирован: 28 дек 2011, 09:11
Очки репутации: 20

Re: Новостной блок

Сообщение gen » 23 ноя 2013, 19:09

Добрый вечер!
В приведенном ранее примере о выводе анонсов новостей на главную страницу, так понимаю использовался метод выборки из базы данных.
Подскажите как ввести/вывести массив из сессии, т.е. при помощи каких команд Yii?
Допустим $id = $row['id'];
gen
Прохожий
 
Сообщения: 31
Зарегистрирован: 05 окт 2013, 20:15
Очки репутации: 1

Re: Новостной блок

Сообщение andipas » 25 ноя 2013, 14:54

Работа с БД в yii просто, можно делать запросы по старинке http://www.yiiframework.com/doc/guide/1 ... ry-builder

и используя ActiveRecord http://www.yiiframework.com/doc/guide/1 ... tabase.dao

Вам скорее ближе 1-й вариант
Часто задаваемые вопросы. Для правки файлов notepad++, netbeans, phpStorm. Для правки CSS firebug.
Аватара пользователя
andipas
Разработчик
Разработчик
 
Сообщения: 695
Зарегистрирован: 28 дек 2011, 22:37
Очки репутации: 30

Re: Новостной блок

Сообщение gen » 25 ноя 2013, 19:53

Спасибо! Но я имел ввиду немного другое.
А именно, допустим мы берем поле базы данных sql и помещаем в переменную.
А потом на главной странице вместо писанины запроса к этой базе данных просто вставляем эту переменную:

while($row = mysql_fetch_array($query)){
....
'.$row['date_created'].'

присваиваем переменную для использования в другом месте $date_created = $row['date_created'];
....
и где надо типа того:

<div> $date_created </div>
gen
Прохожий
 
Сообщения: 31
Зарегистрирован: 05 окт 2013, 20:15
Очки репутации: 1

Re: Новостной блок

Сообщение gen » 05 дек 2013, 18:59

Добрый день!

Подскажите как в этом меню добавив еще строку array('label' => NewsModule::t('Add news'), 'url' => array('create')), допустим заменив create (файл в модуле) на другой она стала рабочей где и что добавить/ подправить!
Заранее спасибо!

[code=php][/code]

<?php
$this->pageTitle=Yii::app()->name . ' - ' . NewsModule::t('Manage news');


$this->menu = array(
array('label' => NewsModule::t('Add news'), 'url' => array('create')),
gen
Прохожий
 
Сообщения: 31
Зарегистрирован: 05 окт 2013, 20:15
Очки репутации: 1

Re: Новостной блок

Сообщение Xpycm » 05 дек 2013, 19:18

Вечер добрый.

Не совсем понял вопроса. Попробую угадать.

Посмотрите как сделано в других файлах, например: protected\modules\apartments\views\backend\update.php

Код: Выделить всё
$this->menu = array(
    array('label'=>tt('Manage apartments'), 'url'=>array('admin')),
    array('label'=>tt('Add apartment'), 'url'=>array('create')),
    array('label'=>tt('Delete apartment'), 'url'=>'#', 'linkOptions'=>array('submit'=>array('delete','id'=>$model->id),'confirm'=>tc('Are you sure you want to delete this item?'))),
);
 
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50

Re: Новостной блок

Сообщение gen » 05 дек 2013, 19:40

Вот начало файла admin.php в protected/modules/news/views/backend
Этот файл отвечает за работу новостного блока, выводит таблицу имеющихся новостей.

В верху страницы меню которое состоит из одной кнопки "Добавить новость" и вот код этой кнопки меню:

Код: Выделить всё
<?php
$this
->pageTitle=Yii::app()->name . ' - ' . NewsModule::t('Manage news');


$this->menu = array(
array(
'label' => NewsModule::t('Add news'), 'url' => array('create')),
 


Как я понял 'url' => array('create')), ссылается на файл в этом же каталоге. т.е. при нажатии на кнопку добавить новость мы исполняем этот файл, поскольку на экран в разделе админа выводится результат исполнения кода этого файла (появляется форма добавления новости) и в строке браузера появляется название файла create.

У меня есть файл в этой папке который я хочу запустить таким же способом, и вывести результат его исполнения в этом же разделе админа.
Как это сделать ?
Заранее спасибо!
gen
Прохожий
 
Сообщения: 31
Зарегистрирован: 05 окт 2013, 20:15
Очки репутации: 1

Пред.След.

Вернуться в Вопросы и помощь по изменениям

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

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

cron