Различные макеты для разных представлений в одном приложении Symfony - PullRequest
1 голос
/ 17 мая 2011

У меня есть проект Symfony 1.4 с одним приложением frontend. Это приложение имеет один модуль book с одним действием index.

У меня есть два шаблона для действия индекса: indexSuccess.mobile.php и indexSuccess.html.php. Действие установит формат так, чтобы вызывать один или другой из этих шаблонов.

Я хочу использовать разные макеты для каждого из этих двух шаблонов: layout.mobile.php и layout.html.php. Файл apps/frontend/modules/book/config/view.yml Файл используется, чтобы указать, какой макет использовать, а также какие файлы CSS и JavaScript включены в макет.

Поскольку в каждом модуле может быть только один файл view.yml, как настроить view.yml, чтобы indexSuccess.mobile.php использовал layout.mobile.php и загрузил соответствующие файлы CSS и JS, а indexSuccess.html.php использует layout.html.php и загружает свои соответствующие файлы CSS и JS?

Я хочу использовать макеты, так как в конечном итоге я добавлю еще много действий / шаблонов в этот модуль.

Ответы [ 2 ]

4 голосов
/ 18 мая 2011

Вы можете использовать метод setLayout() вашего действия для достижения этой цели. ОБНОВЛЕНИЕ для файлов css и js, вы также можете использовать действие (вызовите sfWebResponse::addStylesheet() и sfWebResponse::addJavascript()).Если вы абсолютно хотите сделать все это из view.yml, лучше всего было бы изменить имя шаблона (вернуть другой суффикс в вашем действии)

0 голосов
/ 18 мая 2011

Я не проверял, но похоже, что он делает трюк:

<?php
    // in indexSuccess.mobile.php
    decorate_with('layout.mobile');
...