Verfasst: Mi 1. Nov 2006, 10:49
Hallo HerrB,
vielen Dank. Funktioniert.
Gruß Mc
vielen Dank. Funktioniert.
Gruß Mc
Das Diskussionsforum zum Open Source Content Management System
https://forum.contenido.org/
Folgendes kann funktionieren, wenn nicht, bleibt Dir die einfache Variante...:ich kann zwar die kategorien auch manuell auswählen, aber da wäre ja zu einfach
Code: Alles auswählen
AND (b.level = '<Level von FAQ>' OR b.level = '<Level von FAQ + 1>')Habe ich nicht verstanden. Wenn man bei Klick auf Test 1.1 zu Test 1.1.1 gelangen soll, musst Du im Startartikel eine Weiterleitung definieren. Wenn in Test 1.1 die Artikel aus Test 1.1 und Test 1.1.1 angezeigt werden sollen, musst Du halt in der Konfiguration in Test 1.1 (unter Verwendung eines "normalen" Artikelliste-Advanced-Moduls) sowohl die Kategorie Test 1.1, als auch Test 1.1.1 auswählen.Wenn ich jetzt auf Test 1.1 gehe möchte ich gern das es mir die nur Kategorie in Order Ansicht Test 1.1.1 ausgibt und die artikel zu Test 1.1
Hallo HerrB,Habe ich nicht verstanden. Wenn man bei Klick auf Test 1.1 zu Test 1.1.1 gelangen soll, musst Du im Startartikel eine Weiterleitung definieren. Wenn in Test 1.1 die Artikel aus Test 1.1 und Test 1.1.1 angezeigt werden sollen, musst Du halt in der Konfiguration in Test 1.1 (unter Verwendung eines "normalen" Artikelliste-Advanced-Moduls) sowohl die Kategorie Test 1.1, als auch Test 1.1.1 auswählen.
Code: Alles auswählen
foreach ($aData as $aValue) {
echo ' <div id="CatListing"><a href="'.$aValue["CatLink"].'">'.$aValue["Category"].'</a></div>', chr(10);
}Siehe meine vorherige Antwort:Aber es soll auch auf der Test 1.1 also wie die ganzen Artikel gelistet werden, ganz oben stehen das in der Test 1.1 noch ein Kategorie gibt also die (Test 1.1.1)
Wenn Du dabei auch die Kategorie ausgibst, sollte die gewünschte Funktionalität erreicht werden.Wenn in Test 1.1 die Artikel aus Test 1.1 und Test 1.1.1 angezeigt werden sollen, musst Du halt in der Konfiguration in Test 1.1 (unter Verwendung eines "normalen" Artikelliste-Advanced-Moduls) sowohl die Kategorie Test 1.1, als auch Test 1.1.1 auswählen.
Das Modul ist nicht dazu gedacht - die Sortierung der Artikel ist auch unabhängig von den Kategorien (wie irgendwo erwähnt). Es kann daher sein, dass bei 10 Artikeln (aus 10 Kategorien) 10 unterschiedliche Bezeichnungen ausgegeben werden.Aber ich habe auch noch das problem das wenn ich nur die Kategorien anzeigen lassen will das er das wie gesagt foreacht tut? Also zeigt er mir das 10 mal an!
Code: Alles auswählen
// Sort by
$sql .= "ORDER BY ";Code: Alles auswählen
$sql .= "CATART.idcat, ";Code: Alles auswählen
$sOldCategory = "";
foreach ($aData as $aValue) {
if ($sOldCategory !== $aValue["Category"]) {
$sOldCategory = $aValue["Category"];
echo ' <div id="CatListing"><a href="'.$aValue["CatLink"].'">'.$aValue["Category"].'</a></div>', chr(10);
}
}Kann es sein das dadurch aber auch immer eine Seit meht in der Navigation angezeit wird? Das heißt wenn ich 10 Artikel haben und es sollen pro Seite auch 10 angezeigt werden, dass in der Navigation dann steht Seite 1, 2 und wenn ich auf 2 klicke da ja selbstverständlich nichts drinn ist?netmax hat geschrieben: Ich habe festgestellt, dass nur "volle" Seiten mit Artikeln als Navi-Link dargestellt werden. D.h: Bei 22 vorhandenen Artikeln und 10 Artikeln pro Seite werden unten nur 2 Seiten angeboten, die restlichen 2 Artikel befinden sich nicht im Zugriff.
Schuld daran ist die Berechnung der Seiten in der Ausgabe:Dies berücksichtigt nur den Integer der Division, also 22/10=2.Code: Alles auswählen
$iPages = intval($lCount / $aSettings["ArticlePerPage"]);
Wenn man nun unter jeder dieser Zeilen dies hier einfügt...... klappt's auch mit den Restseiten.Code: Alles auswählen
if (($lCount % $aSettings["ArticlePerPage"])>0) $iPages++;
LG
Marco
Code: Alles auswählen
$iPages = intval($lCount / $aSettings["ArticlePerPage"]); Code: Alles auswählen
$iPages = ceil($lCount / $aSettings["ArticlePerPage"]);Danke schon mal im Vorraus.i-fekt hat geschrieben:Nun kannst du mit ".$tag.$monat.$jahr." das Datum ausgeben lassen. Es erscheint in der Form "10. Februar 2006". Natürlich kannst du es auch anders auslesen und ausgaben.Code: Alles auswählen
# #-----[ FIND ]------------------------------------------ # foreach ($aData as $aValue) { # #-----[ ADD, AFTER ]------------------------------------ # $datum = strtotime($aValue["Created"]); $tag = date("j",$datum); $monat = date("m",$datum); $jahr = date("Y",$datum); $monat = str_replace( array('01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'), array('. Januar ', '. Februar ', '. März ', '. April ', '. Mai ', '. Juni ', '. Juli ', '. August ', '. September ', '. Oktober ', '. November ', '. Dezember '), $monat ); # #-----[ ADD, ANYWHERE ]---------------------------------- # ".$tag.$monat.$jahr."
Direkt unterdonner_blitz hat geschrieben:Ich habe ein Problem mit diesem Codeschnipsel. An welcher Stelle wird dieser Code eingesetzt?
Danke schon mal im Vorraus.i-fekt hat geschrieben:Nun kannst du mit ".$tag.$monat.$jahr." das Datum ausgeben lassen. Es erscheint in der Form "10. Februar 2006". Natürlich kannst du es auch anders auslesen und ausgaben.Code: Alles auswählen
# #-----[ FIND ]------------------------------------------ # foreach ($aData as $aValue) { # #-----[ ADD, AFTER ]------------------------------------ # $datum = strtotime($aValue["Created"]); $tag = date("j",$datum); $monat = date("m",$datum); $jahr = date("Y",$datum); $monat = str_replace( array('01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'), array('. Januar ', '. Februar ', '. März ', '. April ', '. Mai ', '. Juni ', '. Juli ', '. August ', '. September ', '. Oktober ', '. November ', '. Dezember '), $monat ); # #-----[ ADD, ANYWHERE ]---------------------------------- # ".$tag.$monat.$jahr."
Code: Alles auswählen
# Output data
# Every output manipulation should be done here...
#
# Base information:
# $aSettings["Elements"]: Number of expected, additional elements from each article
# $aSettings["ArticlePerPage"]: Number of articles per page (0: show all)
# $aSettings["k".$i]["ElementType"]: Per Element: Type of Element: Text, Image or ExtractedImage
# $aSettings["k".$i]["ElementWidth"]: Per Element: Text length or image width (-> recycling ...)
# $aSettings["k".$i]["ElementHeight"]: Per Element: Image width
#
# Per article:
# $aValue["Headline"]: Content of article element specified as containing the headline information
# $aValue["Link"]: Relative link to get to the listed article
# $aValue["LastModified"]: Last modified date of the article
# $aValue["Created"]: Created date of the article
# $aValue["Published"]: Published date of the article
# $aValue["Category"]: Category name
#
# Per article additional element:
# $aValue["i".$i]["Value"]: Text (only for text elements, otherwise "")
# $aValue["i".$i]["WebPath"]: HTTP... path to image
# $aValue["i".$i]["ServerPath"]: /server/... path to image
# $aValue["i".$i]["Width"]: >Original< image width
# $aValue["i".$i]["Height"]: >Original< image height
foreach ($aData as $aValue) {
Code: Alles auswählen
echo '<div class="article_date">'."$tag$monat$jahr".'</div>', chr(10);Code: Alles auswählen
<?php
# Initialization
$bDebug = false;
$iDataStart = 20;
$lCount = 0;
unset ($aData);
$aData = array();
# Base settings
unset ($aSettings);
$aSettings = array();
$aSettings["ArticleCount"] = "CMS_VALUE[0]";
$aSettings["ArticlePerPage"] = "CMS_VALUE[1]";
$aSettings["SortBy"] = "CMS_VALUE[2]";
$aSettings["SortDir"] = "CMS_VALUE[3]";
$aSettings["ShowStart"] = "CMS_VALUE[4]";
$aSettings["Category"] = "CMS_VALUE[5]";
$aSettings["HeadlineIdentifier"] = "CMS_VALUE[7]";
$aSettings["HeadlineLength"] = "CMS_VALUE[8]";
$aSettings["Elements"] = "CMS_VALUE[9]";
$aSettings["CatTypeSel"] = "CMS_VALUE[10]";
$aSettings["AddCats"] = "CMS_VALUE[11]";
# Checking base settings
if (!is_numeric($aSettings["ArticleCount"]) || $aSettings["ArticleCount"] < 0) {
$aSettings["ArticleCount"] = 5;
}
if (!is_numeric($aSettings["ArticlePerPage"]) || $aSettings["ArticlePerPage"] < 0) {
$aSettings["ArticlePerPage"] = 0; // Deactivating page browsing
}
if ($aSettings["ArticlePerPage"] == 0 || !is_numeric($_REQUEST["nextstep"])) {
$_REQUEST["nextstep"] = 0;
}
if (!is_numeric($aSettings["Category"]) || $aSettings["Category"] <= 0) {
$aSettings["Category"] = 0;
}
if (strlen($aSettings["HeadlineIdentifier"]) > 50) {
$aSettings["HeadlineIdentifier"] = "";
}
if (!is_numeric($aSettings["HeadlineLength"]) || $aSettings["HeadlineLength"] < 0) {
$aSettings["HeadlineLength"] = 0;
}
if (!is_numeric($aSettings["Elements"]) || $aSettings["Elements"] < 0) {
$aSettings["Elements"] = 0;
}
if ($aSettings["CatTypeSel"] == "" || ($aSettings["AddCats"] == "" && $aSettings["CatTypeSel"] == "selected")) {
$aSettings["CatTypeSel"] = "none";
}
# Detail settings
if ($aSettings["Elements"] > 0) {
for ($i = 0; $i < $aSettings["Elements"]; $i++) {
$iElementType = $iDataStart + ($i * 5);
$iElementIdentifier = $iElementType + 1;
$iElementWidth = $iElementType + 2;
$iElementHeight = $iElementType + 3;
$aSettings["k".$i] = array();
$aSettings["k".$i]["ElementType"] = "CMS_VALUE[$iElementType]"; // Text, Image, ExtractedImage
$aSettings["k".$i]["Identifier"] = "CMS_VALUE[$iElementIdentifier]";
$aSettings["k".$i]["ElementWidth"] = "CMS_VALUE[$iElementWidth]"; // Textlength or ImageWidth
$aSettings["k".$i]["ElementHeight"] = "CMS_VALUE[$iElementHeight]";
# Check detail settings
if ($aSettings["k".$i]["ElementType"] == "") {
$aSettings["k".$i]["ElementType"] == "Text";
}
if ($aSettings["k".$i]["ElementType"] == "Text") {
$aSettings["ElementHeight"] = 0;
if (!is_numeric($aSettings["k".$i]["ElementWidth"]) || $aSettings["k".$i]["ElementWidth"] < 0) {
$aSettings["k".$i]["ElementWidth"] = 50;
}
} else if (!is_numeric($aSettings["k".$i]["ElementWidth"]) || $aSettings["k".$i]["ElementWidth"] <= 0 ||
!is_numeric($aSettings["k".$i]["ElementHeight"]) || $aSettings["k".$i]["ElementHeight"] <= 0) {
$aSettings["k".$i]["ElementWidth"] = 0;
$aSettings["k".$i]["ElementHeight"] = 0;
}
if (strlen($aSettings["Identifier"]) > 50) {
$aSettings["Identifier"] = "";
}
}
}
unset ($iDataStart);
unset ($iElementType);
unset ($iElementIdentifier);
unset ($iElementWidth);
unset ($iElementHeight);
if ($aSettings["Category"] !== "0" && $aSettings["HeadlineIdentifier"] !== "") {
if (!is_object($db2)) {
$db2 = new DB_Contenido;
}
# Specifying search categories
$sSelCats = "'".$aSettings["Category"]."'";
# Adding categories "below" primary category
switch ($aSettings["CatTypeSel"]) {
case "below":
$lCatLevel = -1;
$sql = "SELECT a.idcat AS idcat, b.level AS level FROM ".$cfg["tab"]["cat"]." a, ".$cfg["tab"]["cat_tree"]." b ";
$sql .= "WHERE a.idcat = b.idcat ORDER BY b.idtree";
$db2->query($sql);
while($db2->next_record()) {
if ($db2->f("idcat") == $aSettings["Category"]) {
$lCatLevel = $db2->f("level");
} else if ($lCatLevel > -1 && $db2->f("level") > $lCatLevel) {
$sSelCats .= ",'".$db2->f("idcat")."'";
} else if ($db2->f("level") <= $lCatLevel) {
break;
}
}
break;
case "selected":
$aCats = explode(",",$aSettings["AddCats"]);
foreach ($aCats as $value) {
if (is_numeric($value)) {
$sSelCats .= ",'".$value."'";
}
}
break;
default:
}
$sql = "SELECT tblData.value AS headline, ARTLANG.idart AS id, ARTLANG.lastmodified AS lastmodified, " ;
$sql .= "ARTLANG.created AS created, ARTLANG.published AS published, CATLANG.name AS category, ";
$sql .= "ARTLANG.idartlang AS idartlang, CATART.idcat AS idcat, CATART.idcatart AS idcatart FROM ";
$sql .= $cfg["tab"]["cat_art"]." AS CATART, ";
$sql .= $cfg["tab"]["art_lang"]." AS ARTLANG, ";
$sql .= $cfg["tab"]["cat_lang"]." AS CATLANG, ";
$sql .= $cfg["tab"]["content"]." AS tblData ";
$sql .= "WHERE CATART.idcat IN (".$sSelCats.") AND ARTLANG.idlang = '".$lang."' ";
$sql .= "AND tblData.idartlang = ARTLANG.idartlang ";
$sql .= "AND CATLANG.idlang = ARTLANG.idlang ";
$sql .= "AND CATLANG.idcat = CATART.idcat ";
$sql .= "AND ARTLANG.idart = CATART.idart ";
if ($aSettings["ShowStart"] != "enabled") {
if ($cfg["is_start_compatible"] == true) {
$sql .= "AND CATART.is_start = '0' ";
} else {
$sql .= "AND tblData.idartlang != CATLANG.startidartlang ";
}
}
$sql .= "AND ARTLANG.online = '1' ";
$sql .= "AND ".$aSettings["HeadlineIdentifier"]." ";
// Sort by
$sql .= "ORDER BY ";
$sql .= $aSettings["SortBy"]." ".$aSettings["SortDir"]." ";
// LIMIT
if ($aSettings["ArticleCount"] > 0) {
$sql .= "LIMIT 0, ".$aSettings["ArticleCount"];
}
// execute query
$db2->query($sql);
$lCount = $db2->num_rows();
if ($lCount > 0) {
if (!is_object($db3)) {
$db3 = new DB_Contenido;
}
if (!is_object($db4)) {
$db4 = new DB_Contenido;
}
if ($aSettings["ArticlePerPage"] > 0) {
$lStartCount = $_REQUEST["nextstep"];
$lEndCount = $_REQUEST["nextstep"] + $aSettings["ArticlePerPage"];
if ($lEndCount > $lCount) {
$lEndCount = $lCount;
}
} else {
$lStartCount = 0;
$lEndCount = $lCount;
}
$lRow = 0;
$i = 0;
while ($db2->next_record()) {
if ( $aSettings["ShowStart"] == "enabled" ||
($aSettings["ShowStart"] != "enabled" && $db2->f("idartlang") != $lStartIDArtLang)) {
if ($lRow >= $lStartCount && $lRow < $lEndCount) {
$aData[$i] = array();
$aData[$i]["Category"] = urldecode($db2->f("category"));
$aData[$i]["Link"] = $sess->url("front_content.php?idcat=".$db2->f("idcat")."&idart=".$db2->f("id"));;
$aData[$i]["LastModified"] = $db2->f("lastmodified");
$aData[$i]["Created"] = $db2->f("created");
$aData[$i]["Published"] = $db2->f("published");
$sTmpValue = html_entity_decode(strip_tags(urldecode($db2->f('headline'))));
if ($aSettings["HeadlineLength"] > 0 && strlen($sTmpValue) > $aSettings["HeadlineLength"]) {
# Cutting text but preserving words and entities
$sTmpValue = htmlentities(capiStrTrimAfterWord($sTmpValue, $aSettings["HeadlineLength"])."...");
}
$aData[$i]["Headline"] = $sTmpValue;
if ($aSettings["Elements"] > 0) {
for ($k = 0; $k < $aSettings["Elements"]; $k++) {
$aData[$i]["i".$k] = array();
$aData[$i]["i".$k]["Value"] = "";
$aData[$i]["i".$k]["ServerPath"] = "";
$aData[$i]["i".$k]["WebPath"] = "";
$aData[$i]["i".$k]["Width"] = 0;
$aData[$i]["i".$k]["Height"] = 0;
}
$sql = "SELECT tblData.value AS value, tblData.idtype AS idtype, tblData.typeid AS typeid FROM ";
$sql .= $cfg["tab"]["cat_art"]." AS tblCatArt, ";
$sql .= $cfg["tab"]["art_lang"]." AS tblArtLang, ";
$sql .= $cfg["tab"]["content"]." AS tblData ";
$sql .= "WHERE tblData.idartlang = tblArtLang.idartlang AND ";
$sql .= "tblArtLang.idlang = '".$lang."' AND ";
$sql .= "tblArtLang.idart = tblCatArt.idart AND ";
$sql .= "tblCatArt.idcatart = '".$db2->f("idcatart")."' AND (";
$sql_items = "";
for ($k = 0; $k < $aSettings["Elements"]; $k++) {
if ($aSettings["k".$k]["Identifier"] != "") {
if ($sql_items != "") {
$sql_items .= " OR (".$aSettings["k".$k]["Identifier"].")";
} else {
$sql_items = "(".$aSettings["k".$k]["Identifier"].")";
}
}
}
$sql .= $sql_items.")";
if ($bDebug) {
echo "<pre>".$sql."</pre>", chr(10);
}
// execute query
$db3->query($sql);
while ($db3->next_record()) {
$sTypeIdentifier = "tblData.idtype = '".$db3->f('idtype')."' AND tblData.typeid = '".$db3->f('typeid')."'";
# Note: The TypeIdentifier for one item may be the same as for another item.
# Therefore, we are storing the content everywhere as needed
for ($k = 0; $k < $aSettings["Elements"]; $k++) {
if ($sTypeIdentifier == $aSettings["k".$k]["Identifier"]) {
switch (TRUE) {
case ($aSettings["k".$k]["ElementType"] == "Image" || $aSettings["k".$k]["ElementType"] == "ExtractedImage"):
$sql = "";
if ($aSettings["k".$k]["ElementType"] == "Image") {
$sql = "SELECT dirname, filename FROM ".$cfg["tab"]["upl"]." ";
$sql .= "WHERE idupl = '".$db3->f('value')."'";
} else {
$sTmpValue = urldecode($db3->f('value'));
$regEx = "/<img[^>]*?>.*?/i";
$match = array ();
preg_match($regEx, $sTmpValue, $match);
$regEx = "/(src)(=)(['\"]?)([^\"']*)(['\"]?)/i";
$img = array ();
preg_match($regEx, $match[0], $img);
$img_src = preg_split("/\//", $img[0]);
$img_name = $img_src[count($img_src) - 1];
$img_name = preg_replace("/\"/", "", $img_name);
#Don't know what is happening here, exactly...
# $img_split = preg_split("/\./", $img_name);
# $img_type = $img_split[count($img_split) - 1];
# $img_split2 = preg_split("/_/", $img_split[0]);
$name = strtolower($img_name);
#Don't know what is happening here, exactly...
#if (count($img_split2) > 1) {
# $img_x = $img_split2[count($img_split2) - 1];
# $img_y = $img_split2[count($img_split2) - 2];
# if (is_numeric($img_x) AND is_numeric($img_y)) {
# $suffix = "_".$img_x."_".$img_y.".".$img_type;
# $name = preg_replace("/$suffix/", "", $img_name);
# $name = $name.".[a-zA-Z]{3}";
# }
#}
if (strlen($name) > 0) {
$sql = "SELECT dirname, filename FROM ".$cfg["tab"]["upl"]." ";
$sql .= "WHERE LOWER(filename) = '$name'";
// $sql .= "WHERE filename REGEXP '$name'"; // Old: for 'banner.jpg' 'merlin_banner.jpg' is also returned
}
}
if ($bDebug) {
echo "<pre>".$sql."</pre>";
}
// execute query
if ($sql != "") {
$db4->query($sql);
if ($db4->next_record()) {
$aData[$i]["i".$k]["ServerPath"] = $cfgClient[$client]["upl"]["path"].$db4->f('dirname').$db4->f('filename');
$aData[$i]["i".$k]["WebPath"] = $cfgClient[$client]["upl"]["htmlpath"].$db4->f('dirname').$db4->f('filename');
list ($width, $height, $type, $attr) = getimagesize($aData[$i]["i".$k]["WebPath"]);
$aData[$i]["i".$k]["Width"] = $width;
$aData[$i]["i".$k]["Height"] = $height;
}
}
break;
default:
$sTmpValue = html_entity_decode(strip_tags(urldecode($db3->f('value'))));
if ($aSettings["k".$k]["ElementWidth"] > 0 && strlen($sTmpValue) > $aSettings["k".$k]["ElementWidth"]) {
# Cutting text but preserving words and entities
$sTmpValue = htmlentities(capiStrTrimAfterWord($sTmpValue, $aSettings["k".$k]["ElementWidth"])."...");
}
$aData[$i]["i".$k]["Value"] = $sTmpValue;
}
}
}
}
}
$i++;
} else if ($lRow == $lEndCount) {
break;
}
$lRow++;
}
}
# Clearing memory
unset ($db2);
unset ($db3);
unset ($db4);
unset ($sql);
unset ($lStartIDArtLang);
unset ($lStartCount);
unset ($lEndCount);
# Output data
# Every output manipulation should be done here...
#
# Base information:
# $aSettings["Elements"]: Number of expected, additional elements from each article
# $aSettings["ArticlePerPage"]: Number of articles per page (0: show all)
# $aSettings["k".$i]["ElementType"]: Per Element: Type of Element: Text, Image or ExtractedImage
# $aSettings["k".$i]["ElementWidth"]: Per Element: Text length or image width (-> recycling ...)
# $aSettings["k".$i]["ElementHeight"]: Per Element: Image width
#
# Per article:
# $aValue["Headline"]: Content of article element specified as containing the headline information
# $aValue["Link"]: Relative link to get to the listed article
# $aValue["LastModified"]: Last modified date of the article
# $aValue["Created"]: Created date of the article
# $aValue["Published"]: Published date of the article
# $aValue["Category"]: Category name
#
# Per article additional element:
# $aValue["i".$i]["Value"]: Text (only for text elements, otherwise "")
# $aValue["i".$i]["WebPath"]: HTTP... path to image
# $aValue["i".$i]["ServerPath"]: /server/... path to image
# $aValue["i".$i]["Width"]: >Original< image width
# $aValue["i".$i]["Height"]: >Original< image height
#
#-----[ FIND ]------------------------------------------
#
foreach ($aData as $aValue) {
#
#-----[ ADD, AFTER ]------------------------------------
#
$datum = strtotime($aValue["Created"]);
$tag = date("j",$datum);
$monat = date("m",$datum);
$jahr = date("Y",$datum);
$monat = str_replace(
array('01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'),
array('. Januar ', '. Februar ', '. März ', '. April ', '. Mai ', '. Juni ', '. Juli ', '. August ', '. September ', '. Oktober ', '. November ', '. Dezember '),
$monat
);
#
#-----[ ADD, ANYWHERE ]----------------------------------
#
".$tag.$monat.$jahr."
/* Init Template
*/
$template_advanced = "teaser_advanced.html";
$template_advanced2 = "teaser_advanced_element.html";
$newsheadline = "Neues auf dieser Seite";
$ii = 0;
if (!is_object($tpl)) {
$tpl = new Template;
}
$tpl->reset();
$tpl->set('s', 'TITLE', $newsheadline);
foreach ($aData as $aValue) {
$headline_advanced = $aValue["Category"].": ".$aValue["Headline"];
if ($aSettings["Elements"] > 0) {
if (!is_object($tpl2)) { #generate template for elements
$tpl2 = new Template;
}
$tpl2->reset();
$img_number = 0;
$text_number = 0;
for ($i = 0; $i < $aSettings["Elements"]; $i++) {
switch (TRUE) {
case ($aSettings["k".$i]["ElementType"] == "Image" || $aSettings["k".$i]["ElementType"] == "ExtractedImage"):
if (!empty($aValue["i".$i]["WebPath"])) { // modify oldperl: if no Webpath, there's no image
$image = $aValue["i".$i]["WebPath"];
$width = $aValue["i".$i]["Width"];
$height = $aValue["i".$i]["Height"];
if ($aSettings["k".$i]["ElementWidth"] > 0 && $aSettings["k".$i]["ElementHeight"] > 0) {
# Check, if resize necessary
if ($aValue["i".$i]["ServerPath"] != "" && file_exists($aValue["i".$i]["ServerPath"]) &&
($aValue["i".$i]["Width"] > $aSettings["k".$i]["ElementWidth"] ||
$aValue["i".$i]["Height"] > $aSettings["k".$i]["ElementHeight"])) {
# Scale image
$image = capiImgScale($aValue["i".$i]["ServerPath"], $aSettings["k".$i]["ElementWidth"], $aSettings["k".$i]["ElementHeight"], false, false, 10, false);
#Get dimensions of the image
list ($width, $height, $type, $attr) = getimagesize($image);
} else {
$image = $aValue["i".$i]["WebPath"];
$width = $aValue["i".$i]["Width"];
$height = $aValue["i".$i]["Height"];
}
}
if ($image != "") {
$element_class = 'img_advanced'.$img_number;
if ($XHTML == true) {
$element_content = '<img src="'.$image.'" width="'.$width.'" height="'.$height.'" alt="" />'; } else {
$element_content = '<img src="'.$image.'" width="'.$width.'" height="'.$height.'" alt="">';
}
$img_number++;
}
} else { // modify oldperl: if no image, we need no template
$no_template = true;
}
break;
default: // Everything else is treated as "Text"
$element_class = 'text_advanced'.$text_number; // set the class-value for div
$element_content = $aValue["i".$i]["Value"]; // set content for div
$text_number++;
}
if(!$no_template) { // modify oldperl: build tpl only if needed
// build elements with template
$tpl2->set('d', 'CLASS_ELEMENT', $element_class);
$tpl2->set('d', 'CONTENT_ELEMENT',$element_content);
$tpl2->next();
} else {
$no_template = false;
}
}
$content_elements = $tpl2->generate('templates/'.$template_advanced2, true); // save tpl with elements for printing with master-tpl
}
if ($XHTML == true) {
$sign_img = '';
} else {
$sign_img = '';
}
$show_more = '<a href="'.$aValue["Link"].'">'.mi18n("More...").'</a>';
$tpl->set('d', 'HEADLINE', $headline_advanced);
$tpl->set('d', 'COUNT', ($ii % 2)); // Variable füllen für CSS-Class teaser_advanced
$tpl->set('d', 'CONTENT', $content_elements);
$tpl->set('d', 'MORE', $show_more);
$tpl->set('d', 'SIGN_MORE', $sign_more);
$tpl->next();
$ii++; // Variable hochzählen für CSS-Class teaser_advanced
}
}
# Page browsing
# Hint: Number of max available records: $lCount
# Number of pages: round($lCount / $aSettings["ArticlePerPage"])
# First page: nextstep=0
# Last page: nextstep=(round($lCount / $aSettings["ArticlePerPage"]) - 1) * $aSettings["ArticlePerPage"];
# (I have to admit that I'm not sure about the last page formula ... ;-) )
if ($aSettings["ArticlePerPage"] > 0) {
# Example: |< 1 ... 3 4 5 ... 8 >|
$iPages = ceil($lCount / $aSettings["ArticlePerPage"]);
$sPageBack = '';
$sPageLinks = '';
$sPageForward = '';
$sPageBack = '<a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep=0">|<</a>';
for ($i = 1; $i <= $iPages; $i++) {
$lNextStep = ($i - 1) * $aSettings["ArticlePerPage"];
if ($i == 1 || $i == $iPages) {
if ($sPageLinks != '') {
$sPageLinks .= ' ';
}
if ($_REQUEST["nextstep"] == $lNextStep) {
$sPageLinks .= $i; # I'm on the current page, no link
} else {
$sPageLinks .= '<a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.$lNextStep.'">'.$i.'</a>';
}
} else if ($_REQUEST["nextstep"] == $lNextStep) {
$sPageLinks .= ' '.$i; # I'm on the current page, no link
} else if ($_REQUEST["nextstep"] == ($lNextStep + $aSettings["ArticlePerPage"])) {
# Front
$sPageLinks .= ' <a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.$lNextStep.'">'.$i.'</a>';
} else if ($_REQUEST["nextstep"] == ($lNextStep - $aSettings["ArticlePerPage"])) {
# Back
$sPageLinks .= ' <a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.$lNextStep.'">'.$i.'</a>';
} else if ($_REQUEST["nextstep"] == ($lNextStep - (2 * $aSettings["ArticlePerPage"])) ||
$_REQUEST["nextstep"] == ($lNextStep + (2 * $aSettings["ArticlePerPage"]))) {
$sPageLinks .= '...';
}
}
$sPageForward = '<a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.(ceil($lCount / $aSettings["ArticlePerPage"]) - 1) * $aSettings["ArticlePerPage"].'">>|</a>'."\n";
}
$tpl->set('s', 'BACK', $sPageBack);
$tpl->set('s', 'PAGESELECTOR', $sPageLinks);
$tpl->set('s', 'FORWARD', $sPageForward);
$tpl->generate('templates/'.$template_advanced);
}
# Clearing memory
unset ($aData);
unset ($aSettings);
unset ($i);
unset ($lCount);
unset ($bDebug);
?>
Code: Alles auswählen
<?php
# Initialization
$bDebug = false;
$iDataStart = 20;
$lCount = 0;
unset ($aData);
$aData = array();
# Base settings
unset ($aSettings);
$aSettings = array();
$aSettings["ArticleCount"] = "CMS_VALUE[0]";
$aSettings["ArticlePerPage"] = "CMS_VALUE[1]";
$aSettings["SortBy"] = "CMS_VALUE[2]";
$aSettings["SortDir"] = "CMS_VALUE[3]";
$aSettings["ShowStart"] = "CMS_VALUE[4]";
$aSettings["Category"] = "CMS_VALUE[5]";
$aSettings["HeadlineIdentifier"] = "CMS_VALUE[7]";
$aSettings["HeadlineLength"] = "CMS_VALUE[8]";
$aSettings["Elements"] = "CMS_VALUE[9]";
$aSettings["CatTypeSel"] = "CMS_VALUE[10]";
$aSettings["AddCats"] = "CMS_VALUE[11]";
# Checking base settings
if (!is_numeric($aSettings["ArticleCount"]) || $aSettings["ArticleCount"] < 0) {
$aSettings["ArticleCount"] = 5;
}
if (!is_numeric($aSettings["ArticlePerPage"]) || $aSettings["ArticlePerPage"] < 0) {
$aSettings["ArticlePerPage"] = 0; // Deactivating page browsing
}
if ($aSettings["ArticlePerPage"] == 0 || !is_numeric($_REQUEST["nextstep"])) {
$_REQUEST["nextstep"] = 0;
}
if (!is_numeric($aSettings["Category"]) || $aSettings["Category"] <= 0) {
$aSettings["Category"] = 0;
}
if (strlen($aSettings["HeadlineIdentifier"]) > 50) {
$aSettings["HeadlineIdentifier"] = "";
}
if (!is_numeric($aSettings["HeadlineLength"]) || $aSettings["HeadlineLength"] < 0) {
$aSettings["HeadlineLength"] = 0;
}
if (!is_numeric($aSettings["Elements"]) || $aSettings["Elements"] < 0) {
$aSettings["Elements"] = 0;
}
if ($aSettings["CatTypeSel"] == "" || ($aSettings["AddCats"] == "" && $aSettings["CatTypeSel"] == "selected")) {
$aSettings["CatTypeSel"] = "none";
}
# Detail settings
if ($aSettings["Elements"] > 0) {
for ($i = 0; $i < $aSettings["Elements"]; $i++) {
$iElementType = $iDataStart + ($i * 5);
$iElementIdentifier = $iElementType + 1;
$iElementWidth = $iElementType + 2;
$iElementHeight = $iElementType + 3;
$aSettings["k".$i] = array();
$aSettings["k".$i]["ElementType"] = "CMS_VALUE[$iElementType]"; // Text, Image, ExtractedImage
$aSettings["k".$i]["Identifier"] = "CMS_VALUE[$iElementIdentifier]";
$aSettings["k".$i]["ElementWidth"] = "CMS_VALUE[$iElementWidth]"; // Textlength or ImageWidth
$aSettings["k".$i]["ElementHeight"] = "CMS_VALUE[$iElementHeight]";
# Check detail settings
if ($aSettings["k".$i]["ElementType"] == "") {
$aSettings["k".$i]["ElementType"] == "Text";
}
if ($aSettings["k".$i]["ElementType"] == "Text") {
$aSettings["ElementHeight"] = 0;
if (!is_numeric($aSettings["k".$i]["ElementWidth"]) || $aSettings["k".$i]["ElementWidth"] < 0) {
$aSettings["k".$i]["ElementWidth"] = 50;
}
} else if (!is_numeric($aSettings["k".$i]["ElementWidth"]) || $aSettings["k".$i]["ElementWidth"] <= 0 ||
!is_numeric($aSettings["k".$i]["ElementHeight"]) || $aSettings["k".$i]["ElementHeight"] <= 0) {
$aSettings["k".$i]["ElementWidth"] = 0;
$aSettings["k".$i]["ElementHeight"] = 0;
}
if (strlen($aSettings["Identifier"]) > 50) {
$aSettings["Identifier"] = "";
}
}
}
unset ($iDataStart);
unset ($iElementType);
unset ($iElementIdentifier);
unset ($iElementWidth);
unset ($iElementHeight);
if ($aSettings["Category"] !== "0" && $aSettings["HeadlineIdentifier"] !== "") {
if (!is_object($db2)) {
$db2 = new DB_Contenido;
}
# Specifying search categories
$sSelCats = "'".$aSettings["Category"]."'";
# Adding categories "below" primary category
switch ($aSettings["CatTypeSel"]) {
case "below":
$lCatLevel = -1;
$sql = "SELECT a.idcat AS idcat, b.level AS level FROM ".$cfg["tab"]["cat"]." a, ".$cfg["tab"]["cat_tree"]." b ";
$sql .= "WHERE a.idcat = b.idcat ORDER BY b.idtree";
$db2->query($sql);
while($db2->next_record()) {
if ($db2->f("idcat") == $aSettings["Category"]) {
$lCatLevel = $db2->f("level");
} else if ($lCatLevel > -1 && $db2->f("level") > $lCatLevel) {
$sSelCats .= ",'".$db2->f("idcat")."'";
} else if ($db2->f("level") <= $lCatLevel) {
break;
}
}
break;
case "selected":
$aCats = explode(",",$aSettings["AddCats"]);
foreach ($aCats as $value) {
if (is_numeric($value)) {
$sSelCats .= ",'".$value."'";
}
}
break;
default:
}
$sql = "SELECT tblData.value AS headline, ARTLANG.idart AS id, ARTLANG.lastmodified AS lastmodified, " ;
$sql .= "ARTLANG.created AS created, ARTLANG.published AS published, CATLANG.name AS category, ";
$sql .= "ARTLANG.idartlang AS idartlang, CATART.idcat AS idcat, CATART.idcatart AS idcatart FROM ";
$sql .= $cfg["tab"]["cat_art"]." AS CATART, ";
$sql .= $cfg["tab"]["art_lang"]." AS ARTLANG, ";
$sql .= $cfg["tab"]["cat_lang"]." AS CATLANG, ";
$sql .= $cfg["tab"]["content"]." AS tblData ";
$sql .= "WHERE CATART.idcat IN (".$sSelCats.") AND ARTLANG.idlang = '".$lang."' ";
$sql .= "AND tblData.idartlang = ARTLANG.idartlang ";
$sql .= "AND CATLANG.idlang = ARTLANG.idlang ";
$sql .= "AND CATLANG.idcat = CATART.idcat ";
$sql .= "AND ARTLANG.idart = CATART.idart ";
if ($aSettings["ShowStart"] != "enabled") {
if ($cfg["is_start_compatible"] == true) {
$sql .= "AND CATART.is_start = '0' ";
} else {
$sql .= "AND tblData.idartlang != CATLANG.startidartlang ";
}
}
$sql .= "AND ARTLANG.online = '1' ";
$sql .= "AND ".$aSettings["HeadlineIdentifier"]." ";
// Sort by
$sql .= "ORDER BY ";
$sql .= $aSettings["SortBy"]." ".$aSettings["SortDir"]." ";
// LIMIT
if ($aSettings["ArticleCount"] > 0) {
$sql .= "LIMIT 0, ".$aSettings["ArticleCount"];
}
// execute query
$db2->query($sql);
$lCount = $db2->num_rows();
if ($lCount > 0) {
if (!is_object($db3)) {
$db3 = new DB_Contenido;
}
if (!is_object($db4)) {
$db4 = new DB_Contenido;
}
if ($aSettings["ArticlePerPage"] > 0) {
$lStartCount = $_REQUEST["nextstep"];
$lEndCount = $_REQUEST["nextstep"] + $aSettings["ArticlePerPage"];
if ($lEndCount > $lCount) {
$lEndCount = $lCount;
}
} else {
$lStartCount = 0;
$lEndCount = $lCount;
}
$lRow = 0;
$i = 0;
while ($db2->next_record()) {
if ( $aSettings["ShowStart"] == "enabled" ||
($aSettings["ShowStart"] != "enabled" && $db2->f("idartlang") != $lStartIDArtLang)) {
if ($lRow >= $lStartCount && $lRow < $lEndCount) {
$aData[$i] = array();
$aData[$i]["Category"] = urldecode($db2->f("category"));
$aData[$i]["Link"] = $sess->url("front_content.php?idcat=".$db2->f("idcat")."&idart=".$db2->f("id"));;
$aData[$i]["LastModified"] = $db2->f("lastmodified");
$aData[$i]["Created"] = $db2->f("created");
$aData[$i]["Published"] = $db2->f("published");
$sTmpValue = html_entity_decode(strip_tags(urldecode($db2->f('headline'))));
if ($aSettings["HeadlineLength"] > 0 && strlen($sTmpValue) > $aSettings["HeadlineLength"]) {
# Cutting text but preserving words and entities
$sTmpValue = htmlentities(capiStrTrimAfterWord($sTmpValue, $aSettings["HeadlineLength"])."...");
}
$aData[$i]["Headline"] = $sTmpValue;
if ($aSettings["Elements"] > 0) {
for ($k = 0; $k < $aSettings["Elements"]; $k++) {
$aData[$i]["i".$k] = array();
$aData[$i]["i".$k]["Value"] = "";
$aData[$i]["i".$k]["ServerPath"] = "";
$aData[$i]["i".$k]["WebPath"] = "";
$aData[$i]["i".$k]["Width"] = 0;
$aData[$i]["i".$k]["Height"] = 0;
}
$sql = "SELECT tblData.value AS value, tblData.idtype AS idtype, tblData.typeid AS typeid FROM ";
$sql .= $cfg["tab"]["cat_art"]." AS tblCatArt, ";
$sql .= $cfg["tab"]["art_lang"]." AS tblArtLang, ";
$sql .= $cfg["tab"]["content"]." AS tblData ";
$sql .= "WHERE tblData.idartlang = tblArtLang.idartlang AND ";
$sql .= "tblArtLang.idlang = '".$lang."' AND ";
$sql .= "tblArtLang.idart = tblCatArt.idart AND ";
$sql .= "tblCatArt.idcatart = '".$db2->f("idcatart")."' AND (";
$sql_items = "";
for ($k = 0; $k < $aSettings["Elements"]; $k++) {
if ($aSettings["k".$k]["Identifier"] != "") {
if ($sql_items != "") {
$sql_items .= " OR (".$aSettings["k".$k]["Identifier"].")";
} else {
$sql_items = "(".$aSettings["k".$k]["Identifier"].")";
}
}
}
$sql .= $sql_items.")";
if ($bDebug) {
echo "<pre>".$sql."</pre>", chr(10);
}
// execute query
$db3->query($sql);
while ($db3->next_record()) {
$sTypeIdentifier = "tblData.idtype = '".$db3->f('idtype')."' AND tblData.typeid = '".$db3->f('typeid')."'";
# Note: The TypeIdentifier for one item may be the same as for another item.
# Therefore, we are storing the content everywhere as needed
for ($k = 0; $k < $aSettings["Elements"]; $k++) {
if ($sTypeIdentifier == $aSettings["k".$k]["Identifier"]) {
switch (TRUE) {
case ($aSettings["k".$k]["ElementType"] == "Image" || $aSettings["k".$k]["ElementType"] == "ExtractedImage"):
$sql = "";
if ($aSettings["k".$k]["ElementType"] == "Image") {
$sql = "SELECT dirname, filename FROM ".$cfg["tab"]["upl"]." ";
$sql .= "WHERE idupl = '".$db3->f('value')."'";
} else {
$sTmpValue = urldecode($db3->f('value'));
$regEx = "/<img[^>]*?>.*?/i";
$match = array ();
preg_match($regEx, $sTmpValue, $match);
$regEx = "/(src)(=)(['\"]?)([^\"']*)(['\"]?)/i";
$img = array ();
preg_match($regEx, $match[0], $img);
$img_src = preg_split("/\//", $img[0]);
$img_name = $img_src[count($img_src) - 1];
$img_name = preg_replace("/\"/", "", $img_name);
#Don't know what is happening here, exactly...
# $img_split = preg_split("/\./", $img_name);
# $img_type = $img_split[count($img_split) - 1];
# $img_split2 = preg_split("/_/", $img_split[0]);
$name = strtolower($img_name);
#Don't know what is happening here, exactly...
#if (count($img_split2) > 1) {
# $img_x = $img_split2[count($img_split2) - 1];
# $img_y = $img_split2[count($img_split2) - 2];
# if (is_numeric($img_x) AND is_numeric($img_y)) {
# $suffix = "_".$img_x."_".$img_y.".".$img_type;
# $name = preg_replace("/$suffix/", "", $img_name);
# $name = $name.".[a-zA-Z]{3}";
# }
#}
if (strlen($name) > 0) {
$sql = "SELECT dirname, filename FROM ".$cfg["tab"]["upl"]." ";
$sql .= "WHERE LOWER(filename) = '$name'";
// $sql .= "WHERE filename REGEXP '$name'"; // Old: for 'banner.jpg' 'merlin_banner.jpg' is also returned
}
}
if ($bDebug) {
echo "<pre>".$sql."</pre>";
}
// execute query
if ($sql != "") {
$db4->query($sql);
if ($db4->next_record()) {
$aData[$i]["i".$k]["ServerPath"] = $cfgClient[$client]["upl"]["path"].$db4->f('dirname').$db4->f('filename');
$aData[$i]["i".$k]["WebPath"] = $cfgClient[$client]["upl"]["htmlpath"].$db4->f('dirname').$db4->f('filename');
list ($width, $height, $type, $attr) = getimagesize($aData[$i]["i".$k]["WebPath"]);
$aData[$i]["i".$k]["Width"] = $width;
$aData[$i]["i".$k]["Height"] = $height;
}
}
break;
default:
$sTmpValue = html_entity_decode(strip_tags(urldecode($db3->f('value'))));
if ($aSettings["k".$k]["ElementWidth"] > 0 && strlen($sTmpValue) > $aSettings["k".$k]["ElementWidth"]) {
# Cutting text but preserving words and entities
$sTmpValue = htmlentities(capiStrTrimAfterWord($sTmpValue, $aSettings["k".$k]["ElementWidth"])."...");
}
$aData[$i]["i".$k]["Value"] = $sTmpValue;
}
}
}
}
}
$i++;
} else if ($lRow == $lEndCount) {
break;
}
$lRow++;
}
}
# Clearing memory
unset ($db2);
unset ($db3);
unset ($db4);
unset ($sql);
unset ($lStartIDArtLang);
unset ($lStartCount);
unset ($lEndCount);
# Output data
# Every output manipulation should be done here...
#
# Base information:
# $aSettings["Elements"]: Number of expected, additional elements from each article
# $aSettings["ArticlePerPage"]: Number of articles per page (0: show all)
# $aSettings["k".$i]["ElementType"]: Per Element: Type of Element: Text, Image or ExtractedImage
# $aSettings["k".$i]["ElementWidth"]: Per Element: Text length or image width (-> recycling ...)
# $aSettings["k".$i]["ElementHeight"]: Per Element: Image width
#
# Per article:
# $aValue["Headline"]: Content of article element specified as containing the headline information
# $aValue["Link"]: Relative link to get to the listed article
# $aValue["LastModified"]: Last modified date of the article
# $aValue["Created"]: Created date of the article
# $aValue["Published"]: Published date of the article
# $aValue["Category"]: Category name
#
# Per article additional element:
# $aValue["i".$i]["Value"]: Text (only for text elements, otherwise "")
# $aValue["i".$i]["WebPath"]: HTTP... path to image
# $aValue["i".$i]["ServerPath"]: /server/... path to image
# $aValue["i".$i]["Width"]: >Original< image width
# $aValue["i".$i]["Height"]: >Original< image height
/* Init Template
*/
$template_advanced = "teaser_advanced.html";
$template_advanced2 = "teaser_advanced_element.html";
$newsheadline = "Neues auf dieser Seite";
$ii = 0;
if (!is_object($tpl)) {
$tpl = new Template;
}
$tpl->reset();
$tpl->set('s', 'TITLE', $newsheadline);
foreach ($aData as $aValue) {
$datum = strtotime($aValue["Created"]);
$tag = date("j",$datum);
$monat = date("m",$datum);
$jahr = date("Y",$datum);
$monat = str_replace(
array('01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'),
array('. Januar ', '. Februar ', '. März ', '. April ', '. Mai ', '. Juni ', '. Juli ', '. August ', '. September ', '. Oktober ', '. November ', '. Dezember '),
$monat
);
$headline_advanced = $aValue["Category"]." - "."$tag$monat$jahr".$aValue["Headline"];
if ($aSettings["Elements"] > 0) {
if (!is_object($tpl2)) { #generate template for elements
$tpl2 = new Template;
}
$tpl2->reset();
$img_number = 0;
$text_number = 0;
for ($i = 0; $i < $aSettings["Elements"]; $i++) {
switch (TRUE) {
case ($aSettings["k".$i]["ElementType"] == "Image" || $aSettings["k".$i]["ElementType"] == "ExtractedImage"):
if (!empty($aValue["i".$i]["WebPath"])) { // modify oldperl: if no Webpath, there's no image
$image = $aValue["i".$i]["WebPath"];
$width = $aValue["i".$i]["Width"];
$height = $aValue["i".$i]["Height"];
if ($aSettings["k".$i]["ElementWidth"] > 0 && $aSettings["k".$i]["ElementHeight"] > 0) {
# Check, if resize necessary
if ($aValue["i".$i]["ServerPath"] != "" && file_exists($aValue["i".$i]["ServerPath"]) &&
($aValue["i".$i]["Width"] > $aSettings["k".$i]["ElementWidth"] ||
$aValue["i".$i]["Height"] > $aSettings["k".$i]["ElementHeight"])) {
# Scale image
$image = capiImgScale($aValue["i".$i]["ServerPath"], $aSettings["k".$i]["ElementWidth"], $aSettings["k".$i]["ElementHeight"], false, false, 10, false);
#Get dimensions of the image
list ($width, $height, $type, $attr) = getimagesize($image);
} else {
$image = $aValue["i".$i]["WebPath"];
$width = $aValue["i".$i]["Width"];
$height = $aValue["i".$i]["Height"];
}
}
if ($image != "") {
$element_class = 'img_advanced'.$img_number;
if ($XHTML == true) {
$element_content = '<img src="'.$image.'" width="'.$width.'" height="'.$height.'" alt="" />'; } else {
$element_content = '<img src="'.$image.'" width="'.$width.'" height="'.$height.'" alt="">';
}
$img_number++;
}
} else { // modify oldperl: if no image, we need no template
$no_template = true;
}
break;
default: // Everything else is treated as "Text"
$element_class = 'text_advanced'.$text_number; // set the class-value for div
$element_content = $aValue["i".$i]["Value"]; // set content for div
$text_number++;
}
if(!$no_template) { // modify oldperl: build tpl only if needed
// build elements with template
$tpl2->set('d', 'CLASS_ELEMENT', $element_class);
$tpl2->set('d', 'CONTENT_ELEMENT',$element_content);
$tpl2->next();
} else {
$no_template = false;
}
}
$content_elements = $tpl2->generate('templates/'.$template_advanced2, true); // save tpl with elements for printing with master-tpl
}
if ($XHTML == true) {
$sign_img = '';
} else {
$sign_img = '';
}
$show_more = '<a href="'.$aValue["Link"].'">'.mi18n("More...").'</a>';
$tpl->set('d', 'HEADLINE', $headline_advanced);
$tpl->set('d', 'COUNT', ($ii % 2)); // Variable füllen für CSS-Class teaser_advanced
$tpl->set('d', 'CONTENT', $content_elements);
$tpl->set('d', 'MORE', $show_more);
$tpl->set('d', 'SIGN_MORE', $sign_more);
$tpl->next();
$ii++; // Variable hochzählen für CSS-Class teaser_advanced
}
}
# Page browsing
# Hint: Number of max available records: $lCount
# Number of pages: round($lCount / $aSettings["ArticlePerPage"])
# First page: nextstep=0
# Last page: nextstep=(round($lCount / $aSettings["ArticlePerPage"]) - 1) * $aSettings["ArticlePerPage"];
# (I have to admit that I'm not sure about the last page formula ... ;-) )
if ($aSettings["ArticlePerPage"] > 0) {
# Example: |< 1 ... 3 4 5 ... 8 >|
$iPages = ceil($lCount / $aSettings["ArticlePerPage"]);
$sPageBack = '';
$sPageLinks = '';
$sPageForward = '';
$sPageBack = '<a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep=0">|<</a>';
for ($i = 1; $i <= $iPages; $i++) {
$lNextStep = ($i - 1) * $aSettings["ArticlePerPage"];
if ($i == 1 || $i == $iPages) {
if ($sPageLinks != '') {
$sPageLinks .= ' ';
}
if ($_REQUEST["nextstep"] == $lNextStep) {
$sPageLinks .= $i; # I'm on the current page, no link
} else {
$sPageLinks .= '<a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.$lNextStep.'">'.$i.'</a>';
}
} else if ($_REQUEST["nextstep"] == $lNextStep) {
$sPageLinks .= ' '.$i; # I'm on the current page, no link
} else if ($_REQUEST["nextstep"] == ($lNextStep + $aSettings["ArticlePerPage"])) {
# Front
$sPageLinks .= ' <a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.$lNextStep.'">'.$i.'</a>';
} else if ($_REQUEST["nextstep"] == ($lNextStep - $aSettings["ArticlePerPage"])) {
# Back
$sPageLinks .= ' <a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.$lNextStep.'">'.$i.'</a>';
} else if ($_REQUEST["nextstep"] == ($lNextStep - (2 * $aSettings["ArticlePerPage"])) ||
$_REQUEST["nextstep"] == ($lNextStep + (2 * $aSettings["ArticlePerPage"]))) {
$sPageLinks .= '...';
}
}
$sPageForward = '<a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.(ceil($lCount / $aSettings["ArticlePerPage"]) - 1) * $aSettings["ArticlePerPage"].'">>|</a>'."\n";
}
$tpl->set('s', 'BACK', $sPageBack);
$tpl->set('s', 'PAGESELECTOR', $sPageLinks);
$tpl->set('s', 'FORWARD', $sPageForward);
$tpl->generate('templates/'.$template_advanced);
}
# Clearing memory
unset ($aData);
unset ($aSettings);
unset ($i);
unset ($lCount);
unset ($bDebug);
?>