Merge pull request #695 from fabrixxm/master
move html from paginate functions to template
This commit is contained in:
commit
7f2d396e6f
3 changed files with 114 additions and 75 deletions
4
boot.php
4
boot.php
|
@ -635,7 +635,11 @@ if(! class_exists('App')) {
|
||||||
function set_pager_itemspage($n) {
|
function set_pager_itemspage($n) {
|
||||||
$this->pager['itemspage'] = ((intval($n) > 0) ? intval($n) : 0);
|
$this->pager['itemspage'] = ((intval($n) > 0) ? intval($n) : 0);
|
||||||
$this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
|
$this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_pager_page($n) {
|
||||||
|
$this->pager['page'] = $n;
|
||||||
|
$this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
|
||||||
}
|
}
|
||||||
|
|
||||||
function init_pagehead() {
|
function init_pagehead() {
|
||||||
|
|
166
include/text.php
166
include/text.php
|
@ -27,7 +27,11 @@ function replace_macros($s,$r) {
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
$t = $a->template_engine();
|
$t = $a->template_engine();
|
||||||
$output = $t->replace_macros($s,$r);
|
try {
|
||||||
|
$output = $t->replace_macros($s,$r);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
echo "<pre><b>".__function__."</b>: ".$e->getMessage()."</pre>"; killme();
|
||||||
|
}
|
||||||
|
|
||||||
$a->save_timestamp($stamp1, "rendering");
|
$a->save_timestamp($stamp1, "rendering");
|
||||||
|
|
||||||
|
@ -260,6 +264,84 @@ function hex2bin($s) {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
|
if(! function_exists('paginate_data')) {
|
||||||
|
/**
|
||||||
|
* Automatica pagination data.
|
||||||
|
*
|
||||||
|
* @param App $a App instance
|
||||||
|
* @param int $count [optional] item count (used with alt pager)
|
||||||
|
* @return Array data for pagination template
|
||||||
|
*/
|
||||||
|
function paginate_data(&$a, $count=null) {
|
||||||
|
$stripped = preg_replace('/(&page=[0-9]*)/','',$a->query_string);
|
||||||
|
|
||||||
|
$stripped = str_replace('q=','',$stripped);
|
||||||
|
$stripped = trim($stripped,'/');
|
||||||
|
$pagenum = $a->pager['page'];
|
||||||
|
$url = $a->get_baseurl() . '/' . $stripped;
|
||||||
|
|
||||||
|
|
||||||
|
$data = array();
|
||||||
|
function _l(&$d, $name, $url, $text, $class="") {
|
||||||
|
|
||||||
|
$d[$name] = array('url'=>$url, 'text'=>$text, 'class'=>$class);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!is_null($count)){
|
||||||
|
// alt pager
|
||||||
|
if($a->pager['page']>1)
|
||||||
|
_l($data, "prev", $url.'&page='.($a->pager['page'] - 1), t('newer'));
|
||||||
|
if($count>0)
|
||||||
|
_l($data, "next", $url.'&page='.($a->pager['page'] - 1), t('older'));
|
||||||
|
} else {
|
||||||
|
// full pager
|
||||||
|
if($a->pager['total'] > $a->pager['itemspage']) {
|
||||||
|
if($a->pager['page'] != 1)
|
||||||
|
_l($data, "prev", $url.'&page='.($a->pager['page'] - 1), t('prev'));
|
||||||
|
|
||||||
|
_l($data, "first", $url."&page=1", t('first'));
|
||||||
|
|
||||||
|
|
||||||
|
$numpages = $a->pager['total'] / $a->pager['itemspage'];
|
||||||
|
|
||||||
|
$numstart = 1;
|
||||||
|
$numstop = $numpages;
|
||||||
|
|
||||||
|
if($numpages > 14) {
|
||||||
|
$numstart = (($pagenum > 7) ? ($pagenum - 7) : 1);
|
||||||
|
$numstop = (($pagenum > ($numpages - 7)) ? $numpages : ($numstart + 14));
|
||||||
|
}
|
||||||
|
|
||||||
|
$pages = array();
|
||||||
|
|
||||||
|
for($i = $numstart; $i <= $numstop; $i++){
|
||||||
|
if($i == $a->pager['page'])
|
||||||
|
_l($pages, $i, "#", $i, "current");
|
||||||
|
else
|
||||||
|
_l($pages, $i, $url."&page=$i", $i, "n");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(($a->pager['total'] % $a->pager['itemspage']) != 0) {
|
||||||
|
if($i == $a->pager['page'])
|
||||||
|
_l($pages, $i, "#", $i, "current");
|
||||||
|
else
|
||||||
|
_l($pages, $i, $url."&page=$i", $i, "n");
|
||||||
|
}
|
||||||
|
|
||||||
|
$data['pages'] = $pages;
|
||||||
|
|
||||||
|
$lastpage = (($numpages > intval($numpages)) ? intval($numpages)+1 : $numpages);
|
||||||
|
_l($data, "last", $url."&page=$lastpage", t('last'));
|
||||||
|
|
||||||
|
if(($a->pager['total'] - ($a->pager['itemspage'] * $a->pager['page'])) > 0)
|
||||||
|
_l($data, "next", $url."&page=".($a->pager['page'] + 1), t('next'));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $data;
|
||||||
|
|
||||||
|
}}
|
||||||
|
|
||||||
if(! function_exists('paginate')) {
|
if(! function_exists('paginate')) {
|
||||||
/**
|
/**
|
||||||
* Automatic pagination.
|
* Automatic pagination.
|
||||||
|
@ -277,58 +359,11 @@ if(! function_exists('paginate')) {
|
||||||
* @return string html for pagination #FIXME remove html
|
* @return string html for pagination #FIXME remove html
|
||||||
*/
|
*/
|
||||||
function paginate(&$a) {
|
function paginate(&$a) {
|
||||||
$o = '';
|
|
||||||
$stripped = preg_replace('/(&page=[0-9]*)/','',$a->query_string);
|
|
||||||
|
|
||||||
// $stripped = preg_replace('/&zrl=(.*?)([\?&]|$)/ism','',$stripped);
|
$data = paginate_data($a);
|
||||||
|
$tpl = get_markup_template("paginate.tpl");
|
||||||
|
return replace_macros($tpl, array("pager" => $data));
|
||||||
|
|
||||||
$stripped = str_replace('q=','',$stripped);
|
|
||||||
$stripped = trim($stripped,'/');
|
|
||||||
$pagenum = $a->pager['page'];
|
|
||||||
$url = $a->get_baseurl() . '/' . $stripped;
|
|
||||||
|
|
||||||
|
|
||||||
if($a->pager['total'] > $a->pager['itemspage']) {
|
|
||||||
$o .= '<div class="pager">';
|
|
||||||
if($a->pager['page'] != 1)
|
|
||||||
$o .= '<span class="pager_prev">'."<a href=\"$url".'&page='.($a->pager['page'] - 1).'">' . t('prev') . '</a></span> ';
|
|
||||||
|
|
||||||
$o .= "<span class=\"pager_first\"><a href=\"$url"."&page=1\">" . t('first') . "</a></span> ";
|
|
||||||
|
|
||||||
$numpages = $a->pager['total'] / $a->pager['itemspage'];
|
|
||||||
|
|
||||||
$numstart = 1;
|
|
||||||
$numstop = $numpages;
|
|
||||||
|
|
||||||
if($numpages > 14) {
|
|
||||||
$numstart = (($pagenum > 7) ? ($pagenum - 7) : 1);
|
|
||||||
$numstop = (($pagenum > ($numpages - 7)) ? $numpages : ($numstart + 14));
|
|
||||||
}
|
|
||||||
|
|
||||||
for($i = $numstart; $i <= $numstop; $i++){
|
|
||||||
if($i == $a->pager['page'])
|
|
||||||
$o .= '<span class="pager_current">'.(($i < 10) ? ' '.$i : $i);
|
|
||||||
else
|
|
||||||
$o .= "<span class=\"pager_n\"><a href=\"$url"."&page=$i\">".(($i < 10) ? ' '.$i : $i)."</a>";
|
|
||||||
$o .= '</span> ';
|
|
||||||
}
|
|
||||||
|
|
||||||
if(($a->pager['total'] % $a->pager['itemspage']) != 0) {
|
|
||||||
if($i == $a->pager['page'])
|
|
||||||
$o .= '<span class="pager_current">'.(($i < 10) ? ' '.$i : $i);
|
|
||||||
else
|
|
||||||
$o .= "<span class=\"pager_n\"><a href=\"$url"."&page=$i\">".(($i < 10) ? ' '.$i : $i)."</a>";
|
|
||||||
$o .= '</span> ';
|
|
||||||
}
|
|
||||||
|
|
||||||
$lastpage = (($numpages > intval($numpages)) ? intval($numpages)+1 : $numpages);
|
|
||||||
$o .= "<span class=\"pager_last\"><a href=\"$url"."&page=$lastpage\">" . t('last') . "</a></span> ";
|
|
||||||
|
|
||||||
if(($a->pager['total'] - ($a->pager['itemspage'] * $a->pager['page'])) > 0)
|
|
||||||
$o .= '<span class="pager_next">'."<a href=\"$url"."&page=".($a->pager['page'] + 1).'">' . t('next') . '</a></span>';
|
|
||||||
$o .= '</div>'."\r\n";
|
|
||||||
}
|
|
||||||
return $o;
|
|
||||||
}}
|
}}
|
||||||
|
|
||||||
if(! function_exists('alt_pager')) {
|
if(! function_exists('alt_pager')) {
|
||||||
|
@ -339,27 +374,11 @@ if(! function_exists('alt_pager')) {
|
||||||
* @return string html for pagination #FIXME remove html
|
* @return string html for pagination #FIXME remove html
|
||||||
*/
|
*/
|
||||||
function alt_pager(&$a, $i) {
|
function alt_pager(&$a, $i) {
|
||||||
$o = '';
|
|
||||||
$stripped = preg_replace('/(&page=[0-9]*)/','',$a->query_string);
|
|
||||||
$stripped = str_replace('q=','',$stripped);
|
|
||||||
$stripped = trim($stripped,'/');
|
|
||||||
$pagenum = $a->pager['page'];
|
|
||||||
$url = $a->get_baseurl() . '/' . $stripped;
|
|
||||||
|
|
||||||
$o .= '<div class="pager">';
|
$data = paginate_data($a, $i);
|
||||||
|
$tpl = get_markup_template("paginate.tpl");
|
||||||
|
return replace_macros($tpl, array('pager' => $data));
|
||||||
|
|
||||||
if($a->pager['page']>1)
|
|
||||||
$o .= "<a href=\"$url"."&page=".($a->pager['page'] - 1).'" class="pager_newer">' . t('newer') . '</a>';
|
|
||||||
if($i>0) {
|
|
||||||
if($a->pager['page']>1)
|
|
||||||
$o .= " - ";
|
|
||||||
$o .= "<a href=\"$url"."&page=".($a->pager['page'] + 1).'" class="pager_older">' . t('older') . '</a>';
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$o .= '</div>'."\r\n";
|
|
||||||
|
|
||||||
return $o;
|
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
|
@ -564,8 +583,11 @@ function get_markup_template($s, $root = '') {
|
||||||
|
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
$t = $a->template_engine();
|
$t = $a->template_engine();
|
||||||
|
try {
|
||||||
$template = $t->get_template_file($s, $root);
|
$template = $t->get_template_file($s, $root);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
echo "<pre><b>".__function__."</b>: ".$e->getMessage()."</pre>"; killme();
|
||||||
|
}
|
||||||
|
|
||||||
$a->save_timestamp($stamp1, "file");
|
$a->save_timestamp($stamp1, "file");
|
||||||
|
|
||||||
|
|
13
view/templates/paginate.tpl
Normal file
13
view/templates/paginate.tpl
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<div class="pager">
|
||||||
|
{{if $pager}}
|
||||||
|
{{ if $pager.prev }}<span class="pager_prev {{ $pager.prev.class }}"><a href="{{ $pager.prev.url }}">{{ $pager.prev.text }}</a></span>{{ /if }}
|
||||||
|
|
||||||
|
{{ if $pager.first }}<span class="pager_first $pager.first.class"><a href="{{ $pager.first.url }}">{{ $pager.first.text }}</a></span>{{ /if }}
|
||||||
|
|
||||||
|
{{ foreach $pager.pages as $p }}<span class="pager_{{ $p.class }}"><a href="{{ $p.url }}">{{ $p.text }}</a></span>{{ /foreach }}
|
||||||
|
|
||||||
|
{{ if $pager.last }}<span class="pager_last {{ $pager.last.class }}"><a href="{{ $pager.last.url }}">{{ $pager.last.text }}</a></span>{{ /if }}
|
||||||
|
|
||||||
|
{{ if $pager.next }}<span class="pager_next {{ $pager.next.class }}"><a href="{{ $pager.next.url }}">{{ $pager.next.text }}</a></span>{{ /if }}
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
Loading…
Reference in a new issue