使用一个新的主模板
从 图 3 可以看出,AdminIndexAction 生成的摘要视图与这个 WASP 应用程序的其他公共页面拥有相同的布局和外观。这毫不奇怪,因为所有的视图都使用相同的主模板,这个主模板位于 $WASP_ROOT/app/templates/Master.php。然而,出于美学需要或者是为了在用户移动到应用程序的另一个区域时向用户提供视觉警示,客户通常要求应用程序的管理视图具有不同的外观和风格。
使用Agavi,这一点不难办到 — 只需创建一个不同的主模板,在 Agavi 中注册,然后在视图的setupHtml()方法中引用这个模板。
步骤 1:创建一个新的主模板
首先,在 $WASP_ROOT/app/templates/AdminMaster.php 创建一个新的主模板,然后使用清单20 中的代码填充该模板。
清单20. AdminMaster 模板
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<base href="<?php echo $ro->getBaseHref(); ?>" />
<link rel="stylesheet" type="text/css" href="/css/default.css" />
<link rel="stylesheet" type="text/css" href="/css/admin.css" />
<title><?php if(isset($t['_title'])) echo htmlspecialchars($t['_title']) .
' - '; echo AgaviConfig::get('core.app_name'); ?></title>
</head>
<body>
<!-- begin header -->
<div id="header">
<div id="logo">
<img src="/images/logo-admin.jpg" />
</div>
<div id="menu">
</div>
</div>
<!-- end header -->
<!-- begin body -->
<div id="body">
<?php echo $inner; ?>
</div>
<!-- end body -->
<!-- begin footer -->
<div id="footer">
<p>Powered by <a href="http://www.agavi.org/">Agavi</a>.
Licensed under <a href="http://www.creativecommons.org/">Creative Commons
</a>.</p>
</div>
<!-- end footer -->
</body>
</html>
在上述相同位置使用这些附加规则(见清单21)创建一个新的CSS文件并将它存储为 $WASP_ROOT/pub/css/admin.css。