h1 в видах

Уже исправленные репорты или принятые предложения
Ответить
rygoravich
Сообщения: 7
Зарегистрирован: 2015.08.19, 02:19

h1 в видах

Сообщение rygoravich »

Сорри, если вопрос глупый, я только разбираюсь пока с yii, но - зачем всех дефолтовых (как минимум в шаблоне base) и создаваемых gii представлениях обязательно присутствует строка <h1><?= Html::encode($this->title) ?></h1> ?

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

Re: h1 в видах

Сообщение ElisDN »

Не всегда в H1 будет $this->title, так что не логичнее.
andrei.obuhovski
Сообщения: 610
Зарегистрирован: 2015.07.16, 10:50

Re: h1 в видах

Сообщение andrei.obuhovski »

Оно то может и логично, но тогда gii придется еще каждый раз генерировать layout и прописывать его в контроллере.
rygoravich
Сообщения: 7
Зарегистрирован: 2015.08.19, 02:19

Re: h1 в видах

Сообщение rygoravich »

ElisDN писал(а):Не всегда в H1 будет $this->title, так что не логичнее.
Почему же не всегда, если в том же самом файле этот самый $this->title и устанавливается? Строка чуть повыше из того же самого файла, сгенерированного gii:

$this->title = 'Content Items';

Т.е. установив для компонента вида заголовок мы его можем выводить в шаблоне. Зачем усложнять виды еще и выводом? В конце концов не все виды генерируются, а значит, чтобы получить страницу с заголовком его нужно прописывать в каждом виде ручками. Ведь этот же title используется для тега <title> при подключении шаблона.

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

Re: h1 в видах

Сообщение ElisDN »

rygoravich писал(а):Почему же не всегда, если в том же самом файле этот самый $this->title и устанавливается?
Потому что не всегда:

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

<?php
$this->title = $post->meta_title;
?>
<h1><?= Html::encode($post->name) ?></h1>
Так что при первой же необходимости заменить H1 придётся либо извращаться, либо возвращать всё обратно.

И во-вторых, по HTML5 вместо дивов семантичнее использовать <article> и <section> на разных страницах:

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

<article>
<h1><?= Html::encode($post->title) ?></h1>
<?= Yii::$app->formatter->asHtml($post->content) ?>
</article>

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

<section>
<h1><?= Html::encode($page->title) ?></h1>
<?= Yii::$app->formatter->asHtml($page->content) ?>
</section>
Это в layout не вынесешь.

Так что в своём проекте переносите куда угодно. А в общеупотребительном шаблоне пусть лучше остаётся как есть.
rygoravich
Сообщения: 7
Зарегистрирован: 2015.08.19, 02:19

Re: h1 в видах

Сообщение rygoravich »

ElisDN, спасибо за разъяснение.

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

Re: h1 в видах

Сообщение ElisDN »

rygoravich писал(а):но понял, что могут быть и другие мнения :)
Вот с этого осознания и надо всёгда начинать :)
Ответить