Где в моем файле .phtml сказать «использовать» файл layout.phtml, который я создал? - PullRequest
0 голосов
/ 28 февраля 2010

Я как бы потерялся.

Я создал своего рода «главную страницу», которую я хочу использовать для страницы. Где я это заявляю?

MainLayout.phtml

<html>
    <head>
    </head>
    <body>  
        <?php echo $this->layout()->content; ?>
        <div>
            <ul>        
                <li><a href="#">Navigation</a></li>
                <li><a href="#">Navigation</a></li>
                <li><a href="#">Navigation</a></li>
                <li><a href="#">Navigation</a></li>
                <li><a href="#">Navigation</a></li>
            </ul>
        </div>
    </body>
</html>

index.phtml

<?php echo $this->doctype() ?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <?php echo $this->headMeta() ?>
        <meta name="language" content="en" />
        <title><?php echo $this->escape($this->title) ?></title>
    </head>
    <body>
        <h1>This is the first page I made.</h1>

    </body>
</html>

Я использую Zend Framework.

Ответы [ 2 ]

3 голосов
/ 28 февраля 2010

В основном то, что сказал Паскаль, правильно: когда используется Zend_Layout, он вставит содержимое скрипта вида в главный макет, где

echo $this->layout()->content;

называется. Поскольку это вставка, вы не включаете всю HTML-страницу. В вашем примере шаблон и макет содержат полную страницу с элементами HTML, HEAD и BODY, что приводит к неверной разметке.

Однако, поскольку сценарии просмотра обрабатываются до сценариев макета, вы можете установить макет из сценария просмотра через помощник по макету , используя

$this->layout()->setLayout('foo');

Вы также можете установить макет из контроллера

$this->_helper->layout->disableLayout();

И, конечно, как и все в ZF, его можно настроить и из application.ini. Zend_Layout Quickstart действительно лучший способ узнать об этом компоненте.

1 голос
/ 28 февраля 2010

Вы не говорите ни в одном из этих файлов, что index.phtml должен быть встроен в layout.phtml: компонент Zend_Layout сделает это за вас:

  • Содержимое будет сгенерировано страницей (с использованием index.phtml)
  • И оно будет введено в свойство content макета (имя этого свойства, конечно, настраивается)

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


Для получения дополнительной информации и подробных объяснений и примеров, вы можете взглянуть на:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...