| 1 |
<?php |
|---|
| 2 |
|
|---|
| 3 |
|
|---|
| 4 |
|
|---|
| 5 |
|
|---|
| 6 |
|
|---|
| 7 |
|
|---|
| 8 |
|
|---|
| 9 |
|
|---|
| 10 |
|
|---|
| 11 |
|
|---|
| 12 |
|
|---|
| 13 |
|
|---|
| 14 |
|
|---|
| 15 |
|
|---|
| 16 |
|
|---|
| 17 |
|
|---|
| 18 |
|
|---|
| 19 |
|
|---|
| 20 |
|
|---|
| 21 |
|
|---|
| 22 |
|
|---|
| 23 |
|
|---|
| 24 |
function smarty_function_framework_pager($params, &$smarty) |
|---|
| 25 |
{ |
|---|
| 26 |
$required = array('start', 'limit', 'total'); |
|---|
| 27 |
foreach ($required as $r) { |
|---|
| 28 |
if (!isset($params[$r])) { |
|---|
| 29 |
$smarty->trigger_error("framework_pager: missing '$r' parameter"); |
|---|
| 30 |
} |
|---|
| 31 |
} |
|---|
| 32 |
|
|---|
| 33 |
extract($params); |
|---|
| 34 |
if ($total <= $imit) { |
|---|
| 35 |
return true; |
|---|
| 36 |
} |
|---|
| 37 |
|
|---|
| 38 |
$pageTotal = ($pages > 0) ? $pages : 10; |
|---|
| 39 |
|
|---|
| 40 |
|
|---|
| 41 |
// it will confuse scripts. |
|---|
| 42 |
if ($params['url']) { |
|---|
| 43 |
$url = $params['url']; |
|---|
| 44 |
} else { |
|---|
| 45 |
$url = $_SERVER['SCRIPT_NAME'].$_SERVER['PATH_INFO']; |
|---|
| 46 |
} |
|---|
| 47 |
|
|---|
| 48 |
$sets = array(); |
|---|
| 49 |
foreach ($_GET as $key => $val) { |
|---|
| 50 |
if ($key == 'start') { |
|---|
| 51 |
continue; |
|---|
| 52 |
} |
|---|
| 53 |
|
|---|
| 54 |
if (strlen($key) && strlen($val)) { |
|---|
| 55 |
if(!ereg($key."=",$_SERVER['PATH_INFO']) && !eregi('\?',$val)) { |
|---|
| 56 |
if (is_array($val)) { |
|---|
| 57 |
for($i = 0 ; $i < count($val) ; ++$i) { |
|---|
| 58 |
$sets[] = $key.'[]='.$val[$i]; |
|---|
| 59 |
} |
|---|
| 60 |
} else { |
|---|
| 61 |
$sets[] = $key.'='.$val; |
|---|
| 62 |
} |
|---|
| 63 |
} |
|---|
| 64 |
} |
|---|
| 65 |
} |
|---|
| 66 |
|
|---|
| 67 |
$s = '?'; |
|---|
| 68 |
if (count($sets)) { |
|---|
| 69 |
$url .= '?'.implode('&',$sets); |
|---|
| 70 |
$s = '&'; |
|---|
| 71 |
} |
|---|
| 72 |
|
|---|
| 73 |
|
|---|
| 74 |
$nav = & new Framework_Pager(); |
|---|
| 75 |
$nav->start = $start; |
|---|
| 76 |
$nav->limit = $limit; |
|---|
| 77 |
$nav->total = $total; |
|---|
| 78 |
$nav->pages = $pageTotal; |
|---|
| 79 |
|
|---|
| 80 |
if (($start + $limit) > $total) { |
|---|
| 81 |
$stop = $total; |
|---|
| 82 |
} else { |
|---|
| 83 |
$stop = ($start + $limit); |
|---|
| 84 |
} |
|---|
| 85 |
|
|---|
| 86 |
$tpl = Framework_Template::factory('Smarty', 'Framework'); |
|---|
| 87 |
$tpl->assign('nav', $nav); |
|---|
| 88 |
$tpl->assign('params', $params); |
|---|
| 89 |
$tpl->assign('stop', $stop); |
|---|
| 90 |
$tpl->assign('s', $s); |
|---|
| 91 |
$tpl->assign('url', $url); |
|---|
| 92 |
$tpl->display('framework_pager.tpl'); |
|---|
| 93 |
} |
|---|
| 94 |
|
|---|
| 95 |
?> |
|---|
| 96 |
|
|---|