ich habe ein kleines Problem mit der Terminliste (Modul von der Contenide Seite heruntergeladen), welches ich nicht in den Griff bekomme. Leider haben mir auch die anderen, alten Threads nicht weitergeholfen.
Wenn der code für das Sortieren der Termin so aussieht:
Code: Alles auswählen
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
Code: Alles auswählen
Warning: array_multisort(): Array sizes are inconsistent
In einem anderen alten Thread habe ich folgendes gefunden, was angeblich den Fehler beheben soll:
Code: Alles auswählen
$array_multisort = array(
$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
So sieht es momentan aus:
http://www.realized-it-solutions.com/la ... hp?idart=5
Ich hässte gerne sortierte Termine...
Der komplette code, den ich aktuell einsetze:
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=2 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 = array(
$termin["datum1"],
$termin["datum2"],
$termin["jahr1"], SORT_ASC, SORT_STRING,
$termin["monat1"], SORT_ASC, SORT_STRING,
$termin["tag1"], SORT_ASC, SORT_STRING,
$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 align="left" valign="top">
<td><img border="0" src="images/_leer.gif" width="50" height="1" class="line">
<td><img border="0" src="images/_leer.gif" width="70" height="1" class="line">
<td><img border="0" src="images/_leer.gif" width="10" height="1" class="line">
<td><img border="0" src="images/_leer.gif" width="100" height="1" class="line">
<td><img border="0" src="images/_leer.gif" width="10" height="1" class="line">
<td><img border="0" src="images/_leer.gif" width="300" height="1" class="line">
</tr>
<tr align="left" valign="top">
<td colspan=6 class="text"><b>';
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 '</b></td>
</tr>';
}
$gefunden=1;
echo ' <tr align="left" valign="top">
<td nowrap class="text"><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 class="text"><p>'.urldecode($termin["zeit1"][$i]).' Uhr';
} elseif ( 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></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/_leer.gif" width="10" height="1"></td>
<td class="text"><p id="font">'.urldecode($termin["ort"][$i]).'</p></td>
<td><img border="0" src="images/_leer.gif" width="10" height="1"></td>
<td width="65%" class="text"><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 align="left" valign="top">
<td colspan=5 class=text><b>Es liegen aktuell keine Termine vor!</b></td>
</tr>';
}
?>
</table>

Kann mir hier jemand einen Tipp geben ?
Ich nutze übrigens Version 4.6.15
Vielen Dank im Voraus