Шаблон в шаблоне (.tpl) smarty - PullRequest
3 голосов
/ 15 января 2011

эй, Уже несколько недель я пытаюсь запрограммировать PHP-приложение с помощью умного шаблонного решения. Теперь простой вопрос для всех профессионалов: Как я могу получить шаблон в шаблоне? Один пример: index.php (page.tpl) включает мой login.php (login.tpl)

В документации Smarty я нашел эту функцию: {include file="$tpl_name.tpl"}

Но где мой контроллер login.php? Когда эта функция включает файл login.tpl, У меня есть только HTML-код или?

Может кто-нибудь объяснить мне это или дать образец / учебник?

Извините за мой плохой английский

С наилучшими пожеланиями

Ответы [ 2 ]

5 голосов
/ 15 января 2011

Этот код именно то, что вы хотите. Это позволит вам включить другой шаблон smarty из шаблона.

<html>
<head>
  <title>{$title}</title>
</head>
<body>
{include file='login.tpl'}

Все переменные, доступные для исходного шаблона, доступны для шаблона, который вы только что включили.

Я не уверен, что вы говорите о наличии только HTML-кода, возможно, вам нужна эта функция:

{include_php file='/path/to/login.php'}
2 голосов
/ 15 января 2011

Обычно файл login.tpl в вашем случае должен быть обычным шаблоном Smarty (поэтому он может содержать как html-теги, так и теги Smarty).Вы не можете включить другой контроллер от Smarty.

Насколько я понимаю, вы хотите добавить функцию входа в систему на своей странице индекса.Это можно сделать следующим образом:
1) Включите login.tpl в index.tpl, чтобы на вашей странице индекса была включена форма входа.
2) Укажите различные действия для формы входа, например"login.php", поэтому этот login.php будет вашим контроллером входа, который обрабатывает всю логику входа / выхода.
3) После успешного входа пользователя вы можете перенаправить его в index.php (или любойстраница, которую вы хотите).

Таким образом, у вас будет два отдельных контроллера: основной контроллер (отвечающий за страницу индекса) и контроллер входа, отвечающий за вход / выход из системы.Файл login.tpl в этом случае будет только шаблоном, содержащим некоторые html и, возможно, теги Smarty для отображения формы входа.

...