bin wiedermal am verzweifeln, habe den I-Fekt Montaskalender 1.0 installiert (natürlich nach anleitung).
jedenfalls zu meinem problem:
also wenn ich einen neuen termin erstelle ist alles in ordnung und wenn ich dann noch einen erstelle crashed das ganz...dann kommt die array_multisort fehler.
komisch ist nur wenn ich einen termin erstelle und den dann dupliziere dann geht der ganze kalender, aber das kann ja nicht die lösung sein. jedenfalls habe ich auch schon in anderen beträgen gelesen das man vor dem array_multisort noch was eintragen muss. das habe ich aber auch schon gemacht aber es geht trotzdem nicht...
hier ist mal mein output...
ich hoffe mir kann einer helfen. danke schonmal
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : i-fekt Monatskalender Uebersicht
* Version : 1.0
* Author : Daniel Smolcic (i-fekt)
* Created : 12.07.2006
************************************************/
# System properties in use:
# Type: artikelliste, Name: idcat_terminuebersicht
# Contains idcat of tree to be displayed in main navigation
# Includes
cInclude('classes', 'contenido/class.client.php');
$kat = "CMS_VALUE[0]";
# Wenn keine Kategorie ausgewählt wurde, Mandanteneinstellungen benutzen
if( !empty($kat) ) {
$kat = "CMS_VALUE[0]";
} else {
$cApiClient = new cApiClient($client);
$kat = $cApiClient->getProperty('artikelliste','idcat_terminuebersicht');
}
/* not used yet, just for developement
$angezeigteAnzahl = "CMS_VALUE[1]";
if( $angezeigteAnzahl == '' ) { $angezeigteAnzahl = 100; }
$limit = (isset($_REQUEST['skip']) && $_REQUEST['skip'] > 0)?($_REQUEST['skip']):(0);
*/
# Startartikel mit ausgeben oder nicht
if( "CMS_VALUE[2]" != "" ) {
$mitStartartikel = "";
} else {
$mitStartartikel = "AND c.startidartlang != b.idartlang";
}
$found = 0;
$j = 0;
$anz = -1;
$date = date("Y-m-d");
$sql = "SELECT
a.idart,
a.idcat,
d.value,
d.typeid,
d.idtype,
d.idartlang
FROM
{$cfg['tab']['cat_art']} as a
LEFT JOIN
{$cfg['tab']['art_lang']} as b ON a.idart = b.idart
LEFT JOIN
{$cfg['tab']['cat_lang']} as c ON a.idcat = c.idcat
LEFT JOIN
{$cfg['tab']['content']} as d ON b.idartlang = d.idartlang
WHERE
a.idcat = $kat
AND b.idlang = $lang
AND b.online = 1
$mitStartartikel
AND
(
d.idtype = '2' OR
d.idtype = '3'
)
ORDER BY
a.idart,
d.typeid ASC
";
$db->query($sql);
if( $db->num_rows() > 0 ) {
$termine = array(); // Array erzeugen, in dem alle Termine abgelegt werden
while ($j < $db->num_rows()) { // alle gefundenen Datensätze durchlaufen
$db->next_record();
if ($db->f("idart") > $termin["idart"][$anz]) {
$anz++;
}
# Unterscheidung auf CMS_HTML-Felder
if( $db->f("idtype") == '2' ) {
switch( $db->f("typeid") ) {
case 10: // Name der Veranstaltung
$termine["headline"][$anz] = $db->f("value");
break;
case 91: // Ort
$termine["location"][$anz] = $db->f("value");
break;
case 94: // Teaser
$termine["teaser"][$anz] = $db->f("value");
break;
}
}
# Unterscheidung auf CMS_TEXT-Felder
if( $db->f("idtype") == '3' ) {
switch( $db->f("typeid") ) {
case 0: // Datum Start
$termine["idart"][$anz] = $db->f("idart");
$termine["startYear"][$anz] = substr($db->f("value"),0,4);
$termine["startMonth"][$anz] = substr($db->f("value"),5,2);
$termine["startDay"][$anz] = substr($db->f("value"),8,2);
$termine["startDatum"][$anz] = $db->f("value");
break;
case 1: // Datum Ende
$termine["endYear"][$anz] = substr($db->f("value"),0,4);
$termine["endMonth"][$anz] = substr($db->f("value"),5,2);
$termine["endDay"][$anz] = substr($db->f("value"),8,2);
$termine["endDatum"][$anz] = $db->f("value");
break;
case 2: // Uhrzeit Start
$termine["startHour"][$anz] = substr($db->f("value"),0,2);
$termine["startMinute"][$anz] = substr($db->f("value"),3,2);
$termine["startZeit"][$anz] = $db->f("value");
break;
case 3: // Uhrzeit Ende
$termine["endHour"][$anz] = substr($db->f("value"),0,2);
$termine["endMinute"][$anz] = substr($db->f("value"),3,2);
$termine["endZeit"][$anz] = $db->f("value");
break;
}
}
$j++;
}
if(!empty($termine["startDatum"]) ) {
array_multisort($termine["startDatum"], SORT_ASC, SORT_STRING,
$termine["endDatum"], SORT_ASC, SORT_STRING,
$termine["startYear"],
$termine["startMonth"],
$termine["startDay"],
$termine["endYear"],
$termine["endMonth"],
$termine["endDay"],
$termine["startHour"],
$termine["startMinute"],
$termine["startZeit"],
$termine["endHour"],
$termine["endMinute"],
$termine["endZeit"],
$termine["headline"],
$termine["location"],
$termine["teaser"],
$termine["idart"]
);
}
# debug
/*
echo "<pre>";
print_r($termine);
echo "</pre>";
*/
for( $i=0; $i<=$anz; $i++ ) {
if( $termine["startDatum"][$i] >= $date || $termine["endDatum"][$i] >= $date ) {
# Monat auslesen und ersetzen
if ( $termine["startMonth"][$i] !== $termine["startMonth"][$i-1] || $termine["startYear"][$i] !== $termine["startYear"][$i-1] || $found == 0 ) {
echo "<div style=\"background-color: #e0e1d3;color: #000000; font-size: 14px; padding: 4px; margin: 0 0 4px 0;\">";
switch( $termine["startMonth"][$i] ) {
case '01': echo mi18n("Januar"); break;
case '02': echo mi18n("Februar"); break;
case '03': echo mi18n("März"); break;
case '04': echo mi18n("April"); break;
case '05': echo mi18n("Mai"); break;
case '06': echo mi18n("Juni"); break;
case '07': echo mi18n("Juli"); break;
case '08': echo mi18n("August"); break;
case '09': echo mi18n("September"); break;
case '10': echo mi18n("Oktober"); break;
case '11': echo mi18n("November"); break;
case '12': echo mi18n("Dezember"); break;
}
echo " ".$termine["startYear"][$i];
echo "</div>";
}
$found = 1;
$linkToDate = "front_content.php?idcat=".$db->f("idcat")."&idart=".$termine["idart"][$i]."&lang=".$lang."&client=".$client;
echo "<div onmouseover=\"style.backgroundColor='#f0f0e9'\" onmouseout=\"style.backgroundColor=''\" style=\"padding: 4px; margin: 0 0 5px 0; border-bottom: #e0e1d3 1px dashed;\">";
# Ueberschrift
# echo "<a style=\"display:block;\" href=\"".$linkToDate."\">";
if( $termine["endDay"][$i] == "" ) {
echo "<strong>".$termine["startDay"][$i].".".$termine["startMonth"][$i].".".$termine["startYear"][$i];echo "</strong>";
} else {
if( $termine["startYear"][$i] == $termine["endYear"][$i] ) {
echo "<strong>".$termine["startDay"][$i].".".$termine["startMonth"][$i]." – ".$termine["endDay"][$i].".".$termine["endMonth"][$i].".".$termine["endYear"][$i];echo "</strong>";
} else {
echo "<strong>".$termine["startDay"][$i].".".$termine["startMonth"][$i].".".$termine["startYear"][$i]." – ".$termine["endDay"][$i].".".$termine["endMonth"][$i].".".$termine["endYear"][$i];echo "</strong>";
}
}
echo "   ";
echo "".urldecode($termine["headline"][$i])."";
# echo "</a>\n";
# Datum
echo "</div>\n";
echo "</div>\n";
echo "</div>\n";
}
}
# Blätterfunktion START
if( $limit > 0 || $anzahlArtikel > $limit + $angezeigteAnzahl ) {
echo " <div class=\"prev-next\">\n";
if( $limit > 0 ) {
$skip = ($limit - $angezeigteAnzahl >= 0)?($limit - $angezeigteAnzahl):(0);
echo " <p class=\"prev\"><img src=\"/i/pf01.gif\" title=\"\" alt=\"\"/> <a href=\"".$sess->url("front_content.php?idcat=$idcat&idart=$idart&skip=$skip")."\">".$prevText."</a></p>";
}
if( $anzahlArtikel > $limit + $angezeigteAnzahl ) {
$skip = $limit + $angezeigteAnzahl;
echo " <p class=\"next\"><a href=\"".$sess->url("front_content.php?idcat=$idcat&idart=$idart&skip=$skip")."\">".$nextText."</a> <img src=\"/i/pf02.gif\" title=\"\" alt=\"\"/></p>";
}
echo " <br class=\"y\"/></div>\n";
}
# Blätterfunktion END
}
# Falls kein aktueller Termin vorhanden
if( $found == '0' ) {
echo "<table cellspacing=0 cellpadding=0 border=0><tr>
<td width=100%><strong>".mi18n("Zur Zeit sind keine Platzbelegungen vorhanden")."</strong></td>
</tr></table>";
}
?>