Bookmark and Share

Lee's 程序人生

HTML CSS Javascript XML AJAX ATLAS C# C++ 数据结构 软件工程 设计模式 asp.net Java 数字图象处理 Sql 数据库
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

2010年2月24日

摘要: 1.1中增加了表单构建器CForm,对于表单构建器大家总是褒贬不一,有的人认为简化了工作,有的人认为把原来简单的事情复杂化了。个人认为对于构建不需要有复杂界面修饰布局的表单,表单构建器还是不错的选择,这还增加了表单的复用性。让我们看看代码,CForm是如何工作的:// action:$config = array( 'action' => array('site/login'), 'meth... 阅读全文

posted @ 2010-02-24 22:01 analyzer 阅读(659) 评论(0) 推荐(0)

摘要: Yii的使用者都知道Yii是一个基于Component开发的框架,我们平时用到的Controller,Model等其实都是Component,因此我们也可以利用Component的特性来为我们的model添加一些功能。平时我们建立的user表总是会涉及到first_name, last_name, 而在系统中我们要用到的却经常是完整人名。//action$user = User::model()-... 阅读全文

posted @ 2010-02-24 22:01 analyzer 阅读(1440) 评论(0) 推荐(0)

摘要: 10十二/090Yii: 1.1 scenario在验证中的变化1.1中对CActiveRecord中的scenario作了一些改变1.0.x的代码$user = new User;if(isset($_POST['User'])) { $user->attributes = $_POST['User']; $user->validate('register'); }在1.1以后已经不... 阅读全文

posted @ 2010-02-24 22:00 analyzer 阅读(661) 评论(0) 推荐(0)

摘要: 大家都知道Yii里为我们提供了layout效果,我们可以把一个view嵌入事先设计好的layout。但随着网站设计越来越多变,越来越复杂,光光layout内一个$content 变量在载入view似乎有时候并不能满足我们的需求。如果页面中有好几个地方需要时时变动呢? 没关系, Yii还为我们提供了Clip这个方法,这个其实有点类似与Django中的block。比如现在我们需要构建一个布局,左边是主... 阅读全文

posted @ 2010-02-24 21:59 analyzer 阅读(900) 评论(0) 推荐(0)

摘要: 最近在社区成员的强烈要求下,qiang也开始开发了Yii的GridView widget。根据qiang的意思此widget应该会在1.1rc的时候发布。不过今天当我更新svn的时候发现这个插件已经出现在zii的插件包中了,新东西当然都试下,接下来让我们看看 CGridView是怎么工作的。首先通过下面这段代码,我们在action中生成了一个dataProvider可以提供给view中的widge... 阅读全文

posted @ 2010-02-24 21:58 analyzer 阅读(2497) 评论(0) 推荐(0)

摘要: 今天当我翻阅Yii 代码的时候发现qiang还给我们提供了CDetailView这个类来完成类似的功能。两者到底有什么区别呢? 我们都知道 CGridView是根据数据表结构来生成我们需要的数据,而CDetailView是根据我们平时一直用到的model实例来生成数据。同样以上一个列子来写,看看有什么不同:$criteria = new CDbCriteria;$criteria->sele... 阅读全文

posted @ 2010-02-24 21:58 analyzer 阅读(637) 评论(0) 推荐(0)

摘要: Yii已经为我们提供了很好的控制台功能,我们可以利用控制台创建webapp,controller, action等来加速我们的开发。同时我们还可以自己来扩展控制台应用(console application)来满足我们更多的项目需求。console app 和 web app 类似,我们需要一个入口文件,默认的情况我们可以在protected目录发现这些文件(yiic.php, yiic, yii... 阅读全文

posted @ 2010-02-24 21:56 analyzer 阅读(922) 评论(0) 推荐(0)

摘要: 在 yii framework 中, 作者已经方便的为我们整合了一系列非常有用的 js 类库。当我们调用相关的 function 或者 widget 时, 框架会建立一个核心 js 文件目录的副本, 放到 assets/xxxx 临时目录下,然后自动为我们加载需要的 js 文件。怎么样? 是不是这个临时目录的位置很别扭? 那我们现在就来看一下如何修改这个核心 js目录的位置。首先在我们的项目中把 ... 阅读全文

posted @ 2010-02-24 21:55 analyzer 阅读(1091) 评论(0) 推荐(1)

摘要: Yii framework 默认情况下并没有为数据表设置 prefix 的功能。 根据作者 qiang 的说话是这个功能并不是必须的,需要的用户可以自己建立扩展。确实是这样,在 Yii framework 完全 OO 的结构下,我们可以很方便的来实现表前缀扩展功能。接下来让我们看看如何来实现:首先在我们的配置文件中 /wwwroot/protected/config/main.php 中添加下面的... 阅读全文

posted @ 2010-02-24 21:55 analyzer 阅读(1515) 评论(0) 推荐(0)

摘要: 验证码是现在很多网站增加安全性的一种方法, 在Yii Framework中,作者已经内设了CCaptcha扩展来实现验证码功能,而我们需要知道的只是如何去使用他。1. CCaptcha扩展需要有CCaptchaAction的支持,所以我们要在controller中集成actions这个方法,添加下列代码,让当前的controller支持CCaptchaAction。public function ... 阅读全文

posted @ 2010-02-24 21:54 analyzer 阅读(3758) 评论(0) 推荐(0)

摘要: 在 Yii framework 的论坛有人问,如何用 yii 的方式来生成一个下拉选项。 在这里就介绍下方法。首先我们可以通过 CHtml 帮助类中的 listData() 函数来帮助我们生成一个下拉选项所需要的数组。然后再通过同样是 CHtml 帮助类中的 dropDownList() 或者 activeDropDownList() 函数来生成我们需要的下拉选项。比如我们现在有一个 User M... 阅读全文

posted @ 2010-02-24 21:54 analyzer 阅读(958) 评论(0) 推荐(0)

摘要: 使用主题不需要编写任何代码,我们的blog应用是支持主题的。要想使用一个主题,需要先开发一个主题,主要是为其编写一些自定义的视图文件。比如使用一个名字为classic的拥有不同页面布局主题。我们需要在blog/themes/classic/views/layouts/main.php建立布局的视图文件。我们同样也需要修改应用的配置文件,来指出我们使用主题classic。returnarray(..... 阅读全文

posted @ 2010-02-24 21:53 analyzer 阅读(399) 评论(0) 推荐(0)

摘要: 一个WEB应用产品,需要对各种错误记录复杂的日志。在我们的blog应用中,我们将记录在运行中产生的错误,这些错误可能是因为程序本身的错误或者是用户错误的应用,记录这些错误可以帮助我们进一步改善我们的blog应用。我们通过如下修改应用的配置文件以使错误日志生效returnarray('preload'=>array('log'),......'components'=>array('lo... 阅读全文

posted @ 2010-02-24 21:52 analyzer 阅读(399) 评论(0) 推荐(0)

摘要: 我们的blog应用使用yii提供的模板来显示各种错误。因为风格和措辞都和我们期望的不尽相同,所以我们需要定制这些模板。因此我们在blog/protected/views/system目录下建立一套视图文件。首先我们建立error.php文件。如果一些特殊的模板不能使用,那么它将作为默认模板来先是各种错误。因为它会在错误产生时被加载,所以它不应该包含复杂的php逻辑,以免产生进一步的错误,同时也要注... 阅读全文

posted @ 2010-02-24 21:52 analyzer 阅读(382) 评论(0) 推荐(0)

摘要: 我们的blog应用就要完成了,在发布之前,我们需要做一些调整更换主页我们把文章列表页作为主页。如下修改应用的配置文件returnarray(......'defaultController'=>'post',......);因为PostController已经声明list是它的默认方法,当我们访问应用的首页是,我们将会看到post controller的list方法产生的结果。启用模式缓存因... 阅读全文

posted @ 2010-02-24 21:52 analyzer 阅读(363) 评论(0) 推荐(0)

摘要: 本节中我们建立最新评论模块,显示最新发布的评论列表建立RecentComments类我们在文件blog/protected/components/RecentComments.php中建立RecentComments类。内容如下:<?phpclassRecentCommentsextendsPortlet{public$title='RecentComments';publicfunctio... 阅读全文

posted @ 2010-02-24 21:51 analyzer 阅读(284) 评论(0) 推荐(0)

摘要: 目前访问我们各个页面的url地址看上去比较丑陋,比如说文章显式页面的地址是/index.php?r=post/show&id=1在本节中,我们讲述如何使页面地址看上去更漂亮,对SEO更友好。我们目标是在应用中可以使用如下的地址:/index.php/tag/yii: 所有有使用yii标签的文章列表页面;/index.php/posts: 最新文章的列表页面/index.php/post/1... 阅读全文

posted @ 2010-02-24 21:51 analyzer 阅读(481) 评论(0) 推荐(0)

摘要: 我们建立的应用框架已经自带了一个登陆页面。本节中,我们把这个页面转为一个名字为UserLogin的登陆模块。当用户未登录时将会在侧边栏出现。用户登陆后消失,同时先前开发的用户菜单项显示出来。建立UserLogin类像用户菜单模块一样。我们在blog/protected/components/UserLogin.php建立的UserLogin类,里面包含了用户登陆的逻辑处理,代码如下:<?ph... 阅读全文

posted @ 2010-02-24 21:50 analyzer 阅读(1036) 评论(0) 推荐(0)

摘要: 这将显示一个最常用的文章tag的列表,根据使用程度,对每个tag使用不同的样式进行修饰。创建TagCloud类我们在文件/blog/protected/components/TagCloud.php中创建TagCloud类,内容如下:<?phpclassTagCloudextendsPortlet{public$title='Tags';publicfunctiongetTagWeights... 阅读全文

posted @ 2010-02-24 21:50 analyzer 阅读(302) 评论(0) 推荐(0)

摘要: 本节中我们将开发第一个portlet——用户菜单portlet,对已经通过验证的登录用户显示一个菜单列表。包含以下四个菜单:发布评论:到未发布评论列表的超链接添加文章:到添加文章的超链接管理文章:到文章管理页面的超链接注销:注销当前用户的链接按钮创建UserMenu类我们创建UserMenu类来描绘用户菜单的逻辑部分。保存在blog/protected/components... 阅读全文

posted @ 2010-02-24 21:49 analyzer 阅读(642) 评论(0) 推荐(1)