Сделайте простые подробные частичные представления с помощью Code Igniter - PullRequest
2 голосов
/ 30 июля 2011

Я хотел бы встроить представления "глубоко":

index.php:

<html>
  <body>
    <?= contents_of('page') ?>
  </body>
</html>

page.php:

<div><?= contents_of('section') ?></div>

section.php:

<span>Hello</span>

Что бы вывести:

<html>
  <body>
    <div><span>Hello</span></div>
  </body>
</html>

Я пытался использовать библиотеку Contentful для Codeigniter, которая довольно близка к системе шаблонов Rails, но я не имею ни малейшей идеи встроить еще один уровень глубины.

Есть идеи?

Ответы [ 3 ]

0 голосов
/ 30 июля 2011

Я предлагаю вам использовать (или написать собственную) некоторую библиотеку шаблонов. Причина в том, что будет трудно управлять данными и связывать их, как вы это делали сейчас. Идея использования библиотеки шаблонов состоит в том, чтобы собрать все ваши файлы представления, а затем поместить их в каждую правильную позицию соответственно. Или, по понятной причине, я думаю, что лучше всего будет изменить вашу недавнюю схему структуры представления, чтобы две глубины или меньше (с концепцией «частичного» представления) были бы вашей лучшей ставкой.

0 голосов
/ 31 июля 2011

Наконец, я создал свою собственную библиотеку для обработки того, что мне нужно: https://github.com/ldiqual/codeigniter-pview

Спасибо за ваши ответы, так или иначе:)

0 голосов
/ 30 июля 2011

Вы можете просто include файлы напрямую.

В CodeIgniter на все файлы ссылаются из основного index.php, поэтому ваши пути к файлам будут оттуда.Используйте include, а не include_once, чтобы включить страницы несколько раз.Пока вы не создаете функции или другие уникальные элементы в представлениях, которые могут конфликтовать при включении несколько раз, все будет в порядке.

Пример:

ОСНОВНОЕ представление

<html>
  <body>
    <?php include('application/views/page.php') ?>
  </body>
</html>

Просмотр страницы

<div><?php include('application/views/section.php') ?></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...