Problem mit I-Fekt Monatkalender 1.0

Gesperrt
Calimero
Beiträge: 60
Registriert: Do 4. Aug 2005, 13:44
Kontaktdaten:

Problem mit I-Fekt Monatkalender 1.0

Beitrag von Calimero » Mo 25. Sep 2006, 13:46

hallo leute,
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]." &ndash; ".$termine["endDay"][$i].".".$termine["endMonth"][$i].".".$termine["endYear"][$i];echo "</strong>";
    } else {
     echo "<strong>".$termine["startDay"][$i].".".$termine["startMonth"][$i].".".$termine["startYear"][$i]." &ndash; ".$termine["endDay"][$i].".".$termine["endMonth"][$i].".".$termine["endYear"][$i];echo "</strong>";
    }
   }   
echo "&nbsp;&nbsp&nbsp;";



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>";
}

?>

Gesperrt