PHP - нужна система шаблонов, которая может читать из источника данных - PullRequest
1 голос
/ 04 марта 2012

для моего проекта - в конце процесса создается форма. В моей старой системе это была комбинация Regex + HTML (которую я узнал, не очень приятно поддерживать:))

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

Я также хотел бы включить , если и , еще , условия

Надеюсь, я достаточно ясно.

Я приведу очень простой пример кода из моей системы шаблонов

<html> 
  <body>
      <table>
         <tr>
            <td>
               Building
            </td>
            <td>
               <mi:seperated  seperator=", " source="building" key="type" />
            </td>
         </tr>
         <tr>
            <td>
                Construction
            </td>
            <td>
              <mi:seperated  seperator=", " source="house" key="construction" default="N/A" />
            </td>
         </tr>
         <tr>
            <td>
                Floor
            </td>
            <td>
              <mi:value source="house" key="floor" default="N/A" />
            </td>
         </tr>
      </table>
  </body>
</html>

и конечный результат будет выглядеть следующим образом.

<html> 
  <body>
      <table>
         <tr>
            <td>
               Building
            </td>
            <td>
               Double Storey, Domestic dwelling
            </td>
         </tr>
         <tr>
            <td>
                Construction
            </td>
            <td>
              6 Bedrooms, Brick Veneer
            </td>
         </tr>
         <tr>
            <td>
                Floor
            </td>
            <td>
               N/A
            </td>
         </tr>
      </table>
  </body>
</html>

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

edit: также просто заметка. функция обратного вызова предназначена для обработки вывода HTML (поскольку некоторые теги могут создавать сложный вывод)

1 Ответ

0 голосов
/ 04 марта 2012

Если вы используете Smarty, вы можете создать плагин для обработки ваших пользовательских тегов.Немного о плагинах для Smarty http://www.smarty.net/docs/en/plugins

Полагаю, вам нужно посмотреть на что-то вроде функции блока

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