Terminmodule

DoroM
Beiträge: 116
Registriert: Mo 26. Jul 2004, 12:11
Wohnort: Saarland
Kontaktdaten:

Beitrag von DoroM » Do 27. Apr 2006, 11:17

Ich werd zum Elch. Seit Tagen schlage ich mich mit dem Fehler rum:
Warning: array_multisort(): Array sizes are inconsistent in /home/sites/site1/web/contenido/external/backendedit/front_content.php(778) : eval()'d code on line 601

Hab nun wirklich alles aus dem Forum angewendet, es kommt immer noch!!
Was kann da noch falsch sein?

Mein Code:

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


$sql = "SELECT ARTLANG.idart, CONTENT.value, CONTENT.typeid, ARTLANG.idartlang
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,0);
    $termin["monat2"][$anz] = substr($db->f("value"),0,0);
    $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]["datum1"] >= $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 ' <div class="monat">';
    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; }
     echo ' '.$termin["jahr1"][$i];
   
    echo '</div>';
   }
   $gefunden=1;
   echo ' <div class="datum">'.substr($termin["datum1"][$i],8,2).'.'.substr($termin["datum1"][$i],5,2).'.'.substr($termin["datum1"][$i],0,4); // Anfangsdatum ausgeben
   if ( strlen($termin["tag2"][$i]) < 2 && strlen($termin["zeit1"][$i]) >1 ) // falls kein Enddatum (Eintagestermin), aber Anfangszeit, diese ausgeben
   {
    echo '     '.$termin["zeit1"][$i].' Uhr</div>';
   } elseif ( strlen($termin["tag2"][$i]) > 1 ) // falls Enddatum (Mehrtagestermin), dieses ausgeben
   {
    echo ' – '.substr($termin["datum2"][$i],8,2).'.'.substr($termin["datum2"][$i],5,2).'.'.substr($termin["datum2"][$i],0,4);
    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],0,0).'';
     }
    }
    echo '</div>';
   } else
   {
    echo '</div>';
   }
   $navmod_link ="front_content.php?client=".$client."?=".$lang."&idcat=".$idcat."&idart=".$termin["idart"][$i]."";
   echo '
  <div class="terminort">'.urldecode($termin["ort"][$i]).'</div>
  <div class="terminart"><a class="archiv" href="'.$sess->url("$navmod_link").'" id="font">'.urldecode($termin["titel"][$i]).'</a></div><span class="stopFloat"></span>';
  }
 }
}
if ( $gefunden == 0 ) // falls kein aktueller Termin vorliegt
{
 echo ' <div class="keine">Es liegen aktuell keine Termine vor!</div>';
echo '</div></div>';
}

?>
</div>
Hiiilfe!!

rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag von rezeptionist » Do 27. Apr 2006, 11:35

ich gehe recht in der annahmen das dies hier das Modul mit allen Terminen ist!

hast du dann schon mal den hier versucht
http://contenido.org/forum/viewtopic.ph ... 1&start=30

wenn nicht dann zugang per PM
greets

DoroM
Beiträge: 116
Registriert: Mo 26. Jul 2004, 12:11
Wohnort: Saarland
Kontaktdaten:

Beitrag von DoroM » Do 27. Apr 2006, 12:04

Danke!
Ich hab jetzt einfach mein Modul rausgeschmissen und das von Seite 1 unten eingebaut. Jetzt klappts, jippi.
Leider ist jetzt mein schönes tabellenloses Kalenderlayout mit divs erst mal wieder weg. Was solls.

Gruß

DoroM
Beiträge: 116
Registriert: Mo 26. Jul 2004, 12:11
Wohnort: Saarland
Kontaktdaten:

Beitrag von DoroM » Di 9. Mai 2006, 14:51

Das Terminmodul klappt nun. Jetzt möchte ich aber alle abgelaufenen Termine in ein Archiv legen lassen.
Hab eine Kategorie angelegt, sie als Terminübersicht konfiguriert, es kommen die abgelaufenen Termine in diese Kategorie, sie werden aber nicht angezeigt. Da steht immer nur: "Es liegen aktuell keine Termine vor!"
Hat jemand eine Idee, wie man das hinkriegen kann?

OK, während des Schreibens ist es mir eingefallen: die TErmine werden nicht angezeigt, weil sie ja nicht mehr aktuell sind. Man braucht also ein anderes Modul?

Gruß
Doro

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Di 9. Mai 2006, 17:05

DoroM hat geschrieben:Man braucht also ein anderes Modul?
Richtig. Es gibt noch ein Modul "Terminuebersicht fuer alle Module" oder so aehnlich, muss auch hier zu finden sein.
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!

rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag von rezeptionist » Di 9. Mai 2006, 17:50

SIehe mein letztes Post. :wink:
greets

andy-man
Beiträge: 166
Registriert: Di 25. Nov 2003, 11:29
Wohnort: Oberstaufenbach
Kontaktdaten:

Termineingabe

Beitrag von andy-man » Fr 12. Mai 2006, 19:58

hallo,
ich habe mit der termineingabe in contenido 4.6.8 probleme. nach dem eintragen der termindaten möchte ich das dokument absenden und es erscheint die meldung error404: datei nicht gefunden.
wenn ich zuerst im beschreibungfeld einen eintrag tätige und danach den termin eintrage, geht es.
woran kann dies liegen?

Die terminübersicht funktioniert bei mir. ich habe diesen für die sprachen angepasst. hier zum downloaden
http://web6.a15186132.alturo-server.de/ ... rsicht.xml

mfg

andy-man

Coralle
Beiträge: 3
Registriert: Mo 22. Mai 2006, 19:56
Kontaktdaten:

Beitrag von Coralle » Mo 22. Mai 2006, 19:59

Hallo, habe ein Problem mit der Eingabe von Terminen. Bekomme nur einen Termin eingetragen. Wenn ich einen neuen Termin eingebe wird der alte Termin überschrieben. Muss zugeben das ich neu dabei bin und noch nicht viel Ahnung habe. :oops: :) Kann mir einer weiter helfen?

rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag von rezeptionist » Mo 22. Mai 2006, 20:03

du musst pro Termin einen Artikel anlegen ! :wink:
greets

Coralle
Beiträge: 3
Registriert: Mo 22. Mai 2006, 19:56
Kontaktdaten:

Beitrag von Coralle » Mo 22. Mai 2006, 20:14

Danke! :oops: :wink: :lol: :lol: Geht.....

Coralle
Beiträge: 3
Registriert: Mo 22. Mai 2006, 19:56
Kontaktdaten:

Beitrag von Coralle » Di 23. Mai 2006, 19:38

Hallo,
ich habe ein weiteres Problem, was hier auch schon angesprochen wurde. Habe aber keine Lösung gefunden.

Der Terminkalender funktioniert sehr schön, doch als ich im Teaser_Container rechts etwas eingegeben habe erschien bei meiner größten Terminsammlung folgender Fehler! Ich habe noch einen Terminbereich, da kommt der Fehler nicht. Woran könnte es liegen?

Warning: array_multisort(): Argument #8 is expected to be an array or a sort flag in /homepages/*****/cms/front_content.php(771) : eval()'d code on line 196

DoroM
Beiträge: 116
Registriert: Mo 26. Jul 2004, 12:11
Wohnort: Saarland
Kontaktdaten:

Beitrag von DoroM » Mo 28. Aug 2006, 12:31

Da ist übrigens ein Fehler drin, der bei mir im I.E.5.0 vermurkste Termineseiten bringt. Bei den anderen I.E.s und dem FF übrigens nicht, da sieht alles o.k. aus.
Vielleicht werden deshalb aber meine Termine, die ich auch auf der Startseite in einer dritten Spalte hab, dort nicht richtig sortiert.

Code: Alles auswählen

$navmod_link ="front_content.php?client=".$client."?=".$lang."&idcat=".$idcat."&idart=".$termin["idart"][$i].""; 
muss heißen:

Code: Alles auswählen

$navmod_link ="front_content.php?client=".$client."&idcat=".$idcat."&idart=".$termin["idart"][$i]."";
Vielleicht könnt Ihr das bestätigen, kann nämlich kaum programmieren.

Gruß
D.

mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf » Mo 28. Aug 2006, 13:24

Code: Alles auswählen

$navmod_link ="front_content.php?client=".$client."?=".$lang."&idcat=".$idcat."&idart=".$termin["idart"][$i].""; 
kenne das modul nicht, aber

$client."?=".$lang."

ist sicher käse ;)

eher

Code: Alles auswählen

$navmod_link ="front_content.php?client=".$client."&lang=".$lang."&idcat=".$idcat."&idart=".$termin["idart"][$i].""; 
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams

DoroM
Beiträge: 116
Registriert: Mo 26. Jul 2004, 12:11
Wohnort: Saarland
Kontaktdaten:

Beitrag von DoroM » Mo 28. Aug 2006, 13:51

Genau!!
Danke.

jasja
Beiträge: 2
Registriert: Sa 26. Aug 2006, 14:22
Kontaktdaten:

Modul für Terminausgabe

Beitrag von jasja » Di 5. Sep 2006, 13:59

Hallo zusammen,

ich habe anscheinend den gleichen Fehler von dem hier schon ganz fleißig geschrieben wird, aber ich steig noch nicht durch. Was mach ich nur falsch?

Mein Fehler:
array_multisort(): Array sizes are inconsistent in /kunden/136105_15827/webseiten/cms/front_content.php(792) : eval()'d code on line 612

Mein Code:

Code: Alles auswählen

<?php
$gefunden=0; // um zu überprüfen, ob überhaupt Termine vorliegen
$date = date("Y-m-d");

$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
##   {
##    echo '<p style="color: rgb(153,0,0); font-weight: bold;">';
##    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).'</p>';
##   }
   $gefunden=1;
   echo '<p style="margin-bottom: 10px;">'.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].'&nbsp;Uhr';
   }
   if ( strlen(substr($termin["datum2"][$i],8,2)) > 1 || strlen($termin["zeit2"][$i]) >1 )
   {
    echo ' – ';
    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].'&nbsp;Uhr';
    }
   }
   echo '<br /><b>Thema: '.urldecode($termin["titel"][$i]).'</b>';
   if ( strlen($termin["ort"][$i]) > 1 )
   {
    echo '<br /><b>Referent/in:</b> '.urldecode($termin["ort"][$i]);
   }
   $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)
   {
    $db->next_record();
    echo '<br /><b>Ort:</b> '.urldecode($db->f("value")).'</p>';
   }
  }
 }
}
if ( $gefunden == 0 ) // falls kein aktueller Termin vorliegt
{
 echo ' <p style=\"font: normal 0.8em Verdana, Geneva, Arial, Helvetica, sans-serif;\">Es liegen aktuell keine Termine vor!<br /><br /><br /></p>';
}
?>
Gruß.

Gesperrt