本文实例讲述了thinkPHP分页功能。分享给大家供大家参考,具体如下:
interface ServiceInterFace:
<?php
/**
* InterFaceService
* @author yhd
*/
namespace Red;
interface ServiceInterFace {
/**
* 实例化当前类
*/
public static function getInstance();
}
StaticService 静态服务类:
<?php
/**
* 静态服务类
* StaticService
* @author yhd
*/
namespace Red;
class StaticService{
protected static $data;
/**
* 设置静态数据
* @param string $key key
* @param mixed $data data
* @return mixed
*/
public static function setData($key,$data){
self::$data[$key] = $data;
return self::$data[$key];
}
/**
* 通过引用使用静态数据
* @param string $key key
* @return mixed
*/
public static function & getData($key){
if(!isset(self::$data[$key])){
self::$data[$key] = null;
}
return self::$data[$key];
}
/**
* 缓存实例化过的对象
* @param string $name 类名
* @return 对象
*/
public static function getInstance($name){
$key = 'service_@_'.$name;
$model = &self::getData($key);
if($model === null){
$model = new $name();
}
return $model;
}
/**
* html转义过滤
* @param mixed $input 输入
* @return mixed
*/
public static function htmlFilter($input){
if(is_array($input)) {
foreach($input as & $row) {
$row = self::htmlFilter($row);
}
} else {
if(!get_magic_quotes_gpc()) {
$input = addslashes($input);
}
$input = htmlspecialchars($input);
}
return $input;
}
}
abstract AbProduct 抽象商品管理类:
<?php
/**
* 抽象商品管理类
* AbProduct.class.php
* @lastmodify 2015-8-17
* @author yhd
*/
namespace Red\Product;
abstract class AbProduct{
public $errorNum;
/*
*返回错误信息
*@param $errorNum 错误代码
*/
public function GetStatus(){
$errorNum = $this->errorNum;
switch($errorNum){
case 0:
$data['status'] = 0;
$data['message'] = '收藏成功';
break;
case 1:
$data['status'] = 1;
$data['message'] = '收藏失败';
break;
case 2:
$data['status'] = 2;
$data['message'] = '已收藏';
break;
case 3:
$data['status'] = 3;
$data['message'] = '未登陆';
break;
case 4:
$data['status'] = 4;
$data['message'] = '缺少参数';
break;
default:
$data['status'] = 200;
$data['message'] = '未知错误';
}
return $data;
}
MemberModel 会员模型:
<?php
/**
* 会员模型
* MemberModel.class.php
* @copyright (C) 2014-2015 red
* @license http://www.red.com/
* @lastmodify 2015-8-17
* @author yhd
*/
namespace Red\Passport\Models;
use Think\Model;
use Red\ServiceInterFace;
use Red\StaticService;
class MemberModel extends Model implements ServiceInterFace{
protected $userId;
protected $error;
protected function _initialize(){
$this->userId = getUserInfo(0);
}
/**
* 实例化本类
* @return MemberModel
*/
public static function getInstance() {
return StaticService::getInstance(__CLASS__);
}
/**
* 获取登录用户信息
* @param string $data 查询条件
* @return array
*/
public function getUser($data = '') {
if(empty($data)){
return $this->where("id=".$this->userId)->find();
}else{
return $this->field($data)->where("id=".$this->userId)->find();
}
}
/**
* 修改用户信息
* @param array $data
* @param array $where 查询条件
*/
public function editUserInfo($data, $where = '') {
if( $this->_before_check($data) === false ){
return $this->error['msg'];
}
if(!empty($where) && is_array($where)){
$condition[ $where[0] ] = array('eq', $where[1]);
return $this->where($condition)->save($data);
}
return $this->where("id=".$this->userId)->save($data);
}
/**
* 获取用户信息
* @param string $data 用户名
* return array()
*/
public function checkUserInfo($str, $field = ''){
//注册类型
$info = CheckType($str);
$condition[$info] = array('eq',$str);
if(!empty($field)){
return $this->field($field)->where($condition)->find();
}
return $this->where($condition)->find();
}
/**
* 获取用户信息
* @param array $data 用户名
* return array()
*/
public function getAccount($data){
//注册类型
$info = CheckType($data);
$condition['id'] = array('eq',$this->userId);
$condition[$info] = array('eq',$data);
return $this->where($condition)->find();
}
/**
* 修改用户密码
* @param array $data['id']用户ID
* @param $data['passWord']用户密码
* return true or false
*/
public function upUserPassById($data){
$condition['id'] = array('eq',$data['id']);
$status = $this->where($condition)->save(array("password"=>md5($data['password'])));
if($status){
return TRUE;
}else {
return FALSE;
}
}
/**
* 校验用户的账号或者密码是否正确
* @param $data['username'] 用户名
* @param $data['password'] 密码
* return true or false
*/
public function checkUserPasswd($data= array()){
$type = CheckType($data['username']);
$condition[$type] = array('eq',$data['username']);
$condition['password'] = array('eq',md5($data['password']));
return $this->where($condition)->find();
}
/**
* 网页登录校验token
* @param token string
* return bool
*/
public function checkToken($token){
return $this->autoCheckToken($token);
}
/**
* 后台封号/解封
* param int $user_id
*/
public function changeStatus($data){
if($this->save($data)){
return true;
}else{
return false;
}
}
protected function _before_check(&$data){
if(isset($data['username']) && empty($data['username'])){
$this->error['msg'] = '请输入用户名';
return false;
}
if(isset($data['nickname']) && empty($data['nickname'])){
$this->error['msg'] = '请输入昵称';
return false;
}
if(isset($data['realname']) && empty($data['realname'])){
$this->error['msg'] = '请输入真名';
return false;
}
if(isset($data['email']) && empty($data['email'])){
$this->error['msg'] = '请输入邮箱';
return false;
}
if(isset($data['mobile']) && empty($data['mobile'])){
$this->error['msg'] = '请输入手机号码';
return false;
}
if(isset($data['password']) && empty($data['password'])){
$this->error['msg'] = '请输入密码';
return false;
}
if(isset($data['headimg']) && empty($data['headimg'])){
$this->error['msg'] = '请上传头像';
return false;
}
return true;
}
}
PbootCMS分页条效果之数字条效果数字条自带a链接标签代码和选中效果标签 数字带class名称为 page-num ,当前页自带 page-num-current 样式 !-- 分页 --{pboot
PBootcms分页条标签怎么调用适用范围:分页条标签适用所有执行了分页的页面 标签作用:用于输出分页代码 来源:html5模板网 html5code.net 1、分页
ThinkPHP整合datatables实现服务端分页的示例代码下面小编就为大家分享一篇ThinkPHP整合datatables实现服务端分页的示例代码,具有很好的参考价值,希望对大家有所帮
thinkphp3.2.0 setInc方法 源码全面解析下面小编就为大家分享一篇thinkphp3.2.0 setInc方法 源码全面解析,具有很好的参考价值,希望对大家有所帮助。一起跟
tp5(thinkPHP5)操作mongoDB数据库的方法这篇文章主要介绍了tp5(thinkPHP5)操作mongoDB数据库的方法,结合实例形式简单分析了mongoDB数据库及thinkPHP5连接、查询Mo
在云虚拟主机部署thinkphp5项目的步骤详解thinkphp官网在去年的时候发布了tp的颠覆版本thinkphp5,tp5确实比之前的版本好用了很多,那么下面这篇文章就来给大家