Помогите вывести метатеги

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
oleg1
Сообщения: 78
Зарегистрирован: 2013.10.23, 15:13

Помогите вывести метатеги

Сообщение oleg1 »

Мне надо передать переменную из view в layout, или если это делать через registerMetaTag, как проверить в layouts наличие определенного метатега ?

У меня в layouts\base.php в head есть такой вот текст:

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

<html lang="<?= Data::getLocale() ?>">
    <title><?= Html::encode($this->title) ?></title>
    <meta name="keywords" content="<?= Html::encode($this->keywords) ?>" />
    <meta property="og:title" content="<?= Html::encode($this->title) ?>" />
    <meta property="og:description" content="<?= Html::encode($this->description) ?>" />
    <meta property="og:url" content="<?= Html::encode($this->url) ?>" />
    <meta property="og:image" content="<?= Html::encode($this->image) ?>" />
    <link rel="image_src" href="<?= Html::encode($this->image) ?>" /
    <?php $this->head() ?>
Хочу как в первой Yii, чтобы в представлении можно было написать что-то вроде :
$this->description = "фффффффф";
$this->image = "gggggggg";
$this->url = "sfsdfsddsdsfd";

И оно передалось в base.php

Bли же подскажете, если я буду писать $this->registerMetaTag(['description' => 'ааааааа']);
Как перехватить этот метатег в base.php ?

Просто если например его не будет, хочу в base.php выводить что-то по умолчанию
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Помогите вывести метатеги

Сообщение ElisDN »

oleg1 писал(а): 2018.01.30, 18:20 Хочу как в первой Yii, чтобы в представлении можно было написать что-то вроде ... и оно передалось в base.php

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

$this->params['description'] = "фффффффф";
$this->params['image'] = "gggggggg";
$this->params['url'] = "sfsdfsddsdsfd";
Последний раз редактировалось ElisDN 2018.01.30, 18:45, всего редактировалось 2 раза.
Аватара пользователя
proctoleha
Сообщения: 298
Зарегистрирован: 2016.07.10, 19:00

Re: Помогите вывести метатеги

Сообщение proctoleha »

oleg1 писал(а): 2018.01.30, 18:20 как проверить в layouts наличие определенного метатега ?
А вот взять любую html (php) страницу. Как проверить: выводится на этой странице к-л метатег, или нет?
Вот за что я не люблю линукс, так это за свои кривые, временами, руки
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Помогите вывести метатеги

Сообщение ElisDN »

oleg1 писал(а): 2018.01.30, 18:20 Bли же подскажете, если я буду писать $this->registerMetaTag(['description' => 'ааааааа']);
Как перехватить этот метатег в base.php?
Просто если например его не будет, хочу в base.php выводить что-то по умолчанию

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

if (!array_filter($this->metaTags, function ($tag) { return $tag['name'] === 'description'; })) {
    $this->registerMetaTag(['name' => 'description', 'content' => 'ааааааа']);
}
Аватара пользователя
oleg1
Сообщения: 78
Зарегистрирован: 2013.10.23, 15:13

Re: Помогите вывести метатеги

Сообщение oleg1 »

Большое спасибо Дима, жаль, что нигде в документации не написано, что есть $this->metaTags, и так очень часто. :)
Недавно разбирался с работой консоли, тоже же ведь все очень классно сделано, но нигде же ничего не описано.

Очень классный фреймворк, но документации нормальной очень не хватает, особенно для новичков. Многие используют его возможности на 30%.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Помогите вывести метатеги

Сообщение ElisDN »

oleg1 писал(а): 2018.01.30, 22:31 жаль, что нигде в документации не написано, что есть $this->metaTags, и так очень часто. :)
В методе registerMetaTag написано.
Ответить