源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

ThinkPHP无限级分类原理实现留言与回复功能实例

  • 时间:2022-09-18 17:04 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:ThinkPHP无限级分类原理实现留言与回复功能实例
本文所述留言板程序使用了无限级分类的原理,可以实现无限级留言与回复。留言列表gclist保留了留言层次空格,使留言--回复层次分明。分享给大家供大家参考。具体分析如下: 功能上,本程序可以实现无限级留言与回复,即对留言回复,对回复的留言回复。当然你也可以作有限制的控制,使其只对留言回复,关键是在模板代码中去掉回复的留言中的“回复该留言”即可。欢迎去拍砖! 程序效果如下图所示: [img]http://files.jb51.net/file_images/article/201410/20141031115454002.jpg?201493111556[/img] 完整源码点击此处[url=http://xiazai.jb51.net/201410/yuanma/wblog3.1.3_2(jb51.net).rar]本站下载[/url]。 数据表:
[u]复制代码[/u] 代码如下:
-- ----------------------------     -- Table structure for `wb_guestbook`     -- ----------------------------     DROP TABLE IF EXISTS `wb_guestbook`;     CREATE TABLE `eway_guestbook` (       `id` int(10) unsigned NOT NULL AUTO_INCREMENT,       `pid` int(10) NOT NULL,       `email` varchar(50) NOT NULL,       `path` varchar(100) NOT NULL,       `username` varchar(30) NOT NULL,       `updatetime` int(10) NOT NULL,       `ip` varchar(15) NOT NULL,       `url` varchar(200) NOT NULL,       `inputtime` int(10) NOT NULL,       `content` text NOT NULL,       `verify` varchar(32) NOT NULL,       `isreply` tinyint(1) NOT NULL,       `status` tinyint(1) NOT NULL,       PRIMARY KEY (`id`)     ) ENGINE=MyISAM AUTO_INCREMENT=42 DEFAULT CHARSET=utf8;
代码:
[u]复制代码[/u] 代码如下:
<?php     // +----------------------------------------------------------------------     // | WBlog     // +----------------------------------------------------------------------     // | Copyright (c) 2008  http://www.w3note.com All rights reserved.     // +----------------------------------------------------------------------     // | Author: 网菠萝果     // +----------------------------------------------------------------------     // $Id$     /**      +------------------------------------------------------------------------------      * @class 留言板控制器GuestbookAction.class.php      +------------------------------------------------------------------------------      */ class GuestbookAction extends CommonAction {         public function index(){             $garr= D('Guestbook')->gclist("id,username,inputtime,pid,url,content,path,concat(path,'-',id) as bpath");                               $this->assign('Gklist', $garr['list']);             $this->assign('page',$garr['page']);             $this->display();         }     // +----------------------------------------------------------------------     // | 添加留言     // +----------------------------------------------------------------------                           public function add(){             $this->adddata('Guestbook');                                       }     // +----------------------------------------------------------------------     // | 网址跳转。如在表单url添加网址的话,点击会跳转到相关网站     // +----------------------------------------------------------------------                   public function tourl(){           $this->gettourl('Guestbook');           }      }     ?>     <?php     // +----------------------------------------------------------------------     // | WBlog     // +----------------------------------------------------------------------     // | Copyright (c) 2008   http://www.w3note.com All rights reserved.     // | Author: 网菠萝果     // +----------------------------------------------------------------------     // $Id$     /**      +------------------------------------------------------------------------------      * @function 留言板模型 类GuestbookModel.class.php     +------------------------------------------------------------------------------      */           class GuestbookModel extends RelationModel{     // +----------------------------------------------------------------------     // | $_validate表单自动验证     // +----------------------------------------------------------------------                    protected $_validate  = array(                     array('email','require','请填写您的邮箱!'),                     array('email','email','邮箱格式错误!'),                                               );     // +----------------------------------------------------------------------     // | $_auto表单自动填充     // +----------------------------------------------------------------------                                protected $_auto=array(                      array('status','1'),                        array('inputtime','time',1,'function'),                      array('content','content',1,'callback'),                      array('url','geturl',1,'callback'),                                      array ('inputtime','time',1,'function'),                      array('path','path',3,'callback'),                       array('username','getusername',3,'callback'),                                             );        // +----------------------------------------------------------------------     // | getusername()过滤用户名     // +----------------------------------------------------------------------                   public function getusername(){               if (isset ($_POST['username'])) {                 if(trim($_POST['username'])=='网菠萝果'){                     return $data= ' ̄□ ̄';                     }elseif(strlen($_POST['username']) >10){                                  return $data= msubstr($_POST['username'],0,5);                 }else{                     return $data= $_POST['username'];                 }             }                }      // +----------------------------------------------------------------------     // | path()返回子类的path,父类的path的值为0     // +----------------------------------------------------------------------            public function path(){                $pid=isset($_POST['pid'])?(int)$_POST['pid']:0;                $id=$_POST['id'];                 if($pid==0){                                     return 0;                 }                                       $fat=$this->where(array('id' => $pid))->find();                 $data=$fat['path'].'-'.$fat['id'];                           return $data;             }     // +----------------------------------------------------------------------     // | content()过滤留言内容     // +----------------------------------------------------------------------                 public function content() {             if (isset ($_POST['content']) && !empty ($_POST['content'])) {                  $data =deleteHtmlTags($_POST['content']);                  $data =safeHtml($data);                 if (strlen($data) > 1000) {                     $data = msubstr($data, 0, 500);                 }                 return $data;               }                }      // +----------------------------------------------------------------------     // | content()过滤URL     // +----------------------------------------------------------------------                     public function geturl(){             if (isset ($_POST['url'])) {             $data = deleteHtmlTags($_POST['url']);             $data = safeHtml($data);                 return $data=$data?$data:"";             }         }        // +----------------------------------------------------------------------     // |gclist($field,$where='',$pagesize=30)留言列表     // +----------------------------------------------------------------------     // |$field,字段     // +----------------------------------------------------------------------     // |$where查询条件,默认为空     // +----------------------------------------------------------------------     // |$pagesize分页记录,默认为30      // +----------------------------------------------------------------------     // |使用方法,看上面的控制器调用     // +----------------------------------------------------------------------                    public function gclist($field,$where='',$pagesize=30) {             import("ORG.Util.Page");              $count = $this->field('id')->where($where)->count();              $P = new Page($count, $pagesize);                                $list=$this->field($field)->where($where)->order('bpath,id')->limit($P->firstRow . ',' . $P->listRows)->select();                       foreach ($list as $k => $v) {                 $list[$k]['count'] = count(explode('-', $v['bpath']));                 $list[$k]['tousername']=$this->where(array('id'=> $v['pid']))->getField('username');                 $str = '';                 if ($v['pid'] <> 0) {                     for ($i = 0; $i < $list[$k]['count'] * 2; $i++) {                         $str .= ' ';                     }                     $str .= ' ';                 }                 $list[$k]['space'] = $str;             }             $P->setConfig('header', '篇');             $P->setConfig('prev', "«");             $P->setConfig('next', '»');             $P->setConfig('first', '|«');             $P->setConfig('last', '»|');             $page = $P->show();             $arr=array('page'=>$page,'list'=>$list);             return $arr;         }     }     ?>
希望本文所述对大家的ThinkPHP框架程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部