Seite 1 von 1
Terminliste Jahreszahl immer anzeigen
Verfasst: Mo 12. Jul 2004, 10:58
von nettworker
Hallo,
bin nun auch begeisterter Contenido-Fan. Habe da allerdings ein kleines Problem.
Ich setzte das Modul Terminliste ein und möchte nun, daß bei der Auflistung immer die Jahreszahl nach der Monat angezeigt wird. Also, nicht nur wenn Veranstaltungen in einem anderen Jahr enden.
PHP kann ich etwas, aber nicht so gut um die Änderungen im Modul selbst machen zu können.
Hat jemand einen Tipp, wie ich die Jahreszahl anzeigen lassen kann.
Danke schon mal.
Gruß
Dagmar
Verfasst: Mo 12. Jul 2004, 11:23
von emergence
hast du auch einen link zum modul ?
Verfasst: Mo 12. Jul 2004, 11:35
von nettworker
Hallo emergence,
reicht der Quellcode oder was meinst Du mit Link?
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Terminuebersicht
* Author : agon
* Copyright : Contenido - four for business
* Created : 22-08-2002
* Modified : 22-08-2002
************************************************/
$gefunden=0; // um zu überprüfen, ob überhaupt Termine vorliegen
$date = date("Y-m-d");
echo "<h3>CMS_HTMLHEAD[1]</h3>"; // Überschrift der Seite mit der Termin-Übersicht
echo '<table border=0 cellspacing=0 cellpadding=0 width=\"100%\">';
$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 = '".$idcat."' AND CAT.idclient = '".$client."'
AND ARTLANG.online = '1' AND CATART.is_start='0'
ORDER BY ARTLANG.idart, CONTENT.typeid ASC"; // Alle Artikel der Kategorie einlesen, die nicht Startartikel (= Terminübersicht) sind
$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["jahr1"][$anz] = substr($db->f("value"),0,4);
$termin["monat1"][$anz] = substr($db->f("value"),5,2);
$termin["tag1"][$anz] = substr($db->f("value"),8,2);
$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");
$termin["jahr2"][$anz] = substr($db->f("value"),0,4);
$termin["monat2"][$anz] = substr($db->f("value"),5,2);
$termin["tag2"][$anz] = substr($db->f("value"),8,2);
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 6: // Titel
$termin["titel"][$anz] = $db->f("value");
break;
}
$j++;
}
array_multisort ( $termin["datum1"], SORT_ASC, SORT_STRING, $termin["datum2"], SORT_ASC, SORT_STRING,
$termin["jahr1"], $termin["monat1"], $termin["tag1"], $termin["zeit1"],
$termin["jahr2"], $termin["monat2"], $termin["tag2"], $termin["zeit2"],
$termin["idart"], $termin["ort"], $termin["titel"] ); // nach Datum sortieren
for ($i=0; $i<=$anz; $i++)
{
if ( $termin["datum1"][$i] >= $date || $termin[$i]["datum2"] >= $date ) // nur Termine, die noch aktuell sind, aufnehmen
{
if ( $termin["monat1"][$i] !== $termin["monat1"][$i-1] || $gefunden == 0 ) // überprüfen, ob Monatsnahme einzufügen ist
{
echo ' <tr>
<td colspan=6><img border="0" src="images/2.gif" width="100%" height="2" class="line">
</tr>
<tr>
<td colspan=6><h4>';
switch ($termin["monat1"][$i]) {
case 1: echo "Januar"; break;
case 2: echo "Februar"; break;
case 3: echo "März"; break;
case 4: echo "April"; break;
case 5: echo "Mai"; break;
case 6: echo "Juni"; break;
case 7: echo "Juli"; break;
case 8: echo "August"; break;
case 9: echo "September"; break;
case 10: echo "Oktober"; break;
case 11: echo "November"; break;
case 12: echo "Dezember"; break; }
if ( $i>1 && $termin["jahr1"][$i] != $termin["jahr2"][$i-1] ) // überprüfen, ob Jahr einzufügen ist
{
echo ' '.$termin["jahr2"][$i];
}
echo '</h4></td>
</tr>';
}
$gefunden=1;
echo ' <tr>
<td nowrap><p id="font">'.$termin["tag1"][$i].'.'; // Anfangsdatum ausgeben
if ( strlen($termin["tag2"][$i]) < 2 && strlen($termin["zeit1"][$i]) >1 ) // falls kein Enddatum (Eintagestermin), aber Anfangszeit, diese ausgeben
{
echo '</p></td><td nowrap><p> ['.$termin["zeit1"][$i].' h]';
} elseif ( strlen($termin["tag2"][$i]) > 1 ) // falls Enddatum (Mehrtagestermin), dieses ausgeben
{
echo ' –<br> '.$termin["tag2"][$i].'.';
if ( $termin["monat2"][$i] != $termin["monat1"][$i]) // falls Enddatum nicht im gleichem Monat
{
echo $termin["monat2"][$i].'.';
if ( $termin["jahr2"][$i] != $termin["jahr1"][$i]) // falls Enddatum nicht im gleichen Jahr
{
echo substr($termin["jahr2"][$i],2,2).'.';
}
}
echo '</p></td><td><p>';
} else
{
echo '</p></td><td><p>';
}
$navmod_link ="front_content.php?client=".$client."?=".$lang."&idcat=".$idcat."&idart=".$termin["idart"][$i]."";
echo '</p></td>
<td><img border="0" src="images/2.gif" width="8" height="1"></td>
<td><p id="font">'.urldecode($termin["ort"][$i]).'</p></td>
<td><img border="0" src="images/2.gif" width="8" height="1"></td>
<td width="65%"><p><b><a href="'.$sess->url("$navmod_link").'" id="font">'.urldecode($termin["titel"][$i]).'</a></b></p></td>
</tr>';
}
}
}
if ( $gefunden == 0 ) // falls kein aktueller Termin vorliegt
{
echo ' <tr>
<td colspan=5><b>Es liegen aktuell keine Termine vor!</b></td>
</tr>';
}
?>
</table>
Verfasst: Mo 12. Jul 2004, 11:46
von emergence
nettworker hat geschrieben:reicht der Quellcode oder was meinst Du mit Link?
quelltext tuts auch... das suchen im forum, genau nach dem modul welches du verwendest, wird sonst nach ner suche nach der nadel im heuhaufen...