Navigation
Surftips
COMBRIX - Content Management System - Diskussionsforum
Benutzername
Passwort

Thema ansehen
COMBRIX - Content Management System > COMBRIX
->> Integrierte Module & AddOns
Vorheriges Thema Nächstes Thema

 
Autor makepagenav erweitert   1  # 3  top
bahnfrank65
Erfahrener


User Avatar



Beiträge: 184

Eingetreten: 29.05.10
Status: Offline
Eingetragen am 15.02.2012 23:59
Hallo,

zwischendurch mal etwas anderes:
(zum testen der 216 bin ich noch nicht gekommen)

Auf besonderen Wunsch habe ich die Funktion makepagenav erweitert, so das bei größerer Seitenzahl, also sobald die Pünktchen auftauchen, zusätzlich ein Selectfeld mit allen Seiten erscheint, dieses Funktioniert mit und ohne JavaScript.
Man kann es zwar auch ganz ohne JS machen aber so haben diejenigen die es nicht abschalten einen Klick weniger.
Hier der Codeschnipsel in der theme_functions_include.php
Code
$tpl->more_javascript('
<script>
function Jump (FormName,Op,Link) {
var oIndex = document.forms[FormName].elements[Op].selectedIndex;
var jLink = Link + Op + "=" + document.forms[FormName].elements[Op].options[oIndex].value;
document.forms[FormName].elements[Op].selectedIndex = "0";
if(jLink != ""){
top.location.href = jLink;
}
}
</script>','text');

if (!function_exists("makepagenav")) {
//Seiten Navigation Sascha
function makepagenav($start,$count,$total,$range=0,$link="",$op="rowstart") {
global $locale, $fname;
if ($link == "") $link = PHP_SELF."?";
$res="";
$pg_cnt = ceil($total / $count);
if ($pg_cnt > 1) {
$idx_back = $start - $count;
$idx_next = $start + $count;
$cur_page=ceil(($start + 1) / $count);
$res.='<div class="pagination"><table border="0"><tr><td>';
if ($idx_back >= 0) {
$res.='<a class="pagination" href="'.$link.$op.'='.$idx_back.'">'.$locale['006'].'</a>';
if ($cur_page > ($range + 1)) $res.='<a class="pagination" href="'.$link.$op.'=0">1</a>...';
}
$idx_fst=max($cur_page - $range, 1);
$idx_lst=min($cur_page + $range, $pg_cnt);
if ($range==0) {
$idx_fst = 1;
$idx_lst=$pg_cnt;
}
for($i=$idx_fst;$i<=$idx_lst;$i++) {
$offset_page = ($i - 1) * $count;
if ($i==$cur_page) {
$res.='<a class="current"><strong>'.$i.'</strong></a>';
} else {
$res.='<a class="pagination" href="'.$link.$op.'='.$offset_page.'">'.$i.'</a>';
}
}
if ($idx_next < $total) {
if ($cur_page < ($pg_cnt - $range)) $res.='... <a class="pagination" href="'.$link.$op.'='.($pg_cnt-1)*$count.'">'.$pg_cnt.'</a>';
$res.='<a class="pagination" href="'.$link.$op.'='.$idx_next.'">'.$locale['005'].'</a>';
}
// mod begin
if ($pg_cnt > ($range+1)) {
$link_arr = explode("&", array_pop(explode("?", substr($link, 0, -5))));
foreach ($link_arr as $param) {
$param_arr = explode("=", $param);
$input .= "<input type='hidden' name='".$param_arr[0]."' value='".$param_arr[1]."' />";
}
$fname = (isset($fname) ? $fname."2" : "mpnForm");
for($i=1; $i<=$pg_cnt; $i++) {
$offset_page = ($i - 1) * $count;
$opts .= "<option value='".$offset_page."' ".($i==$cur_page ? "selected" : "").">".$i."</option>\n";
}
$res.= "</td>\n<td><form name='".$fname."' method='get' action='".PHP_SELF."'>\n<select name='".$op."' class='s_pagination' onChange=\"Jump('$fname','$op','$link');\">".$opts."</select> <noscript>\n".$input."<input type='submit' value='Go' class='s_pagination' /></noscript></form>";
}
$res.='</td></tr></table></div>';
}
return $res;
}
}


zu sehen hier -->dr-wagen.pxtr.de

BTW:
Wofür gibt es eigentlich die fast gleiche Funktion makepagenavi in core_functions.php ?


>> meine Combrix-Testseite <<
Bearbeitet von bahnfrank65 am 16.02.2012 00:03
http://bahnfrank.pxtr.de/
Autor RE: makepagenav erweitert   2  # 3  top
Silvermoon
Site Admin


User Avatar



Beiträge: 349

Eingetreten: 01.05.10
Status: Offline
Eingetragen am 16.02.2012 21:30
nettes Feature, welches jedoch einen negativen Effekt haben kann. Nimm mal an, es sind 500 Seiten. Diese Schleife ist dann ganz schön brutal.

Zur Frage von dir. Die zweite Funktion war eine Änderung für meine Eigene Homepage, welche irgendwie mit reingekommen ist




Es ist alles eine Frage der Überarbeitung
BS-FUSION - Secure your portal
COMBRIX - Content Management System
http://www.bs-fusion.de
Autor RE: makepagenav erweitert   3  # 3  top
bahnfrank65
Erfahrener


User Avatar


Themenstarter

Beiträge: 184

Eingetreten: 29.05.10
Status: Offline
Eingetragen am 17.02.2012 00:09
Was meinst Du mit Schleife ? Das Erstellen der opts ?
Ist 500 Seiten nicht etwas übertrieben ? Wenn man annimmt das mindestens 10 Ergebnisse je Seite gezeigt werden (bei mir 20-25) wären das 5000 Suchergebnisse oder ähnliches, wer hat das schon.
Man könnte es ja irgendwie begrenzen, aber was ist da sinnvoll ?


>> meine Combrix-Testseite <<
Bearbeitet von bahnfrank65 am 17.02.2012 00:10
http://bahnfrank.pxtr.de/
 
Springe zu Forum:
Thema verlinken
URL:
BB-Code:
HTML:
2,038,289 eindeutige Besuche
© COMBRIX CMS Software v1.01.5 based on PHP-Fusion v6. Thanks to the founder Nick Jones | Theme Echelon


render time: 1.044 sec.