ZEND_Auth, деактивировать зону навигации

Я создал страницу входа, используя Zend_Auth. Теперь мой вопрос: как я могу деактивировать области, которые загружены с моим layout.phtml?

Вот часть моего кода моего layout.phtml, которую я не хочу видеть в формах входа и выхода:

<div id="navigation">
    <ul>
            <li><a href="<?php echo $this->url(array('controller'=>'arbeitskalender', 'action'=>'index'), null, false);?>">Arbeitskalender</a></li>
            <li><a href="<?php echo $this->url(array('controller'=>'pdf', 'action'=>'index'));?>">Arbeitskalender download</a></li>
            <!--<li><a href="<?php echo $this->url(array('controller'=>'bibliothek', 'action'=>'index'));?>">Bibliothek</a></li> -->
            <!-- <li><a href="<?php echo $this->url(array('controller'=>'schwestern', 'action'=>'index'));?>">Schwestern</a></li> -->
    </ul>
</div>

Как я могу работать с разными макетами? В каком месте и как я могу их загрузить?

1 ответ

Решение

Вы можете иметь несколько макетов в приложении. Если вы создаете другой без навигации HTML и настраиваете его в своем module.config.php, вы можете просто выбрать, какой макет использовать из контроллера.

'template_map' => array(
    'layout/layout'       => __DIR__ . '/../view/layout/layout.phtml',
    'layout/layout_login' => __DIR__ . '/../view/layout/layout_login.phtml'
)

Тогда в вашем контроллере:

$this->layout('layout/layout_login');

РЕДАКТИРОВАТЬ:

В качестве альтернативы, если вы хотите динамически изменить макет, вы можете использовать Identity View Helper, чтобы проверить, вошел ли пользователь в систему или нет. например

<!-- if logged in, show logout link -->
<?php if (null !== $this->identity()) : ?>
    <a href="/logout">Logout</a>
<?php endif; ?>
Другие вопросы по тегам