| 
 | 
 
 
            本文实例讲述了Zend Framework实现具有基本功能的留言本。分享给大家供大家参考,具体如下: 
一个留言本...具有的基本功能就是.1.发表留言. 2.回复留言.3.管理留言(修改,删除等操作). 
我这里只是写了基本的操作,比如加留言验证码.页面的美化什么的我都 
没有做.我只是给大家一个思想..很多东西要靠我们自己去学了. 
另一个就是我的留言用了AJAX.就是你一发表.数据就会在页面显示..不过大家要了解Jquery的AJAX的用法..我相信大部分人都会这个JS类库吧. 
要是不懂也没关系..你们可以改成不是AJAX的..只要把发表留言的FROM的提交动作转换成我们控制里的一个动作..相信这个不是问题.好了..开始工作: 
我们的目录结构和以前一样,大致不变..下面要有改动的..大家也不要急..我会教大家如何做: 
第一:先建立好我们的模板页面(View).. 
按照上篇教程的目录.application/views/scripts目录下有一些模板页.如(index.phtml,edit.phtml).我们删除它们..现在加一个message文件夹. 
在message里加上(edit.phtml,index.phtml,message.phtml)三个模板文件.完成后.我们在application/views/scripts/目录下加上(header.phtml,footer.phtml)二个模板文件. 
因为这二个文件以后会重用来..所以把他们直接放到application/views/scripts/下..好了模板建立好了.现在就是加入一个HTML.JS.IMAGE了.我把他们这些都放在网站根目录public文件夹下.大家可以对应我的源码来看一下..要是有点乱..请大家根据源码来看这教程..(^_^不好意思,我只能这样表达.我也不知道如何写才能让你们更了解.请大家体谅啊!) 
第二:接下来,我们写我们的数据层程序(Model). 
1.我们在原来的表中加上下面几个字段:pid(标志是否是回复,0为留言.为为0的是为回复) ,author(留言者),headimg(留言者头像),email(留言者电子邮件), ip(留言者IP地址),  
show(留言是否显示.这个要在生台管理能用.这教程这里没有用到.), addtime(留言时间), updatetime(留言修改时间).字段类型的设置请大家看源码SQL文件. 
2.我们在application/models/目录下有一个Message.php.我们先写好我们留言本的Model .主要是对留言本数据层的操作.我增加了下面几个方法: 
getAllMessage(取到所有的留言) , getAllReMessage(取到所有的回复留言数据) , getMessageByID(根据ID取留言数据), updateMessageByID(修改留言), delMessageByID(删除留言) 
具体程序如下(程序上面也有注解): 
class Message extends Zend_Db_Table 
{ 
 protected $_name ="message"; 
 protected $_primary = 'id'; 
 /* * 取到所有的留言 */ 
 public function getAllMessage(){ 
 $messageArray=$this->fetchAll("message.pid=0", 
      "message.id DESC")->toArray(); 
 return $messageArray; 
 } 
 /* * 取到所有的回复留言数据 */ 
 public function getAllReMessage(){ 
 $ReArray=$this->fetchAll("message.pid!=0", 
      "message.id DESC")->toArray(); 
 return $ReArray; 
 } 
 /* * 根据ID取留言数据 */ 
 public function getMessageByID($id){ 
 $messageone=$this->fetchAll('id='.$id)->toArray(); 
 return $messageone; 
 } 
 /* * 修改留言 */ 
 public function updateMessageByID($array,$id){ 
 $db = $this->getAdapter(); 
 $where=$db->quoteInto('id = ?', $id); 
 $this->update($array, $where); 
 } 
 /* * 删除留言 */ 
 public function delMessageByID($id){ 
 $where = 'id = ' . $id; 
   $this->delete($where); 
   return true; 
 } 
} 
 |   
 
 
 
 |