)
所以,我对Web开发一般都很陌生,而且我遇到了一个有趣的问题。
基本上,我正在使用Smarty模板引擎和PHP来创建一个基本网站。我目前拥有的是主模板,基本上是必须在网站的每个页面上使用的网站布局部分。
<!DOCTYPE html>
<html>
<head>
<title>Pet Nicknames!</title>
<link href="styles/main.css" rel="stylesheet">
</head>
<body>
<div id="websiteBody">
<div id="header">
</div>
<div class="menu">
<div class="menuContainer">
{foreach $menuButtons as $menuButton}
<a href="{$menuButton->link}"><div class="menuButton">
<span>{$menuButton->text}</span>
</div></a>
{/foreach}
</div>
</div>
<div id="content">
{block name=content}{/block}
</div>
<div id="footer">
</div>
</div>
</body>
正如您所看到的,这个主模板包含一个foreach,它基本上只获取一个从“master.php”脚本分配的数组,并从数据库中检索一组按钮。
问题是现在我想创建几个PHP页面,但是他们都应该重新使用这个模板,并且所有人都必须运行PHP脚本来检索菜单按钮。
我已经创建了一个名为“content”的块,我正在考虑使用模板继承来执行此操作...但是我仍然不清楚如何正确地重用PHP逻辑,例如for菜单,必须在网站上的所有页面上重复使用,而不必在每个PHP脚本中包含/重复它。
网页设计中围绕这个问题的“标准”方法是什么?您是否只是将这个“设置”逻辑封装在一个单独的PHP脚本中,并将其包含在需要使用主模板的所有脚本中?
谢谢大家的帮助!
答案 0 :(得分:1)
剪切<div class="menu">...</div>
并将其放在名为menu.tpl
的单独模板中,代替此div(在主模板中写入):
{include file="menu.tpl" menuButtons=$menuButtons}
file - 要包含的模板文件的名称
menuButtons - 将本地传递给模板的变量
请查看此文档了解更多信息: