'Pagebreak' in den Artikeln

Begonnen von MikePapa, 30 August 2003, 21:59:12

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

MikePapa

Hallo,

im VKP-Maxi hatte ich die article.php des Moduls NEWS so abgeändert, daß wie in den Sections die Texte auf mehreren Seiten dargestellt werden können.

Die besagte article.php habt Ihr jetzt dermaßen aufgeräumt (Hut ab!), daß ich es nicht mehr schaffe, die Erweiterung einzubauen.

Vielleicht könnt Ihr mir in einer ruhigen Minute ;) weiterhelfen:

 

/*** Erweiterung: Aufteilen der Artikel auf mehrere Seiten ***/
    $contentpages = explode( "<!--pagebreak-->", $bodytext );
    $pageno = count($contentpages);

    if ( $page=="" || $page < 1 )
$page = 1;

    if ( $page > $pageno )
$page = $pageno;

    $arrayelement = (int)$page;

    $arrayelement --;

    $bodytext = $contentpages[$arrayelement];

    if($page >= $pageno) {
 $next_page = "";
    } else {
$next_pagenumber = $page + 1;
if ($page != 1) {
   $next_page .= "<img src=\"images/blackpixel.gif\" width=\"10\" height=\"2\" border=\"0\" alt=\"\">    ";
}
$next_page .= "<a href=\"modules.php?name=News&file=article&sid=$sid&mode=&order=0&thold=0&page=$next_pagenumber\">"._NEXT." ($next_pagenumber/$pageno)</a> <a href=\"modules.php?name=News&file=article&sid=$sid&mode=&order=0&thold=0&page=$next_pagenumber\"><img src=\"images/download/right.gif\" border=\"0\" alt=\""._NEXT."\"></a>";
    }

    if($page <= 1) {
$previous_page = "";
    } else {
$previous_pagenumber = $page - 1;
$previous_page = "<a href=\"modules.php?name=News&file=article&sid=$sid&mode=&order=0&thold=0&page=$previous_pagenumber\"><img src=\"images/download/left.gif\" border=\"0\" alt=\""._PREVIOUS."\"></a> <a href=\"modules.php?name=News&file=article&sid=$sid&mode=&order=0&thold=0&page=$previous_pagenumber\">"._PREVIOUS." ($previous_pagenumber/$pageno)</a>";
    }

     if ($pageno > 1) {
     $seite = ""._PAGE.": $page/$pageno<br><br>";
     }

    if($page <= 1) {
               if($bodytext == "") {
                            $bodytext = "$seite$hometext$notes<center><br><br><br>$previous_page    $next_page<br><br></center>";
               }else{
                            $bodytext = "$seite$hometext<br><br>$bodytext$notes<center><br><br><br>$previous_page    $next_page<br><br></center>";
                            }
    }else{
               $bodytext = "$seite$bodytext$notes<center><br><br><br>$previous_page    $next_page<br><br></center>";
    }

/***********************************/
 



Weiter oben in der article.php habe ich noch
     if (($page == 1) OR ($page == "")) {
        sql_query("UPDATE ".$prefix."_stories SET counter=counter+1 where sid=$sid", $dbi);
    }

eingefügt, um den Lesezähler nicht unrealistisch hochzuschrauben.

Ich hoffe, der Code ist halbwegs verständlich zu lesen.

Gruß

"MikePapa"

MikePapa

So, nach langem Hin und Her habe ich nun eine Lösung gefunden.
Für alle Interessierten (und für die Macher dieses System mit Bitte um Prüfung):

article.php:

Die geänderte Counterzeile
 
/***** Counter nur erhöhen, wenn die erste Seite aufgerufen wird *****/
if (($page == 1) OR ($page == "")) {
   sql_query("UPDATE ${prefix}_stories SET counter=counter+1 where sid=".$sid."");
    }
 


Der geänderte Bereich zur Darstellung der jeweiligen Seiten der Artikel
 
$story["datetime"]  = formatTimestamp($story["time"]);
$story["informant"] = (empty($story["informant"])) ? $GLOBALS['anonymous'] : $story["informant"];
$story["notes"]     = (empty($story["notes"])) ? "" : "<b>"._NOTE."</b> <i>".convertNewsForView($story["notes"])."</i>";
$story["hometext"]  = convertNewsForView($story["hometext"]);
$story["bodytext"]  = convertNewsForView($story["bodytext"]);

    $contentpages = explode( "<!--pagebreak-->", $story["bodytext"] );
    $pageno = count($contentpages);
    if ( $page=="" || $page < 1 )
$page = 1;
    if ( $page > $pageno )
$page = $pageno;
    $arrayelement = (int)$page;
    $arrayelement --;
    if ($pageno > 1) {
        $story["hometext"] .= ""._PAGE.": $page/$pageno";
    }

    if($page >= $pageno) {
 $next_page = "";
    } else {
$next_pagenumber = $page + 1;
if ($page != 1) {
   $next_page .= "    <img src=\"images/blackpixel.gif\" width=\"10\" height=\"2\" border=\"0\" alt=\"\">    ";
}
$next_page .= "<a href=\"modules.php?name=News&file=article&sid=$sid&page=$next_pagenumber\">"._NEXT." ($next_pagenumber/$pageno)</a> <a href=\"modules.php?name=News&file=article&sid=$sid&page=$next_pagenumber\"><img src=\"images/download/right.gif\" border=\"0\" alt=\""._NEXT."\"></a>";
    }

    if($page <= 1) {
$previous_page = "";
    } else {
$previous_pagenumber = $page - 1;
$previous_page = "<a href=\"modules.php?name=News&file=article&sid=$sid&page=$previous_pagenumber\"><img src=\"images/download/left.gif\" border=\"0\" alt=\""._PREVIOUS."\"></a> <a href=\"modules.php?name=News&file=article&sid=$sid&page=$previous_pagenumber\">"._PREVIOUS." ($previous_pagenumber/$pageno)</a>";
    }

    $contentpages[$arrayelement] .= "<div align=\"center\">$previous_page    $next_page</div>";
    $story["bodytext"] = $contentpages[$arrayelement];

$story["completetext"]  = (empty($story["bodytext"])) ? "".$story["hometext"]."".$story["notes"]."" : "".$story["hometext"]."".$story["bodytext"]."".$story["notes"]."";
 


Ich habe die Datei bei mir geändert und es funktioniert wunderbar.

Als Beispiel:  http://www.militarypolice.de/modules.php?name=News&file=article&sid=77

Die Language-Datei muß natürlich noch entsprechend angepasst werden.

Falls die Änderungen nicht verständlich sein sollten, kann ich die Datei auch gerne zumailen.


Gruß

"MikePapa"


[Editiert am 4/9/2003 von MikePapa]