[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Есть специалисты по Yii?
Страницы: 1, 2, 3, 4, 5, 6
twin
Вот есть в Yii класс CViewAction, позволяет легко и просто сделать статические страницы. Примерно так:
class StatController  extends CController
{

public function actions()
{
return array(
'about' => array(
'class' => 'CViewAction',
'basePath' => 'application.views.stat',
'viewParam' => 'page',
'defaultView' => 'contact',
),
);

}

}


А как в таком разе быть с метаданными? Где их обычно хранят и как выводят при такой раскладке?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
SlavaFr
Николай, тут есть примерчик, в котором можно так же при помощи Yii::app()->clientScript->registerMetaTag() сделать : http://www.yiiframework.com/wiki/54/simplified-meta-tags/

_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
twin
Вы не поняли. Я знаю как выводятся метатеги. В обычном контроллере, где я контент получаю из БД все просто. Там где контент, там и метаданные. Получил в модели и прописал как положено через clientScript

Тут другое дело. Класс CViewAction сам подхватывает нужные шаблоны, не нужно писать акшены. Просто складываешь статические странички в файлах в папку stat и он их вытаскивает в зависимости от ссылки. Собственно я привел полный код контроллера, больше там ничего не нужно. Все работает.

Но метаданные то где брать? Где их хранить? Даже не в этом вопрос. Как их получить, если нет акшенов, если я использую для статических страниц CViewAction?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Значит я в каждом файле должен определить свойства метатегов. Вот так:
<?php  $this->m_title = 'test'; ?>

Тут контент статической страницы


В приципе это логично, я так и думал. Просто нет опыта с Yii, думал может есть что-либо специальное на этот счет.

Спасибо.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Очень жаль, что нет возможности менять их из админки... Только если выводить полный текст файла. Не совсем это красиво.

Других способов хранения метаданных нету?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
kaww
C Yii не приходилось работать, но как понял нужно сделать возможным редактирование мета тегов для страниц, которые не хранятся в базе, а выводятся простым рендерингом view-скрипта.
Как вариант, завести конфиг (или таблицу если страниц много), в котором собственно и хранить метатеги:
//static_pages_meta.php
return array(
'about' => array(
'title' => 'Meta title',
'description' => 'Meta Description',
'keywords' => 'Meta keywords'
)
// .... other pages
);

Код контроллера
//$pageName - имя страницы, полученное из параметров запроса;
$pagesMeta = include PATH_TO_CONFIG . '/static_pages_meta.php';
if (isset($pagesMeta[$pageName])) {

$this->view->meta = $pagesMeta[$pageName];//или как там передать во view
//либо установить с помощью Yii::app()->clientScript->registerMetaTag()


}

Добавтить в админку интерфейс для редактировани конфига
twin
Этот вариант я тоже рассматривал. Вобщем то годный вариант, единственная засада в $pageName.

Не могу найти, где это расколупать. Вот так работает

public function actions()
{
$model = new StatModel();
$meta = $model->getMetaData($_GET['page']);
$this->m_title = $meta['m_title'];
$this->m_keywords = $meta['m_keywords'];
$this->m_description = $meta['m_description'];

return array(
'about' => array(
'class' => 'CViewAction',
'basePath' => 'application.views.stat',
'viewParam' => 'page',
'defaultView' => 'contact',
),
);

}

но это очень некрасиво, когда GET в классе. Может подскажет кто, где нарыть нужное свойство?.



_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
kaww
Цитата (twin @ 3.07.2013 - 16:04)
но это очень некрасиво, когда GET в классе.

В фреймворке есть абстракция над _GET и _POST. Получить из гет:
$pageName= Yii::app()->request->getQuery('page', null);
twin
Ай спасибо!!!
Вот это мне и нужно было с самого начала.
Век не забуду. smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Invis1ble
Цитата (kaww @ 3.07.2013 - 19:09)
Цитата (twin @ 3.07.2013 - 16:04)
но это очень некрасиво, когда GET в классе.

В фреймворке есть абстракция над _GET и _POST. Получить из гет:
$pageName= Yii::app()->request->getQuery('page', null);

Цитата (twin)
Ай спасибо!!!
Вот это мне и нужно было с смого начала.


Цитата
абстракция


Цитата
Вот это мне и нужно было



Николай, ты ли это?! :blink:

:lol: :lol: :lol: :lol: :lol:

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

twin
Мне не важны формулировки))) Сейчас мне важнее, чтобы работало. Я уже в фреймворк по уши залез в поисках, инфу не могу найти толковую нигде.

Так что хоть горшком назови, лишь бы варило))

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Invis1ble
twin
да не, я не о формулировках; просто испугался что тебя похитили инопланетяне и заразили ООПухолью biggrin.gif

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

twin
Не. Просто появилась острая необходимость поработать с Yii. Свои проекты я конечно пишу по своему, но уметь работать с фреймворком никто же не запрещает)))

Если я люблю ходить пешком, это не значит, что нужно съесть права и сжечь машину)))
Просто ехать на ней в булочную - это не наш метод.

Наши люди в булочную на такси не ездють. (с) smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.