PageTitle из базы

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Balian
Сообщения: 21
Зарегистрирован: 2009.11.19, 19:26

PageTitle из базы

Сообщение Balian »

Начал разбираться что да как работает...сейчас пытаюсь выводить заголовок страниц и еще кое-что из базы, но пока не очень понимаю:


в CController есть методы setPageTitle и getPageTitle
в каком именно месте и как вызвать эти функции, чтобы изменить заголовок? с чтением из базы данных вроде разобрался..

Спасибо за внимание
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: PageTitle из базы

Сообщение Ekstazi »

посмотри исходники демо блога, попробуй команду crud в консоли. И увидишь.
Аватара пользователя
Ozzy
Сообщения: 269
Зарегистрирован: 2009.04.02, 15:09
Откуда: Украина, Одесса

Re: PageTitle из базы

Сообщение Ozzy »

to Balian
В контроллере, в одном из методов (в котором хотите поменять заголовок), пишите:

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

$this->pageTitle ='новый заголовок'; 
to Ekstazi
Вот не надо всех агетировать юзать консольное yii если им только титл надо добавить :) когда к примеру тебя мама в детстве учила шнурки завязывать, она ж не рассказывала из чего они сделаны и где про них почитать :)
Мой маленький блог - http://dbhelp.ru
Balian
Сообщения: 21
Зарегистрирован: 2009.11.19, 19:26

Re: PageTitle из базы

Сообщение Balian »

to Ozzy
спасибо, заработало! только я не сразу догадался, что еще нужно удалить из сгенерированных yiic представлений удалить строчку вида

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

<?php $this->pageTitle=Yii::app()->name; ?>
, которая все время переписывала заголовок :D

и еще..не слишком ли громоздко я получаю заголовок ? может быть, можно проще?

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

$sql="SELECT title FROM pages_info WHERE page='index'";
$command=Yii::app()->db->createCommand($sql);
$dataReader=$command->query();
$row=$dataReader->read();
$this->pageTitle = $row['title']; 
Аватара пользователя
Ozzy
Сообщения: 269
Зарегистрирован: 2009.04.02, 15:09
Откуда: Украина, Одесса

Re: PageTitle из базы

Сообщение Ozzy »

Можна проще.

Для pages_info создаешь модель PostInfo

И получаешь заголовок как :

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

$post_info = PostInfo::model()->findByApptributes(array('page' => 'index'));
$this->pageTitle = $post_info->title;
 
Мой маленький блог - http://dbhelp.ru
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: PageTitle из базы

Сообщение Ekstazi »

Ozzy писал(а):to Balian
В контроллере, в одном из методов (в котором хотите поменять заголовок), пишите:

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

$this->pageTitle ='новый заголовок'; 
to Ekstazi
Вот не надо всех агетировать юзать консольное yii если им только титл надо добавить :) когда к примеру тебя мама в детстве учила шнурки завязывать, она ж не рассказывала из чего они сделаны и где про них почитать :)
:D Хорошо, буду писать более экзотичные варианты.
P.S.: Я это писал к тому, что в руководстве, при изучении первой же главы, где используется команда crud User, в представлении заметен код:

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

<?php $this->pageTitle='blabla';?>
Отсюда и ответ, по соглашениям, используемым в yii, pageTitle задаётся в представлении (хотя это и не обязательно).
wra
Сообщения: 37
Зарегистрирован: 2009.10.28, 13:48

Re: PageTitle из базы

Сообщение wra »

to Balian:
А что, тайтлы хранятся в отдельной таблицы (отдельно от самой страницы)?
Или я неправильно понял?
Аватара пользователя
Ozzy
Сообщения: 269
Зарегистрирован: 2009.04.02, 15:09
Откуда: Украина, Одесса

Re: PageTitle из базы

Сообщение Ozzy »

Какая разница где харнить?
Просили показать как его задать
Мой маленький блог - http://dbhelp.ru
Ответить