ich benutze eine 4.6.4er Version von Contenido. Bei dem Terminmodul welches ich benutze kommt es, sobal ich im Bereich Headline oder Text über den eigentlichen Terminen etwas Text eingebe und speichere, nun zu folgender Fehlermeldung:
Warning: array_multisort() [function.array-multisort]: Array sizes are inconsistent in /homepages/31/d122813052/htdocs/cms/front_content.php(771) : eval()'d code on line 768
Leider weiß ich nicht mehr woher dieses Modul stammt. Ich glaube hier aus dem Forum. Deshalb habe ich es hier mal gepostet:
Code: Alles auswählen
<?php
$gefunden=0; // um zu überprüfen, ob überhaupt Termine vorliegen
$date = date("Y-m-d");
echo '<table border=0 cellspacing=0 cellpadding=0 width="500px">';
echo "<tr><td colspan=2 height=\"40\" class=\"headline\">CMS_HTMLHEAD[1]</td></tr>"; // Überschrift der Seite mit der Termin-Übersicht
echo "<tr><td colspan=2 class=\"text\">CMS_HTML[2]</td></tr>"; // Weiterer Text
$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["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 ( $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
{
if ( substr($termin["datum1"][$i],5,2) !== substr($termin["datum1"][$i-1],5,2) || $gefunden == 0 ) // überprüfen, ob Monatsnahme einzufügen ist
{
$farbe=0;
if ( $gefunden == 1 )
{
echo ' </table>';
}
echo ' <table width="500px" border="0" cellspacing="0" cellpadding="2" class="text">
<tr><td colspan="2"> </td></tr>
<tr>
<td colspan="2" height="30" class="termine_monat" align="center" style="border:0px solid #000000; background-color: #287428"><span class="text_weiß">';
switch (substr($termin["datum1"][$i],5,2)) {
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; }
echo ' '.substr($termin["datum1"][$i],0,4).'</span></td>
</tr>';
}
$gefunden=1;
echo ' <tr';
if ( $farbe == 1 )
{
echo ' bgcolor="#CCCCCC"';
}
echo '>
<td colspan="2" height="25" valign="bottom" width="500px" align="left"><br>'.substr($termin["datum1"][$i],8,2).'.'.substr($termin["datum1"][$i],5,2).'.'.substr($termin["datum1"][$i],0,4);
if ( strlen($termin["zeit1"][$i]) >1 )
{
echo ', '.$termin["zeit1"][$i].' Uhr';
}
if ( strlen(substr($termin["datum2"][$i],8,2)) > 1 || strlen($termin["zeit2"][$i]) >1 )
{
echo ' bis ';
if ( strlen(substr($termin["datum2"][$i],8,2)) > 1 )
{
echo substr($termin["datum2"][$i],8,2).'.'.substr($termin["datum2"][$i],5,2).'.'.substr($termin["datum2"][$i],0,4);
if ( strlen($termin["zeit2"][$i]) >1 )
{
echo ', ';
}
}
if ( strlen($termin["zeit2"][$i]) >1 )
{
echo $termin["zeit2"][$i].' Uhr';
}
}
echo '</td></tr><tr>
<td class="termin" colspan="2" width="500px" valign="top" align="left" style="background-color: #FFFFFF"><b>'.urldecode($termin["titel"][$i]).'</b></td>
</tr><tr><td colspan="2"><img src="upload/layout/dot_blue.gif" width="100%" height="1"></td>
</tr>';
if ( strlen($termin["ort"][$i]) > 1 )
{
echo ' <tr';
if ( $farbe == 1 )
{
echo ' bgcolor="#FFFFFF"';
}
echo '>
<td width="80px" valign="top" >Ort:</td>
<td width="460px" valign="top" >'.urldecode($termin["ort"][$i]).'</td>
</tr>';
}
$sql2 = "SELECT CONTENT.value
FROM ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["cat"]." AS CAT, ".$cfg["tab"]["content"]." AS CONTENT
WHERE ARTLANG.idart = ".$termin["idart"][$i]." AND ARTLANG.idartlang = CONTENT.idartlang AND CONTENT.typeid = '7'";
$db->query($sql2);
if ($db->num_rows() != 0)
{
echo ' <tr';
if ( $farbe == 1 )
{
echo ' bgcolor="#FFFFFF"';
}
$db->next_record();
echo '>
<td width="80px" height="40" valign="top" >Details:</td>
<td width="460px" valign="top" >'.urldecode($db->f("value")).'</td></tr>';
}
if ( $farbe == 1 ) { $farbe=0; } else { $farbe=0; }
}
}
}
if ( $gefunden == 0 ) // falls kein aktueller Termin vorliegt
{
echo ' <tr>
<td class "Termine_monat" colspan=2><br><br>Zur Zeit liegen keine aktuellen Termine vor!</td>
</tr>';
}
?>
</table>