Динамические макеты страниц с шаблонами Smarty - PullRequest
1 голос
/ 24 сентября 2011

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


ВОПРОС 1: как использовать разные макеты для разных разделов сети приложение. например скажем facebook.com. Он использует один макет для своей индексной страницы, а другой - для своей страницы входа, а другой - для своей страницы профиля. Как это сделать с помощью шаблонов Smarty? Как повторно использовать шаблоны, разделять их и использовать их?


ВОПРОС 2: Как отображать динамические сообщения об ошибках в шаблонах Smarty на основе различные программные решения. Например, снова давайте посмотрим на facebook.com. когда Вы посещаете facebook.com с отключенным JavaScript, он отображает сообщение с просьбой включить JavaScript. Когда вы заходите на чей-либо профиль без входа в систему, он отображает другой заголовок и панель регистрации вверху. Когда вы указали неверные учетные данные, в этом же шаблоне отображается сообщение об ошибке. Когда facebook.com нужно сделать какое-то объявление для его пользователей это отображается, когда мы зашли на нашу домашнюю страницу? Как делать эти вещи с умом?


ВОПРОС 3: Как обрабатывать CSS-стили различных шаблонов. Как использовать JavaScript с различными шаблонами?


Эти сценарии могут звучать как обычные, но для меня это информация будет как золото. Я очень ценю любую помощь от любого из вас, кто видел это. Если вы сможете объяснить эти вещи с хорошим примером кода, это будет огромной поддержкой для меня.

[Подробное объяснение будет с благодарностью]

Спасибо

1 Ответ

1 голос
/ 27 октября 2011

Как вы знаете, smarty - это движок шаблонов,

На ваш вопрос 1:

Вы можете решить, какой шаблон показывать, вызвав функцию display ();

Пример:

$smarty->display("header1.tpl");
          $smarty->display("header1.2pl");
      etc..

или вы можете включить соответствующие файлы tpl в соответствии с условиями, переданными в tpl. Пример:

$smarty->assign("type",$type);

затем в tpl вы можете включить соответствующие файлы tpl следующим образом

{if $type=='condition1'}
  {include file="file1.tpl"}
{elseif $type=='condition2'}
{include file="file2.tpl"}
{/if}

На ваш вопрос 2: Вы можете отправлять ошибки в tpl и отображать их следующим образом

$smarty->assign("error",$errroMessage);

Тогда в тпл

enter code here

{$error}
...