使用Agavi进行MVC编程简介,第3部分:使用Agavi添加验证和管理功能2

使用一个新的主模板

从 图 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。

时间: 2024-11-05 18:36:15

使用Agavi进行MVC编程简介,第3部分:使用Agavi添加验证和管理功能2的相关文章

使用Agavi进行MVC编程简介,第5部分

使用Agavi进行MVC编程简介,第5部分:为Agavi应用程序添加分页.上传文件和定制输入验证器 简介 在本系列的第 4 部分结束之后,您已经具备一个功能齐全的 Web 应用程序,该应用程序包含管理模块.搜索引擎和 XML 输出功能.现在,您可能对本文讨论的主题摸不着头脑,因为 Web Automobiles Sales Platform (WASP) 应用程序的基本需求已经得到满足. 在最后一篇文章中,我将讨论一些您在构建 Web 应用程序时必须使用的额外技术和概念.这些技术覆盖较大的范围,

使用Agavi进行MVC编程简介,第4部分

使用Agavi进行MVC编程简介,第4部分: 创建一个带有多种输出类型(XML.RSS 或SOAP)的Agavi搜索引擎 简介 在本系列的第 3 部分中,您经历了构建基于 Web 的应用程序时经常遇到的一个任务:实现一个允许管理员通过 Web 界面执行 CRUD 操作的管理模块.您还探索了 Agavi 的安全模型,构建了用于验证用户的登录系统,以保护对应用程序资源的访问. 现在继续 Agavi 学习,为这个 WASP(Web 汽车销售平台)示例应用程序添加更多功能.您将实现一个搜索引擎,允许用户

使用Agavi进行MVC编程简介,第2部分 (二)

使用Agavi进行MVC编程简介,第2部分:使用Agavi和Doctrine添加表单和数据库支持2 获取数据库记录 现在,Agavi.Doctrine和MySQL之间的通信已经畅通,接下来需要编写一个ViewAction,以从MySQL数据库获取并显示汽车列表.首先,使用一些示例记录填充 listing 表:这方便您在操作的初始开发阶段对其进行测试: mysql> INSERT INTO listing (RecordID, RecordDate, OwnerName, OwnerTel, Ow

使用Agavi进行MVC编程简介,第2部分 (一)

使用Agavi 进行MVC编程简介,第2部分: 使用Agavi和Doctrine添加表单和数据库支持1 简介 在本系列的第 1 部分中,我介绍了Agavi并解释了一些特性,这些特性让 Agavi 适合用于构建可扩展.遵从标准的Web应用程序.通过使用样例应用程序 Web Automobiles Sales Platform (WASP),我逐步向您展示了创建新的Agavi 项目的基础知识,帮助您理解 Agavi 推荐的文件系统布局,并熟悉 Agavi 的命令行构建脚本.我还介绍了所有 Agavi

使用Agavi进行MVC编程简介,第1部分:使用Agavi开辟一个新世界

简介 如果您是一位严肃的PHP开发人员,您可能已经了解(甚至使用过)PHP应用程序开发框架,比如Symfony.CakePHP和Zend Framework.这些框架提供全面的API,几乎囊括大部分应用程序的需求,并且是PHP应用程序开发的坚实基础.您可以轻松地将它们与第三方库或社区开发的组件集成起来,以实现其他功能. 尽管以上列出的框架无疑是最流行的,但它们却不是仅有的:每个月都会有新的框架出现.这个系列关注一个框架:Agavi,它是一个灵活并且可伸缩的框架,值得专业的PHP开发人员考虑采用.

[Qt教程] 第31篇 网络(一)Qt网络编程简介

[Qt教程] 第31篇 网络(一)Qt网络编程简介 楼主  发表于 2013-8-28 17:04:17 | 查看: 515| 回复: 0 Qt网络编程简介 版权声明 该文章原创于作者yafeilinux,转载请注明出处! 导语 从这一节开始我们讲述Qt网络应用方面的编程知识.在开始这部分知识的学习之前,大家最好已经拥有了一定的网络知识和Qt的编程基础.在后面的教程中我们不会对一个常用的网络名词进行详细的解释,对于不太了解的地方,大家可以参考相关书籍. 不过,大家也没有必要非得先去学习网络专业知

《JavaScript和jQuery实战手册(原书第3版)》---第1章 编写第一个JavaScript程序 1.1 编程简介

本节书摘来自华章出版社<JavaScript和jQuery实战手册(原书第3版)>一书中的第1章,第1.1节,作者David Sawyer McFarland,姚待艳 李占宣 译,更多章节内容可以访问"华章计算机"公众号查看. 第1章 编写第一个JavaScript程序 HTML自身并没有太多智能:它不能做数学运算,不能判断某人是否正确填写了一个表单,而且不能根据Web访问者的交互来做出判断.基本上,HTML让人们阅读文本.观看图片或视频,并且单击链接转向拥有更多文本.图片

asp.net的MVC编程、MV编程以及URL重写

 前一段时间做一个网站项目,使用win2003+.net2.0开发:在学习了一些.net的相关知识后,并考虑到此项目需要多人合作,以及架构清晰.URL重写等优点,决定用MVC方式开发.但微软的.net MVC框架据说要下半年才出正式版,而且还需要.net3.5,其他的MVC框架又不熟悉,估计也需要一段时间学习.由于开发时间比较紧,我们开发小组中也没有一个对.net及.net MVC框架非常熟悉的人,所以又想转回使用传统的.net编程方式开发. 在两难之际,我想也许可以在项目需求出来前,自己试着写

套接字编程简介

套接字编程简介 项目:UNIX网络编程学习 作者:曾金龙 供职:(深圳迅雷网络技术股份有限公司) 领域:迅雷下载库研发 日期:2014-07-25 1, TCP连接图 socket编程,过眼烟云的去看,无外乎就那么几个API,但是,如果想登堂入室,必须注重里面的每一个细节. 对于TCP编程而言,最重要的是记住这么一幅图.死记的基础上理解. windows下有visio,ubuntu下只好用Dia,不是很习惯,而且不支持中文输入. 图1 TCP连接的数据包交换图 你特别需要注意的是: 1)哪个地方