--- Display.pl.v1 2007-12-21 00:16:18.000000000 +0200
+++ Display.pl 2007-12-21 06:24:51.000000000 +0200
@@ -230,14 +230,16 @@
if (!$iamguest) {
(undef, $userthreadpage, undef,undef) = split(/\|/, ${$uid.$username}{'pageindex'});
}
- my ($pagetxtindex, $pagetextindex, $pagedropindex1, $pagedropindex2, $all, $allselected);
+ my ($pagetxtindex, $pagetextindex, $pagedropindex1, $pagedropindex2, $all);
$postdisplaynum = 3; # max number of pages to display
$dropdisplaynum = 10;
$startpage = 0;
$max = $mreplies + 1;
- if ($INFO{'start'} ne "all") { $start = $INFO{'start'} || 0; }
- elsif ($showpageall) { $maxmessagedisplay = $max; $all = 1; $allselected = qq~ selected="selected"~; (undef, $start) = split /-/, $INFO{'start'}; }
- else { $start = 0; }
+ if ($INFO{'start'} !~ /^all/i) { $start = $INFO{'start'} || 0; }
+ elsif (!$showpageall) { $start = 0; }
+ elsif ($INFO{'start'} eq 'all') { $maxmessagedisplay = $max; $all = 1; $start = 0; }
+ elsif ($userthreadpage == 1 || $iamguest) { (undef, $start) = split /-/, $INFO{'start'}; }
+ else { $all = 1; ($tstart, $start) = split /-/, $INFO{'start'}; }
$start = $start > $mreplies ? $mreplies : $start;
$start = (int($start / $maxmessagedisplay)) * $maxmessagedisplay;
$tmpa = 1;
@@ -274,43 +276,37 @@
$pagedropindex1 = qq~<span style="float: left; width: 320px; margin: 0px; margin-top: 2px; border: 0px;">~;
$pagedropindex1 .= qq~<span style="float: left; height: 21px; margin: 0; margin-right: 4px;"><a href="$scripturl?num=$viewnum;start=$start;action=threadpagetext"><img src="$imagesdir/index_togl.gif" border="0" alt="$display_txt{'19'}" /></a></span>~;
$pagedropindex2 = $pagedropindex1;
- $tstart = $start;
- if (substr($INFO{'start'}, 0, 3) eq "all") { ($tstart, $start) = split(/\-/, $INFO{'start'}); }
- $d_indexpages = $pagenumb / $dropdisplaynum;
- $i_indexpages = int($pagenumb / $dropdisplaynum);
- if ($d_indexpages > $i_indexpages) { $indexpages = int($pagenumb / $dropdisplaynum) + 1; }
- else { $indexpages = int($pagenumb / $dropdisplaynum) }
+ $tstart ||= $start;
+ $indexpages = int($pagenumb / $dropdisplaynum) + ($pagenumb % $dropdisplaynum ? 1 : 0);
$selectedindex = int(($start / $maxmessagedisplay) / $dropdisplaynum);
if ($pagenumb > $dropdisplaynum) {
$pagedropindex1 .= qq~<span style="float: left; height: 21px; margin: 0;"><select size="1" name="decselector1" id="decselector1" style="font-size: 9px; border: 2px inset;" onchange="if(this.options[this.selectedIndex].value) SelDec(this.options[this.selectedIndex].value, 'xx')">\n~;
$pagedropindex2 .= qq~<span style="float: left; height: 21px; margin: 0;"><select size="1" name="decselector2" id="decselector2" style="font-size: 9px; border: 2px inset;" onchange="if(this.options[this.selectedIndex].value) SelDec(this.options[this.selectedIndex].value, 'xx')">\n~;
- }
- for ($i = 0; $i < $indexpages; $i++) {
- $indexpage = ($i * $dropdisplaynum) * $maxmessagedisplay;
- $indexstart = ($i * $dropdisplaynum) + 1;
- $indexend = $indexstart + ($dropdisplaynum - 1);
- if ($indexend > $pagenumb) { $indexend = $pagenumb; }
- if ($indexstart == $indexend) { $indxoption = qq~$indexstart~; }
- else { $indxoption = qq~$indexstart-$indexend~; }
- $selected = "";
- if ($i == $selectedindex) {
- $selected = qq~ selected="selected"~;
- $pagejsindex = qq~$indexstart|$indexend|$maxmessagedisplay|$indexpage~;
- }
- if ($pagenumb > $dropdisplaynum) {
+ for (my $i = 0; $i < $indexpages; $i++) {
+ $indexpage = ($i * $dropdisplaynum) * $maxmessagedisplay;
+ $indexstart = ($i * $dropdisplaynum) + 1;
+ $indexend = $indexstart + ($dropdisplaynum - 1);
+ if ($indexend > $pagenumb) { $indexend = $pagenumb; }
+ if ($indexstart == $indexend) { $indxoption = qq~$indexstart~; }
+ else { $indxoption = qq~$indexstart-$indexend~; }
+ $selected = "";
+ if ($i == $selectedindex) {
+ $selected = qq~ selected="selected"~;
+ $pagejsindex = qq~$indexstart|$indexend|$maxmessagedisplay|$indexpage~;
+ }
$pagedropindex1 .= qq~<option value="$indexstart|$indexend|$maxmessagedisplay|$indexpage"$selected>$indxoption</option>\n~;
$pagedropindex2 .= qq~<option value="$indexstart|$indexend|$maxmessagedisplay|$indexpage"$selected>$indxoption</option>\n~;
}
- }
- if ($pagenumb > $dropdisplaynum) {
$pagedropindex1 .= qq~</select>\n</span>~;
$pagedropindex2 .= qq~</select>\n</span>~;
+ } else {
+ $pagejsindex = qq~1|$pagenumb|$maxmessagedisplay|0~;
}
$pagedropindex1 .= qq~<span id="ViewIndex1" class="droppageindex" style="height: 14px; visibility: hidden"> </span>~;
$pagedropindex2 .= qq~<span id="ViewIndex2" class="droppageindex" style="height: 14px; visibility: hidden"> </span>~;
$tmpmaxmessagedisplay = $maxmessagedisplay;
- if (substr($INFO{'start'}, 0, 3) eq "all") { $maxmessagedisplay = $maxmessagedisplay * $dropdisplaynum; }
+ $maxmessagedisplay = $maxmessagedisplay * $dropdisplaynum if ($tstart eq 'all');
$prevpage = $start - $tmpmaxmessagedisplay;
$nextpage = $start + $maxmessagedisplay;
$pagedropindexpvbl = qq~<img src="$imagesdir/index_left0.gif" height="14" width="13" border="0" alt="" style="margin: 0px; display: inline; vertical-align: middle;" />~;
@@ -336,30 +332,26 @@
if(visel == pagstart) pagedropindex += '<td class="titlebg" height="14" style="height: 14px; padding-left: 1px; padding-right: 1px; font-size: 9px; font-weight: bold;">' + i + '</td>';
else pagedropindex += '<td height="14" class="droppages"><a href="$scripturl?num=$viewnum/' + pagstart + '">' + i + '</a></td>';
pagstart += maxpag;
- }
- ~;
- if ($showpageall) {
- $pageindexjs .= qq~
- if (vistart != viend) {
- if(visel == 'all') pagedropindex += '<td class="titlebg" height="14" style="height: 14px; padding-left: 1px; padding-right: 1px; font-size: 9px; font-weight: normal;"><b>$pidtxt{'01'}</b></td>';
- else pagedropindex += '<td height="14" class="droppages"><a href="$scripturl?num=$viewnum/all-' + allpagstart + '">$pidtxt{'01'}</a></td>';
+ }~;
+ if ($showpageall) {
+ $pageindexjs .= qq~
+ if (vistart != viend) {
+ if(visel == 'all') pagedropindex += '<td class="titlebg" height="14" style="height: 14px; padding-left: 1px; padding-right: 1px; font-size: 9px; font-weight: normal;"><b>$pidtxt{'01'}</b></td>';
+ else pagedropindex += '<td height="14" class="droppages"><a href="$scripturl?num=$viewnum/all-' + allpagstart + '">$pidtxt{'01'}</a></td>';
+ }~;
}
- ~;
- }
- $pageindexjs .= qq~
+ $pageindexjs .= qq~
if(visel != 'xx') pagedropindex += '<td height="14" class="small" style="height: 14px; padding-left: 4px;">$pagedropindexpv$pagedropindexnx</td>';
else pagedropindex += '<td height="14" class="small" style="height: 14px; padding-left: 4px;">$pagedropindexpvbl$pagedropindexnxbl</td>';
pagedropindex += '</tr></table>';
document.getElementById("ViewIndex1").innerHTML=pagedropindex;
document.getElementById("ViewIndex1").style.visibility = "visible";
document.getElementById("ViewIndex2").innerHTML=pagedropindex;
- document.getElementById("ViewIndex2").style.visibility = "visible";
- ~;
+ document.getElementById("ViewIndex2").style.visibility = "visible";~;
if ($pagenumb > $dropdisplaynum) {
$pageindexjs .= qq~
document.getElementById("decselector1").value = decparam;
- document.getElementById("decselector2").value = decparam;
- ~;
+ document.getElementById("decselector2").value = decparam;~;
}
$pageindexjs .= qq~
}