«Глобальный» макет зоны в Diem, Symfony cms - PullRequest
0 голосов
/ 11 ноября 2011

Возможно ли иметь что-то вроде глобальной области, которая будет отображаться в каждом шаблоне макета одинаково?то есть, если у меня есть:

<?php echo $helper->renderArea('global.bottom', '.clearfix') ?>

в нескольких разных файлах макета (pageSuccess.php, customPageSuccess.php, homePageSuccess.php, etcSuccess.php)

Всякий раз, когда я что-то изменяю в этой областидля одного из них это меняется для всех них.Допустим, я добавляю новую зону и новый текстовый виджет в эту область на любой странице, используя макет pageSuccess.php, и изменения отображаются в каждом макете с использованием этой глобальной области.

Возможно ли это?

1 Ответ

1 голос
/ 17 ноября 2011

Итак, вы говорите, что вам нужно иметь код в некоторых шаблонах, который будет отображаться точно таким же образом для этих шаблонов.

Мой совет: используйте слоты. Например, у вас есть следующие шаблоны: helloSuccess.php и goodbyeSuccess.php, но в обоих вам нужно что-то показать (скажем, текущее время). Таким образом, вы не хотите показывать его повсюду на сайте, но некоторые шаблоны могут понадобиться.

Возможно, что layout.php (основной шаблон макета приложения) будет выглядеть примерно так:

<html>
<head>
{....}
</head>
<body>
  <div id="special_container">
    <?php if(has_slot("time")):?>
      <?php include_slot("time")?>
    <?php endif?>
  </div>
  <div class="container">
    <?php echo $sf_content ?>
  </div>
</body>
</html>

Затем каждый шаблон, который хочет что-то визуализировать в «special_container», должен реализовывать слот «time». Итак, вернемся к примеру, helloSuccess.php и goodbyeSuccess.php должны иметь в своем коде что-то вроде этого:

<?php slot('time') ?>
  <!-- custom sidebar code for the current template-->
  <h1>Time </h1>
  <p>name:  <?php echo date("D M d, Y G:i a"); ?></p>
<?php end_slot() ?>

Для получения дополнительной информации о слотах, компонентах, частичках, я действительно рекомендовал бы эту ссылку: Внутри слоя просмотра его symfony 1.2, но он практически одинаков для почти всех версий symfony, предшествующих 2.0

...