Как в Yii разместить тег или код только на главной странице через main.php?

12
CK
На сайте с 26.02.2016
Offline
40
2409

Вопрос вот в чем, известно, что если мы просто вставим в main.php во фронтэнде тег <h2>Привет</h2>, то он продублируется на всех страницах. А можно ли для этого тега <h2> указать к примеру только главную страницу через route? Ну, чтобы тег показывался только на главной странице, но был добавлен напрямую в main.php, как-нибудь чрез такой код может.

<?php if ($this->route != 'site/index'): ?><? endif; ?>

И как эту все правильно записать?

dimsog
На сайте с 08.08.2011
Offline
149
#1

Можно в контроллере, в Yii::$app->params записать какое-то значение и в main.php проверить на это значение.

ihor vps -> ihc.ru
php.developer
На сайте с 22.11.2010
Offline
94
#2

Yii какой версии?

TF-Studio
На сайте с 17.08.2010
Offline
334
#3

если речь про 1 ветку, то главная - попадает в index контролер и экшн.

так как бы рендерим данные и ок.

или во вьюхе. у морды свой шаблон по идеи должен быть

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).
CK
На сайте с 26.02.2016
Offline
40
#4
dimsog:
Можно в контроллере, в Yii::$app->params записать какое-то значение и в main.php проверить на это значение.

Ну да я в принципе так и сделал, но все же думал может как-то через route можно

---------- Добавлено 16.03.2017 в 21:56 ----------

php.developer:
Yii какой версии?

В composer написано, что вторая

---------- Добавлено 16.03.2017 в 22:05 ----------

TF-Studio:
если речь про 1 ветку, то главная - попадает в index контролер и экшн.
так как бы рендерим данные и ок.
или во вьюхе. у морды свой шаблон по идеи должен быть

Да у морды свой шаблон, но в принципе я и вставил туда тег. Но все же может можно как-то строго указать страничку в main.php для отображения тега или какого-нибудь другого элемента.

Ну, к примеру, может возникнуть такая ситуация, есть сайт у него есть только main.php, шаблон для контактов и шаблон для постов, в постах мета-тег Тайтл, Дескрипшн и Кейвордс есть уже, на страничке Контакты нет и не нужен, а вот на главной надо вывести только <meta name="description" content="Дискр">. Вот тут бы помогло, указание на какой странице показывать этот МетаТег. Может есть идеи как это реализовать?

php.developer
На сайте с 22.11.2010
Offline
94
#5

Через route не стоит, имхо. Если цель привязать к конкретному экшену, то используйте в условии эти данные:


Yii::$app->controller->id
Yii::$app->controller->action->id

Доступны во вьюхах(и в лэйауте), и хранят названия контроллера и экшена, соответственно.

TF-Studio
На сайте с 17.08.2010
Offline
334
#6

вообще мета-теги спокойно через контролер ставятся

php.developer
На сайте с 22.11.2010
Offline
94
#7
TF-Studio:
вообще мета-теги спокойно через контролер ставятся

Слишком просто для ТС)

TF-Studio
На сайте с 17.08.2010
Offline
334
#8

Мне кажется, что ВП/и_иже_с_ними для ТС куда проще.

что-то много тем стало про yii

CK
На сайте с 26.02.2016
Offline
40
#9
php.developer:
Слишком просто для ТС)

:) Да нее, я как раз и ищу способ проще, сам я новичок в Yii, второй день разбираю. Уже сам запутался, куча файлов, папочек в нем, никак не могу въехать в логику Yii. Подскажите подробнее как через контроллер можно добавить свой Дискрипшн только на Главную страницу сайта, при этом не меняя метатеги на остальных страницах.

Добавил в шаблон главной index.php код для дискрпшна:

if ($metaDescription = Option::getOption('homeMetaDescription')) {

$this->registerMetaTag([ 'name' => 'description',

'content' => $metaDescription

]);

}

А че дальше делать? Где его вызывать? В main.php надо ж че-то указать, а все что я указываю нифига не работает, вернее как работает, но дублируется на остальных страницах естественно

S
На сайте с 30.09.2016
Offline
469
#10
ChrisKorr:
второй день разбираю

Маловато будет...:)

ChrisKorr:
куча файлов, папочек в нем, никак не могу въехать в логику Yii
Попробую догадаться: как и у других фреймворков, вся эта куча файлов и папочек - некие "библиотеки", которые нужно применить в своих файлах. То есть Yii - это база, а логика за Вами.
Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий