Как переопределить метатеги из layout
-
- Сообщения: 13
- Зарегистрирован: 2019.08.09, 15:34
Как переопределить метатеги из layout
Здравствуйте уважаемые, в ходе разработки простого сео модуля, который принудительно должен переопределять метатеги на указанной странице, столкнулся с загвоздкой, не могу переопределить метатеги из layout, если регистрация метатега происходила во вьюшке, все теги находятся тут $this->head() , прошу помощи, объясните как переопределить или как реализовать данный функционал правильным путем не упираясь рогами в данное ограничение.
-
- Сообщения: 13
- Зарегистрирован: 2019.08.09, 15:34
Re: Как переопределить метатеги из layout
Не хотелось бы делать кустарным способом, но покатолько переопределить в наглую $this->metaTags[0] = 'Текст'
-
- Сообщения: 910
- Зарегистрирован: 2019.08.13, 01:49
Re: Как переопределить метатеги из layout
Вьюха
Контроллер
Выведет
Код: Выделить всё
$this->registerMetaTag(['name' => 'keywords', 'content' => 'SEO Keywords'], 'seo_keywords');
$this->registerMetaTag(['name' => 'description', 'content' => 'SEO Description'], 'seo_description');
Код: Выделить всё
$content = $this->getView()->render('index', [
'param' => $param,
], $this);
Yii::$app->view->registerMetaTag(['name' => 'keywords', 'content' => 'New SEO Keywords'], 'seo_keywords');
Yii::$app->view->registerMetaTag(['name' => 'description', 'content' => 'New SEO Description'], 'seo_description');
return $this->renderContent($content);
Код: Выделить всё
<meta name="keywords" content="New SEO Keywords">
<meta name="description" content="New SEO Description">
-
- Сообщения: 13
- Зарегистрирован: 2019.08.09, 15:34
Re: Как переопределить метатеги из layout
yiiliveext писал(а): ↑2019.10.04, 19:53 ВьюхаКонтроллерКод: Выделить всё
$this->registerMetaTag(['name' => 'keywords', 'content' => 'SEO Keywords'], 'seo_keywords'); $this->registerMetaTag(['name' => 'description', 'content' => 'SEO Description'], 'seo_description');
ВыведетКод: Выделить всё
$content = $this->getView()->render('index', [ 'param' => $param, ], $this); Yii::$app->view->registerMetaTag(['name' => 'keywords', 'content' => 'New SEO Keywords'], 'seo_keywords'); Yii::$app->view->registerMetaTag(['name' => 'description', 'content' => 'New SEO Description'], 'seo_description'); return $this->renderContent($content);
Код: Выделить всё
<meta name="keywords" content="New SEO Keywords"> <meta name="description" content="New SEO Description">
Это понятно, но не то, как зарегистрировать я знаю, как переопределить из layout не знаю.
-
- Сообщения: 910
- Зарегистрирован: 2019.08.13, 01:49
Re: Как переопределить метатеги из layout
Здесь в контроллере перопределяются значения заданные во вьюхе.anton12rus писал(а): ↑2019.10.04, 19:58 Это понятно, но не то, как зарегистрировать я знаю, как переопределить из layout не знаю.
-
- Сообщения: 13
- Зарегистрирован: 2019.08.09, 15:34
Re: Как переопределить метатеги из layout
yiiliveext писал(а): ↑2019.10.04, 20:04Здесь в контроллере перопределяются значения заданные во вьюхе.anton12rus писал(а): ↑2019.10.04, 19:58 Это понятно, но не то, как зарегистрировать я знаю, как переопределить из layout не знаю.
По вашей схеме мне нужно в каждый контроллер засунуть переопределение? если так, то меня это не устраивает, не удобно.
-
- Сообщения: 910
- Зарегистрирован: 2019.08.13, 01:49
Re: Как переопределить метатеги из layout
Я без понятия как у вас там реализован ваш seo модуль. Для всех вьюх можете использовать событие View::EVENT_BEFORE_RENDERanton12rus писал(а): ↑2019.10.04, 20:12 По вашей схеме мне нужно в каждый контроллер засунуть переопределение? если так, то меня это не устраивает, не удобно.
Код: Выделить всё
Event::on(\yii\web\View::class, \yii\web\View::EVENT_BEFORE_RENDER, function ($event) {
$event->sender->registerMetaTag(['name' => 'keywords', 'content' => 'New SEO Keywords'], 'seo_keywords');
$event->sender->registerMetaTag(['name' => 'description', 'content' => 'New SEO Description'], 'seo_description');
});