Berni hat geschrieben:Klar kannst Du verwenden, muss man nur die neue Startartikelfunktionalität einbauen
Gibts hier auch Rauchzeichen? - mein Kopf qualmt gerade ....
Okay, Berni, ich denke, die Termineingabe funktioniert, weil sie die Termine einträgt. Wenn nicht ordentlich aufgelistet wird, kann es also nur an der Terminübersicht liegen.
Die Terminübersicht ist der Startartikel.
Ich habe schon irgendwo gelesen, daß die Startartikelfunktionalität jetzt anders ist, aber wo der Unterschied zur alten liegt, ist mir noch ein Geheimnis - weil Anfänger.
OUTPUT
Code: Alles auswählen
<?php
$gefunden=0; // um zu überprüfen, ob überhaupt Termine vorliegen
$date = date("Y-m-d");
echo "<h1>CMS_HTMLHEAD[1]</h1>"; // Ü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 '
<table width="378" border="0" cellspacing="0" cellpadding="0">
<tr><td height="20" width="1" style="border: 0px; border-top:1px; border-bottom:1px; border-color: #999999; border-style: solid; background-color: #999999"><img src="images/trans.gif" width="1" height="20" border="0"></td>
<td width="378" hight="20" style="border: 1px; border-left:0px; border-color: #999999; border-style: solid; background-color: #E1DFCE; padding-left:10px" class="bold">';
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["jahr1"][$i-1] ) // überprüfen, ob Jahr einzufügen ist
{
echo ' '.$termin["jahr1"][$i];
}
echo '</td></tr>
</table>';
}
$gefunden=1;
echo '
<table width="378" border="0" cellspacing="0" cellpadding="2" bgcolor="#FAF9F5">
<tr>
<td nowrap height="20" style="border: 1px; border-top:0px; border-color: #999999; border-style: solid; background-color: #FFFFFF; padding-left:10px"><p>'.$termin["tag1"][$i].'.'; // Anfangsdatum ausgeben
if ( strlen($termin["tag2"][$i]) > 1 ) // falls Enddatum (Mehrtagestermin), dieses ausgeben
{
echo ' – '.$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>
<span class="termine">';
} else
{
echo '</span>
<span>'; }
$navmod_link ="front_content.php?client=".$client."?=".$lang."&idcat=".$idcat."&idart=".$termin["idart"][$i]."";
echo '</span>
</br>
<span><a href="'.$sess->url("$navmod_link").'" class="termine">'.urldecode($termin["titel"][$i]).'</a></span>
</br>
<span class="termine">'.urldecode($termin["ort"][$i]).'</span>
</td>
</tr>
</table>';
}
}
}
if ( $gefunden == 0 ) // falls kein aktueller Termin vorliegt
{
echo ' <tr>
<td colspan=5><b>Es liegen aktuell keine Termine vor!</b></td>
</tr>';
}
?>
Kannst Du mir einen Tipp geben, worin sich die Startartikelfunktionalität ausdrückt? Im Moment sehe ich nur, daß der Code die DB nach Daten durchstöbern soll. Und das hat der Code nicht gemacht, er hat die Daten nur untereinander geschrieben.
Ich kann mich erinnern, daß HerrB was mit is_start='0' in einem anderen Zusammenhang (Artikelliste blätterbar) moniert hatte.
Ist es die Stelle?
Code: Alles auswählen
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)
Können wir das gemeinsam machen? Na ja, mein Anteil wäre fast null, aber ich würde gern mitdenken. Und vielleicht gibt es welche, die auch gern so eine Terminübersicht für 4.6.x hätten.
Simone