#php #zend-framework2
#php #zend-framework2
Вопрос:
Я пытаюсь добавить некоторые пользовательские html-теги в свой сценарий head в моем макете via. контроллер. Моя конечная цель — добавить следующее в теги my head:
<noscript><meta http-equiv="refresh" content="5"></noscript>
Я могу добавить сам мета-тег обновления, используя $headMeta->appendHttpEquiv()
, но я понятия не имею, как я могу обернуть это в <noscript></noscript>
теги. Это нужно добавить только на одну страницу, но мне не нужен отдельный файл макета для этого. Я также хочу использовать любые методы и функции, которые предлагает ZF2 (если таковые имеются). Я просмотрел документированные помощники просмотра, но не могу найти ни одного, который поможет.
Есть идеи?
Ответ №1:
Вы должны быть в состоянии сделать это с помощью помощника-заполнителя.
В вашем макете:
<html>
<head>
<?=$this->placeholder('customHead')?>
[etc.]
Затем в представлении для страницы, на которой вы хотите ее разместить:
$this->placeholder('customHead')->set('<noscript><meta http-equiv="refresh" content="5"></noscript>');
смените customHead
имя на любое, какое захотите.
Редактировать: Да, вы можете сделать это в действии контроллера вместо этого:
public function someAction()
{
$viewHelperManager = $this->getServiceLocator()->get('viewhelpermanager');
$placeholder = $viewHelperManager->get('placeholder');
$placeholder->getContainer('customHead')->set('<noscript><meta http-equiv="refresh" content="5"></noscript>');
}
если вам нужно что-то сделать в нескольких местах, вы можете захотеть внедрить помощник-заполнитель в контроллер в качестве зависимости.
Комментарии:
1. Спасибо, Тим, работает очаровательно. Помечено как правильное. Есть ли какой-либо способ сделать это из контроллера вместо представления?