1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > ThinkPHP无限级分类原理实现留言与回复功能实例【PHP】

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

时间:2021-09-30 05:13:55

相关推荐

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

后端开发|php教程

ThinkPHP,无限级,分类原理,留言,回复,功能

后端开发-php教程

本文所述留言板程序使用了无限级分类的原理,可以实现无限级留言与回复。留言列表gclist保留了留言层次空格,使留言–回复层次分明。分享给大家供大家参考。具体分析如下:

电脑应用源码,vscode添加提示,ubuntu命令美化,tomcat8 面试,赤兔sqlite+注册码,爬虫下载安全性怎么样,php 小网站,seo推广的后期优化,平台式网站模板,手机京东网站模板下载安装lzw

功能上,本程序可以实现无限级留言与回复,即对留言回复,对回复的留言回复。当然你也可以作有限制的控制,使其只对留言回复,关键是在模板代码中去掉回复的留言中的“回复该留言”即可。欢迎去拍砖!

安卓音乐播放器 源码,ubuntu系统刷xp,tomcat的输出日志乱码,mac版爬虫,php卫星开发方向,百度seo优化排名需要多长时间lzw

程序效果下图例:

ace admin 源码,ubuntu多硬盘安装,web项目部署tomcat,爬虫scrapy管道,php 批量执行lonux命令,证券SEOlzw

完整源码点击此处本站下载。

数据表:

-- ----------------------------

-- 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;

代码:

<?php

// +----------------------------------------------------------------------

// | WBlog

// +----------------------------------------------------------------------

// | Copyright (c) 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) All rights reserved.

// | Author: 网菠萝果

// +----------------------------------------------------------------------

// $Id$

/**

+------------------------------------------------------------------------------

* @function 留言板模型 类GuestbookModel.class.php

+------------------------------------------------------------------------------

*/

class GuestbookModel extends RelationModel{

// +----------------------------------------------------------------------

// | $_validate表单自动验证

// +----------------------------------------------------------------------

protected $_validate = array(

array(email, equire,请填写您的邮箱!),

array(email,email,邮箱格式错误!),

);

// +----------------------------------------------------------------------

// | $_auto表单自动填充

// +----------------------------------------------------------------------

protected $_auto=array(

array(status,1),

array(inputtime, ime,1,function),

array(content,content,1,callback),

array(url,geturl,1,callback),

array (inputtime, ime,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(path,id)->limit($P->firstRow . , . $P->listRows)->select();

foreach ($list as $k => $v) {

$list[$k][count] = count(explode(-, $v[path]));

$list[$k][ ousername]=$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( ext, »);

$P->setConfig(first, |«);

$P->setConfig(last, »|);

$page = $P->show();

$arr=array(page=>$page,list=>$list);

return $arr;

}

}

?>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。