使用ThinkPHP开发已经一年,封装了一些常用的函数,方便调取......
/**
* 获取当前页码
* @return int
*/
function get_current()
{
$PageParam = C('VAR_PAGE');
return I("get.$PageParam", 1);
}
/**
* 分页样式定制
* @param int $total 总记录数
* @param int $limit 每页显示多少条记录
* @param int $rollPage 显示多少个页码
* @return array
*/
function get_page($total,$limit=0,$rollPage=5)
{
$ListRows = C('PAGE_LIST_ROWS');
$limit = empty($limit) ? $ListRows : $limit;
import("Common.Org.Page");
$Page = new \Common\Org\Page($total, $limit);// 实例化分页类
$Page->lastSuffix = false; // 最后一页不要显示页码数
$Page->rollPage = $rollPage; // 显示的页码个数
$Page->setConfig('header', '条记录,每页显示' . $limit . '条');
$Page->setConfig('first', '第一页');
$Page->setConfig('prev', '上一页');
$Page->setConfig('theme', '<span>共有%TOTAL_ROW% %HEADER%</span><ul class="pagination"> %FIRST%%UP_PAGE%%LINK_PAGE%%DOWN_PAGE%%END%</ul>');
$Page->setConfig('next', '下一页');
$Page->setConfig('last', '最后一页');
$current = get_current();// 当前页码
return array(
'show' => $Page->show(),
'page' => sprintf('%d,%d', $current, $limit),
'limit' => sprintf('%d,%d', $Page->firstRow, $Page->listRows),
);
}
/**
* 分页样式定制(数组分页)
* @param array $list 需要分页的数组
* @param int $limit 每页显示多少条记录
* @param int $rollPage 显示多少个页码
* @return array
*/
function array_page(&$list,$limit=0,$rollPage=5)
{
if (!is_array($list)) return null;
$count = count($list);
$PageInfo = get_page($count, $limit, $rollPage);
list($firstRow, $listRows) = explode(',', $PageInfo['limit']);
$data = array_slice($list, $firstRow, $listRows);
return array(
'data' => $data,
'show' => $PageInfo['show'],
);
}
/**
* 填充隐藏域
* @return string
*/
function get_fill_info()
{
$UrlModel = C('URL_MODEL');//URL访问模式
$str = '';
if ($UrlModel == 0) {
$module = C('VAR_MODULE');//默认模块获取变量
$controller = C('VAR_CONTROLLER'); //默认控制器获取变量
$action = C('VAR_ACTION');//默认操作获取变量
$str .= '<input type="hidden" name="' . $module . '" value="' . MODULE_NAME . '">';
$str .= '<input type="hidden" name="' . $controller . '" value="' . CONTROLLER_NAME . '">';
$str .= '<input type="hidden" name="' . $action . '" value="' . ACTION_NAME . '">';
} else if ($UrlModel == 3) {
$PathInfo = C('VAR_PATHINFO');
$interval = C('URL_PATHINFO_DEPR');
$str .= '<input type="hidden" name="' . $PathInfo . '" value="' . MODULE_NAME . $interval . CONTROLLER_NAME . $interval . ACTION_NAME . '">';
}
return $str;
}
/**
* 获取排序的信息
* @param string $default 默认排序,例:ID desc
* @param int $type 返回类型,0:字符串,1数组
* @return string 例:"ID desc"
*/
function get_order($default='',$type=0)
{
$interval = '__'; // 排序分割符
$order = I('get.order'); // 排序信息 排序的字段和排序规则,UserID__desc
if (empty($order)) {
$sortName = '';
$sort = '';
} else {
list($sortName, $sort) = explode($interval, $order);
}
$sort = strtolower($sort);
if ($type) {
return array($sortName, $sort);
} else {
if (empty($order)) {
return $default;
}
return sprintf('%s %s', $sortName, $sort);
}
}
/**
* 设置排序
* @param string $column 需要排序的字段
* @param string $ColumnZh 需要排序的字段的名字
* @return string a标签
*/
function set_order($column,$ColumnZh)
{
$interval = '__'; // 排序分割符
list($sortName, $sort) = get_order('', 1);
if ($sortName == $column) {
if ($sort == 'desc') {
$NextSort = 'asc'; // 下一次排序方式
$NowTip = '<i class="glyphicon glyphicon-arrow-down"></i>'; // 当前排序图标
} else {
$NextSort = 'desc';
$NowTip = '<i class="glyphicon glyphicon-arrow-up"></i>';
}
} else {
$NextSort = 'desc'; // 默认下一排序从大到小
$NowTip = ''; // 默认当前排序图标为空
}
$parameter = $_GET; // 获取参数
$parameter['order'] = '[ORDER]';
$url = U(ACTION_NAME, $parameter);
$ColumnSort = sprintf('%s%s%s', $column, $interval, $NextSort);
$href = str_replace(urlencode('[ORDER]'), $ColumnSort, $url);
return '<a href="' . $href . '">' . $ColumnZh . $NowTip . '</a>';
}
/**
* 排序
* @param array $a
* @param array $b
* @return int
*/
function my_sort_all($a,$b)
{
list($SortName, $sort) = get_order('', 1);
$aa = $a[$SortName];
$bb = $b[$SortName];
if ($aa == $bb) return 0;
if ($sort == 'desc') {
return ($aa < $bb) ? 1 : -1;
} else {
return ($aa < $bb) ? -1 : 1;
}
}
/**
* 判断是否存在数据表
* @param string $table
* @param string $connect
* @param string $db
* @return bool
*/
function whether_exist_table($table,$connect,$db='')
{
$result = M('', '', $connect)->query("SHOW TABLES LIKE '" . $table . "'");
if ($result) return true;
return false;
// $sql = "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = '$db' AND table_name = '$table'";
}
若有不足之处,请谅解!!