/** * 生成分页栏,用法:{{bzf_paginator count=$totalCount pageNo=$pageNo pageSize=$pageSize }} */ function smarty_helper_function_paginator(array $paramArray, $smarty) { $count = isset($paramArray['count']) ? $paramArray['count'] : 0; $pageNo = isset($paramArray['pageNo']) ? $paramArray['pageNo'] : 0; $pageSize = isset($paramArray['pageSize']) ? $paramArray['pageSize'] : 10; // 不需要分页 if ($count <= 0 || $count < $pageSize) { return ''; } // 修正 page 的值 $pageNo = $pageNo * $pageSize < $count ? $pageNo : 0; $totalPage = ceil($count / $pageSize); // 只有一页,不需要分页 if ($totalPage <= 1) { return ''; } // 处理参数 $currentUrl = RouteHelper::getRequestURL(); // 去除已有的 page 和 size 参数 $currentUrl = RouteHelper::removeParam($currentUrl, 'pageNo'); $currentUrl = RouteHelper::removeParam($currentUrl, 'pageSize'); // 上一页 $pagePrevious = '<a data-role="button" class="ui-disabled" data-icon="arrow-l" data-iconpos="left" href="#" data-theme="b">上一页</a>'; if ($pageNo > 0) { $pagePrevious = '<a data-role="button" data-icon="arrow-l" data-iconpos="left" href="' . RouteHelper::addParam($currentUrl, array('pageNo' => $pageNo - 1), true) . '" data-theme="b" data-direction="reverse" data-transition="flow" >上一页</a>'; } // 下一页 $pageNext = '<a data-role="button" class="ui-disabled" data-icon="arrow-r" data-iconpos="right" href="#" data-theme="b">下一页</a>'; if ($pageNo < $totalPage - 1) { $pageNext = '<a data-role="button" data-icon="arrow-r" data-iconpos="right" href="' . RouteHelper::addParam($currentUrl, array('pageNo' => $pageNo + 1), true) . '" data-theme="b" data-transition="flow">下一页</a>'; } return '<div class="ui-grid-a"><div class="ui-block-a">' . $pagePrevious . '</div><div class="ui-block-b">' . $pageNext . '</div></div>'; }