Вывод метатегов из БД

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
bvlata
Сообщения: 16
Зарегистрирован: 2015.02.13, 02:35
Откуда: Екатеринбург
Контактная информация:

Вывод метатегов из БД

Сообщение bvlata »

Всем привет! Как ни странно, но тема организации динамического вывода метатегов похоже не обусждается в сети, видимо всем всё, кроме меня, понятно. Это даёт шанс. Пытаюсь вывести метатеги на полной странице статьи из БД, в которой есть колонки metakey и metadesc. Но если заголовок в <head></head> выводится, то метатеги нет. Пожалуйста. разъясните как это можно всё же сделать?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Вывод метатегов из БД

Сообщение ElisDN »

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

$this->title = $model->title;

$this->registerMetaTag([
    'name' => 'description',
    'content' => $model->metadesc,
]);
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Вывод метатегов из БД

Сообщение ElisDN »

А keywords уже давно бесполезны.
Аватара пользователя
bvlata
Сообщения: 16
Зарегистрирован: 2015.02.13, 02:35
Откуда: Екатеринбург
Контактная информация:

Re: Вывод метатегов из БД

Сообщение bvlata »

Дмитрий! Странно, но данная конструкция:

<?php $this->title = $article->title;
$this->registerMetaTag([
'name' => 'description', 'content' => "$article->metadesc" ]);
?>

Выводит в layouts/main.php для модели Article.php следующий результат:
<title></title>
<meta name="description" content="">
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Вывод метатегов из БД

Сообщение ElisDN »

В "$article->metadesc" кавычки не нужны.

Видимо $article->title и $article->metadesc пустые.
Аватара пользователя
bvlata
Сообщения: 16
Зарегистрирован: 2015.02.13, 02:35
Откуда: Екатеринбург
Контактная информация:

Re: Вывод метатегов из БД

Сообщение bvlata »

На отдельной странице http://attraction.loc/site/view?id=1 в виде views/site/single.php мы видим элемент массива:
"string(79) "Метатег: Расширенный шаблон Advanced в Yii Framework"

т.е. $article->metadesc не пустой, но в виде views/layouts/main.php:

"NULL array(0)"

т.е. вообще в main.php ничего не передаётся, хотя в function actionView($id) контроллера SiteController все параметры перечислены:

$model = new Article();
$article = Article::findOne($id);
$categories = Category::find()->all();
$comments = $article->getArticleComments();
$commentForm = new CommentForm();
$article->getMetaDesc();

Совершенно не понятно, почему?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Вывод метатегов из БД

Сообщение ElisDN »

Ну так помещайте конструкцию в views/site/single.php, а не в views/layouts/main.php
Аватара пользователя
bvlata
Сообщения: 16
Зарегистрирован: 2015.02.13, 02:35
Откуда: Екатеринбург
Контактная информация:

Re: Вывод метатегов из БД

Сообщение bvlata »

Дмитрий! Огромное спасибо, всё получилось. В голове пока каша, так что не всегда видны очевидные вещи.
Ответить