ich habe das bewährte Terminmodul für die Startseite von Halchteranerin überarbeitet ( http://contenido.org/forum/viewtopic.php?p=77372 - dort findet Ihr den Modul-Input).
Das Ganze läuft jetzt mit DIV-Tags und liefert Start-Datum (ohne Jahr), Start-Uhrzeit
neue Zeile mit Link zum Termin.
Die DIV-IDs fürs CSS lauten
#Terminteaser_Titel = Überschrift
#Terminteaser_Datum = Datum und Uhrzeit
#Terminteaser_Link = Link zum Terminartikel
Außerdem habe ich "array_multisort" durch "$array_multisort = array" ersetzt, da bei mir sonst immer das mehrfach diskutierte "Warning: array_multisort(): Array sizes are inconsistent in..." auftachte. Danke an andy-man:
http://contenido.org/forum/viewtopic.php?p=22458#22458
Läuft auf 4.6.8.
Gruß
Niels
OUTPUT
Code: Alles auswählen
<?php
$navmod_id = ((int)"CMS_VALUE[0]" == 0) ? $idcat : (int)"CMS_VALUE[0]";
$gefunden = 0; // um zu überprüfen, ob überhaupt Termine vorliegen
$date = date("Y-m-d");
echo "<div id=\"Terminteaser_Titel\">CMS_VALUE[1]<br><br></div>"; //Überschrift der Termin-Übersicht
// Alle Artikel der Kategorie einlesen, die nicht Startartikel (= Terminübersicht) sind * nur contenido 4.4.x
$sql = "SELECT
ARTLANG.idart,
CONTENT.value,
CONTENT.typeid
FROM
".$cfg["tab"]["cat_art"]." AS CATART,
".$cfg["tab"]["art_lang"]." AS ARTLANG,
".$cfg["tab"]["cat"]." AS CAT,
".$cfg["tab"]["content"]." AS CONTENT
WHERE
ARTLANG.idart = CATART.idart AND
CATART.idcat = CAT.idcat AND
ARTLANG.idartlang = CONTENT.idartlang AND
ARTLANG.idlang = '".$lang."' AND
CAT.idcat = '".$navmod_id."' AND
CAT.idclient = '".$client."' AND
ARTLANG.online = '1' AND
CATART.is_start='0'
ORDER BY
ARTLANG.idart,
CONTENT.typeid ASC";
$db->query($sql);
$j = 0;
$anz = 0;
if ($db->num_rows() != 0) {
$termin = array (array ()); // Array erzeugen, in dem die Termine abgelegt werden;
while ($j < $db->num_rows()) // alle Datensätze durchlaufen
{
$db->next_record();
if ($db->f("idart") > $termin["idart"][$anz]) {
$anz ++;
}
switch ($db->f("typeid")) {
case 0 : // Anfangstermin
$termin["datum1"][$anz] = $db->f("value");
$termin["idart"][$anz] = $db->f("idart");
break;
case 1 : // Anfangsuhrzeit
$termin["zeit1"][$anz] = $db->f("value");
$termin["datum1"][$anz] = $termin["datum1"][$anz]." ".$termin["zeit1"][$anz];
break;
case 2 : // Endtermin
$termin["datum2"][$anz] = $db->f("value");
break;
case 3 : // Enduhrzeit
$termin["zeit2"][$anz] = $db->f("value");
$termin["datum2"][$anz] = $termin["datum2"][$anz]." ".$termin["zeit2"][$anz];
break;
case 4 : // Ort
$termin["ort"][$anz] = $db->f("value");
break;
case 5 : // Ortdetail
$termin["ortdetail"][$anz] = $db->f("value");
break;
case 6 : // Titel
$termin["titel"][$anz] = $db->f("value");
break;
}
$j ++;
}
$array_multisort = array($termin["datum1"], SORT_ASC, SORT_STRING,
$termin["datum2"], SORT_ASC, SORT_STRING,
$termin["ort"],
$termin["ortdetail"],
$termin["zeit1"],
$termin["zeit2"],
$termin["idart"],
$termin["titel"]); // nach Datum sortieren
for ($i = 0; $i <= $anz; $i ++) {
if ($termin["datum1"][$i] >= $date || $termin["datum2"][$i] >= $date) // nur Termine, die noch aktuell sind, aufnehmen
{
$gefunden ++;
echo '
<div id="Terminteaser_Datum">'.substr($termin["datum1"][$i], 8, 2).'.'.substr($termin["datum1"][$i], 5, 2).'.';
if ( strlen($termin["zeit1"][$i]) >1 )
{
echo ', '.$termin["zeit1"][$i].' Uhr';
}
$navmod_link = "front_content.php?client=".$client."?=".$lang."&idcat=".$navmod_id."&idart=".$termin["idart"][$i]."";
echo '<br></div>';
echo '<div id="Terminteaser_Link"><a href="'.$sess->url("$navmod_link").'" id="font">'.urldecode($termin["titel"][$i]).'</a><br><br>
</div>';
}
/*Untenstehend ist die gewünschte Anzahl der anzuzeigenden Termine ggf. anzupassen.
In diesem Fall werden 5 Termine aufgelistet. */
if ($gefunden == 5)
break;
}
}
if ($gefunden == 0) // falls kein aktueller Termin vorliegt
{
echo '<b>Es liegen aktuell keine Termine vor!</b>';
}
?>