Module für Terminverwaltung

CyberDan
Beiträge: 204
Registriert: Mo 15. Dez 2003, 13:01
Wohnort: Saarland
Kontaktdaten:

Beitrag von CyberDan » Mi 3. Mär 2004, 10:42

kann mir wirklich keiner helfen?? :cry:

raiwo
Beiträge: 1
Registriert: Do 15. Apr 2004, 20:38
Kontaktdaten:

Layout und Template korrigieren?

Beitrag von raiwo » Do 15. Apr 2004, 20:48

Hallo,

ich hatte das selbe Problem. Es scheint behoben, seit ich ein neues Layout ohne Headlines und ein entsprechendes Template definiert habe, welches ich nur für die Terminanzeige verwende. Die Terminübersicht funktioniert mit dem alten.

Damit die Terminanzeige trotzdem so aussieht wie der Rest der Seite, habe ich echos am Ende um ein paar class-Angaben ergänzt.

Nur der Parse Error hält sich bei mir hartnäckig:

Code: Alles auswählen

[15-Apr-2004 21:16:12] PHP Parse error:  parse error, unexpected ';', expecting ']' in /home/www/web2673/html/contenido/includes/functions.mod.php(155) : eval()'d code on line 150
Grüße
Rainer

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

Module für Terminverwaltung

Beitrag von andy-man » Do 13. Mai 2004, 15:54

hallo, hallo,
kann mir jemand weiterhelfen?
ich habe das modul terminübersicht und termin-ein und ausgabe eingebaut. bei der terminübersicht kommt folgende fehlermeldung:

Warning: array_multisort(): Array sizes are inconsistent in D:\internet\projekte\H\Herrenberg\contenido\cms\front_content.php(647) : eval()'d code on line 463


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 ( $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]["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]).'&nbsp;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>
vielen dank.

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

Terminverwaltung

Beitrag von andy-man » Do 13. Mai 2004, 16:16

Hier die erste fehlermeldung, wenn zuvor noch kein termin eingetragen ist.

Warning: Argument 4 to array_multisort() is expected to be an array or a sort flag in /homepages/11/d97648527/htdocs/contenido/contenido/includes/include.con_editcontent.php(584) : eval()'d code on line 605



Es liegen aktuell keine Termine vor!

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

Modul Terminverwaltung

Beitrag von andy-man » Do 13. Mai 2004, 16:30

Nach langem hin und her habe ich das array so geändert (siehe code) und es kommt keine fehlermeldung mehr.

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"] ));
andy-man

#ayshe
Beiträge: 445
Registriert: Do 25. Mär 2004, 10:04
Kontaktdaten:

end-datum wird nicht angezeigt

Beitrag von #ayshe » Mo 28. Jun 2004, 19:56

Hallo,

das Modul läuft bei mir prima - hab ein paar Kleinigkeiten angepaßt, aber nur im html.

Wenn ein End-Datum eingegeben ist, wird es jedoch in der Übersicht nicht angezeigt - auf der Detailseite wohl. Im Layout befinden sich keine weiteren Text- bzw. Headline-Module. Was kann also die Ursache sein?
Hier mein Code der Terminübersicht:

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 id="termine" border="0" cellspacing="0" 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 ( $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]["datum2"] >= $date ) // nur Termine, die noch aktuell sind, aufnehmen
  {
   if ( $termin["monat1"][$i] !== $termin["monat1"][$i-1] || $gefunden == 0 ) // überprüfen, ob Monatsname einzufügen ist
   {
    echo ' <tr>
  <td width="45"><img border="0" src="upload/img/trans.gif" width="45" height="1" alt="" class="line"></td>
<td width="115"><img border="0" src="upload/img/trans.gif" width="115" height="1" alt="" class="line"></td>
<td width="10"><img border="0" src="upload/img/trans.gif" width="10" height="1" alt="" class="line"></td>
<td width="120"><img border="0" src="upload/img/trans.gif" width="120" height="1" alt="" class="line"></td>
<td width="10"><img border="0" src="upload/img/trans.gif" width="10" height="1" alt="" class="line"></td>
<td><img border="0" src="upload/img/trans.gif" height="1" alt="" class="line"></td>
</tr>
<tr>
  <td colspan="6" valign="top"><h2>';
    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 '</h2></td>
</tr>';
   }
   $gefunden=1;
   echo ' <tr>
  <td nowrap valign="top" style="border-bottom:1px solid #aaa; padding:5px 0 5px 0;">'.$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 '</td><td nowrap valign="top" style="border-bottom:1px solid #aaa; padding:5px 0 5px 0;"> ['.$termin["zeit1"][$i].' h]';
   } elseif ( strlen($termin["tag2"][$i]) > 1 ) // falls Enddatum (Mehrtagestermin), dieses ausgeben
   {
    echo ' –<br>  '.$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 '</td><td style="border-bottom:1px solid #aaa; padding:5px 0 5px 0;">';
   } else
   {
    echo '</td><td style="border-bottom:1px solid #aaa; padding:5px 0 5px 0;">';
   }
   $navmod_link ="front_content.php?client=".$client."?=".$lang."&idcat=".$idcat."&idart=".$termin["idart"][$i]."";
   echo '</td>
  <td style="border-bottom:1px solid #aaa; padding:5px 0 5px 0;"><img border="0" src="upload/img/trans.gif" width="8" height="1" alt=""></td>
  <td valign="top" style="border-bottom:1px solid #aaa; padding:5px 0 5px 0;">'.urldecode($termin["ort"][$i]).'</td>
  <td style="border-bottom:1px solid #aaa; padding:5px 0 5px 0;"><img border="0" src="upload/img/trans.gif" width="8" height="1" alt=""></td>
  <td valign="top" style="border-bottom:1px solid #aaa; padding:5px 0 5px 0;"><a href="'.$sess->url("$navmod_link").'">'.urldecode($termin["titel"][$i]).'</a></td>
</tr>';
  }
}
}
if ( $gefunden == 0 ) // falls kein aktueller Termin vorliegt
{
echo ' <tr>
  <td colspan="6"><b>Es liegen aktuell keine Termine vor!</b></td>
</tr>';
}
?>
</table>
Viele Grüße,
#ayshe


OK, hab eine Lösung gefunden:

Code: Alles auswählen

// falls kein Enddatum (Eintagestermin), aber Anfangszeit, diese ausgeben
   {
    echo '</td><td nowrap valign="top" style="border-bottom:1px solid #aaa; padding:5px 0 5px 0;"> ['.$termin["zeit1"][$i].' h]'.' - ['.$termin["zeit2"][$i].' h]';
Danke dafür, daß ihr mir beim lauten Nachdenken zugehört habt ;-)

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

Re: end-datum wird nicht angezeigt

Beitrag von Halchteranerin » Mo 28. Jun 2004, 20:16

Hallo,

mmmhhhh ... ich benutze eine geaenderte Version, habe sie auch irgendwo hier im Forum gepostet, finde sie aber gerade nicht wieder. Also poste ich sie nochmal und ueberlasse Dir den Spass, die Unterschiede zu finden. :wink: Online ist sie hier zu sehen: http://www.halchter.com/cms/front_content.php?idcat=7
Wenn's Dir zu viele Farbtoene sind (ich wollte, dass die Termine alternierende Farben haben, und die Monate sollten auch anders hervorgehoben sein), musst Du den Quelltext an entsprechender Stelle aendern.

Gruss
Christa

Terminuebersicht-Ausgabe (Eingabe ist leer):

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="100%">';
echo "<tr><td colspan=2 class=\"headline\">CMS_HTMLHEAD[1]</td></tr>"; // Überschrift der Seite mit der Termin-Übersicht
echo "<tr><td colspan=2 class=\"subheadline\">CMS_HTMLHEAD[2]</td></tr>"; // Weiterer Text
echo '<tr><td colspan=2>&nbsp;</td></tr>'; // Leerzeile vor der Termin-Übersicht

$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="600" border="0" cellspacing="0" cellpadding="5" class="text">

        <tr>
          <td colspan="2" class="headline" style="border: 1px; border-left: 0px; border-right:0px; border-color: #4779A0; border-style: solid; background-color: #EEEEEE">';
    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).'</td>
        </tr>';
   }
   $gefunden=1;
   echo '        <tr';
   if ( $farbe == 1 )
   {
    echo ' bgcolor="#d5e6f5"';
   }
   echo '>
          <td valign="top" width="100" align="left">'.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 '–<br>';
    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 '</td>
          <td width="490" valign="top" align="left"><b>'.urldecode($termin["titel"][$i]).'</b></td>
        </tr>';
   if ( strlen($termin["ort"][$i]) > 1 )
   {
    echo '        <tr';
    if ( $farbe == 1 )
    {
     echo ' bgcolor="#d5e6f5"';
    }
    echo '>
           <td colspan="2"><b>Ort:</b> '.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="#d5e6f5"';
    }
    $db->next_record();
    echo '>
           <td colspan="2"><b>Ansprechperson/Details:</b> '.urldecode($db->f("value")).'</td>
         </tr>';
   }
   if ( $farbe == 0 ) { $farbe=1; } else { $farbe=0; }
  }
 }
}
if ( $gefunden == 0 ) // falls kein aktueller Termin vorliegt
{
 echo ' <tr>
  <td colspan=2><b>Es liegen aktuell keine Termine vor!</b></td>
 </tr>';
}
?>
      </table>

#ayshe
Beiträge: 445
Registriert: Do 25. Mär 2004, 10:04
Kontaktdaten:

Re: immer noch dieses "3B.sp.6n"-Problem

Beitrag von #ayshe » Mo 28. Jun 2004, 20:20

cxx hat geschrieben:con_code leeren, alle Headlines ausfüllen, Enddatum/Uhrzeit neu setzen...
aber Nichts davon wirkt:
sobald ich das Datum in der Termineingabe ändere, bekomme ich als Enddatum in der Ausgabe(Terminübersicht) immer nur dieses 3B.sp.6n . Hat schon irgend jemand dafür eine Lösung gefunden?

gruß christian
Hallo,

also ich bekomme nach Änderung des Datums nicht diese Zeichenfolge, sondern einfach gar keine Anzeige. Das ist auch nicht besser...
Hat jemand eine Lösung des Problems gefunden? (con_code leeren hat nichts gebracht.)

#ayshe

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

Re: immer noch dieses "3B.sp.6n"-Problem

Beitrag von Halchteranerin » Mo 28. Jun 2004, 20:34

Hallo nochmal! :lol:
#ayshe hat geschrieben:also ich bekomme nach Änderung des Datums nicht diese Zeichenfolge, sondern einfach gar keine Anzeige. Das ist auch nicht besser...
ich habe weder dieses Problem noch das von Christian. Aber auch fuer die Termineingabe benutze ich ein geaendertes Modul:
(Input leer) Output:

Code: Alles auswählen

<?php 
if(strstr($REQUEST_URI,"changeview=edit") || $submit=="editcontent" || strstr($REQUEST_URI,"area=con_editcontent")) // Überprüfen, ob im Editiermodus aufgerufen 
{ 
$submit=""; 
echo " <script language="JavaScript" src="../contenido/scripts/calendar1.js.php?contenido=".$sess->id.""></script>"; // Kalender einbinden 
$sql = "SELECT ARTLANG.idartlang, CONTENT.idtype, CONTENT.typeid, CONTENT.value, CONTENT.idcontent 
  FROM ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["content"]." AS CONTENT 
  WHERE ARTLANG.idart = ".$idart." AND ARTLANG.idartlang = CONTENT.idartlang 
  ORDER BY CONTENT.typeid ASC"; 
$db->query($sql); // Artikelangaben einlesen 
if ($db->num_rows() != 0) 
{ 
  $termin = array(); 
  $exists = array(); 
  $db->next_record(); 
  $idartlang = $db->f("idartlang"); 
  for ($i=0; $i<$db->num_rows(); $i++) 
  { 
   if ( $db->f("idtype") == 3 ) 
   { 
    $j = $db->f("typeid"); 
    $termin[$j] = $db->f("value"); 
    $exists[$j] = 1; 
   } 
  $db->next_record(); 
  } 
} 
if($termin[6]=="") // falls noch kein Titel eingetragen, Seitentitel einlesen 
{ 
  $sql = "SELECT ARTLANG.title 
   FROM ".$cfg["tab"]["art_lang"]." AS ARTLANG 
   WHERE ARTLANG.idart = ".$idart.""; 
  $db->query($sql); 
  $db->next_record(); 
  $termin[6] = $db->f("title"); 
} 
if($senden==1) // falls das Terminformular abgeschickt wurde, Daten in Datenbank schreiben 
{ 
  $senden=0; 
  $date = date("Y-m-d H:i:s"); 
  $author = $auth->auth["uname"]; 
  if (strlen($datum1)==10) 
  { 
   $termin[0] = $datum1; 
  } else 
  { 
   $termin[0] = ""; 
  } 
  $termin[1] = $zeit1; 
  if (strlen($datum2)==10 && $datum2 >= $datum1) 
  { 
   $termin[2] = $datum2; 
  } else 
  { 
   $termin[2] = ""; 
  } 
  $termin[3] = $zeit2; 
  $termin[4] = $ort1; 
  $termin[5] = $ort2; 
  $termin[6] = $titel; 
  for ($i=0; $i<=6; $i++) 
  { 
   if($exists[$i]==1) 
   { 
    $sql = "UPDATE ".$cfg["tab"]["content"]." 
     SET value='".$termin[$i]."', lastmodified='".$date."' 
     WHERE idartlang = ".$idartlang." AND idtype='3' AND typeid='".$i."'"; 
    $db->query($sql); 
   } else 
   { 
    $sql = "INSERT INTO ".$cfg["tab"]["content"]." 
     (idcontent, idartlang, idtype, typeid, value, author, created, lastmodified) 
      VALUES('".$db->nextid($cfg["tab"]["content"])."', '".$idartlang."', '3', '".$i."', '".$termin[$i]."', '".$author."', '".$date."', '".$date."')"; 
    $db->query($sql); 
   } 
  } 
} 
// ab hier das Formular für die Editieransicht 
echo "<form action="".$REQUEST_URI."" method="post" name="eintrag"> 
<table border=0 cellspacing=2 cellpadding=1> 
<tr> 
  <td align="left">Titel</td> 
  <td align="left"><input type="text" name="titel" value="".urldecode(stripslashes($termin[6]))."" size=27 class=Input></td> 
</tr> 
<tr> 
  <td nowrap>Startdatum <b class=klein>jjjj-mm-tt</b></td> 
  <td align="left"><input type="text" name="datum1" value="".$termin[0]."" size=11 class=Input>
   <a href="javascript:startcal.popup('','".$cfg['path']['contenido_fullhtml']."templates/standard/');">
   <img src="".$cfg['path']['contenido_fullhtml']."images/calendar.gif" width=16 height=16 border=0 alt="Startzeitpunkt wählen"></a></td> 
</tr> 
<tr> 
  <td align=left>Start-Uhrzeit <b class=klein>hh:mm</b></td> 
  <td align=left><input type="text" name="zeit1" value="".$termin[1]."" size=6 class=Input></td> 
  <td class=klein>(kann auch leer bleiben)</td> 
</tr> 
<tr> 
  <td align=left>Enddatum <b class=klein>jjjj-mm-tt</b></td> 
  <td><input type="text" name="datum2" value="".$termin[2]."" size=11 class=Input>
   <a href="javascript:endcal.popup('','".$cfg['path']['contenido_fullhtml']."templates/standard/');">
   <img src="".$cfg['path']['contenido_fullhtml']."images/calendar.gif" width=16 height=16 border=0 alt="Endzeitpunkt wählen"></a></td>
   <td class=klein>(kann auch leer bleiben)</td> 
</tr> 
<tr> 
  <td align=left>End-Uhrzeit <b class=klein>hh:mm</b></td> 
  <td><input type="text" name="zeit2" value="".$termin[3]."" size=6 class=Input></td> 
  <td class=klein>(kann auch leer bleiben)</td> 
</tr> 
<tr> 
  <td align=left>Ort</td> 
  <td><input type="text" name="ort1" value="".urldecode(stripslashes($termin[4]))."" size=20 class=Input></td> 
  <td class=klein>(erscheint <i>auch</i> in der Übersicht)</td> 
</tr> 
<tr> 
  <td align=left>Ort - Detail</td> 
  <td><input type="text" name="ort2" value="".urldecode(stripslashes($termin[5]))."" size=27 class=Input></td> 
  <td class=klein>(erscheint <i>nicht</i> in der Übersicht)</td> 
</tr> 
<tr> 
  <td colspan=3 align=center> 
   <input type="submit" value=" Absenden " class=InputButton>&nbsp;&nbsp;<input type="hidden" name="senden" value=1> 
   <input type="reset" value=" Abbrechen " class=InputButton> 
  </td> 
</tr> 
</table> 
</f"."orm> 
<p>Beschreibung/Inhalte: CMS_HTML[7]</p> 
<script language="JavaScript"> 
var startcal = new calendar1(document.forms['eintrag'].elements['datum1']); 
startcal.year_scroll = true; 
startcal.time_comp = false; 
var endcal = new calendar1(document.forms['eintrag'].elements['datum2']); 
endcal.year_scroll = true; 
endcal.time_comp = false; 
</script>"; 
} else // ab hier Terminausgabe für Frontend-Ansicht bzw. Vorschau 
{ 
$tag1 = substr("CMS_TEXT[0]",8,2); 
$monat1 = substr("CMS_TEXT[0]",5,2); 
$jahr1 = substr("CMS_TEXT[0]",0,4); 
$tag2 = substr("CMS_TEXT[2]",8,2); 
$monat2 = substr("CMS_TEXT[2]",5,2); 
$jahr2 = substr("CMS_TEXT[2]",0,4); 
$datum1 = $tag1.".".$monat1.".".$jahr1; 
$datum2 = $tag2.".".$monat2.".".$jahr2; 
$date1 = getdate(mktime(0,0,0,$monat1,$tag1,$jahr1)); 
$date2 = getdate(mktime(0,0,0,$monat2,$tag2,$jahr2)); 
switch ($date1[wday]) { 
  case 1: $wtag1 = "Montag"; break; 
  case 2: $wtag1 = "Dienstag"; break; 
  case 3: $wtag1 = "Mittwoch"; break; 
  case 4: $wtag1 = "Donnerstag"; break; 
  case 5: $wtag1 = "Freitag"; break; 
  case 6: $wtag1 = "Samstag"; break; 
  case 0: $wtag1 = "Sonntag"; break; } 
switch ($date2[wday]) { 
  case 1: $wtag2 = "Montag"; break; 
  case 2: $wtag2 = "Dienstag"; break; 
  case 3: $wtag2 = "Mittwoch"; break; 
  case 4: $wtag2 = "Donnerstag"; break; 
  case 5: $wtag2 = "Freitag"; break; 
  case 6: $wtag2 = "Samstag"; break; 
  case 0: $wtag2 = "Sonntag"; break; } 
echo "<h1 class="headline">CMS_TEXT[6]</h1> 
<font id="font"><p>&nbsp;&nbsp;".$wtag1.", ".$datum1; 
if ( "CMS_TEXT[1]"!=="" ) 
{ 
echo ", CMS_TEXT[1]"; 
if ( "CMS_TEXT[3]"=="" ) 
{ 
  echo " Uhr"; 
} 
} 
if ( strlen($datum2)==10 || "CMS_TEXT[3]"!=="" ) 
{ 
echo " – "; 
if ( strlen($datum2)==10 ) 
{ 
  echo $wtag2.", ".$datum2; 
} 
if ( strlen($datum2)==10 && "CMS_TEXT[3]"!=="" ) 
{ 
  echo ', '; 
} 
if ( "CMS_TEXT[3]"!=="" ) 
{ 
  echo "CMS_TEXT[3] Uhr"; 
} 
} 
echo "</p> 
<p>&nbsp;&nbsp;<b>CMS_TEXT[4]</b>"; 
if ( "CMS_TEXT[5]" ) 
{ 
echo ", CMS_TEXT[5]"; 
} 
echo "</p> 
<p><br>CMS_HTML[7]</p></font>"; 
$navmod_link ="front_content.php?client=".$client."?=".$lang."&idcat=".$idcat.""; 
echo '<p><br><a href="'.$sess->url("$navmod_link").'" id="font">Zurück zur Terminübersicht</a></p>';
} 

?>
Ich weiss nicht mehr genau, wie das Originalmodul aussah. Dieses hier hat Eingabefelder fuer Titel, Startdatum, Start-Uhrzeit, Enddatum, End-Uhrzeit, Ort, Ort-Detail, Beschreibung/Inhalte (letzteres ist ein Text/HTML-Feld).

Gruss
Christa

#ayshe
Beiträge: 445
Registriert: Do 25. Mär 2004, 10:04
Kontaktdaten:

Beitrag von #ayshe » Mo 28. Jun 2004, 21:17

Hallo Christa,

vielen Dank für die Codes, ich werde sie mal ausprobieren - heute nacht :?

Viele Grüße,
#ayshe

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

Beitrag von Halchteranerin » Di 29. Jun 2004, 07:10

#ayshe hat geschrieben:vielen Dank für die Codes, ich werde sie mal ausprobieren - heute nacht :?
So, die Nacht ist vorbei, hat's was gebracht? :lol: Ich hoffe es ...

Viele Gruesse
Christa

#ayshe
Beiträge: 445
Registriert: Do 25. Mär 2004, 10:04
Kontaktdaten:

Beitrag von #ayshe » Di 29. Jun 2004, 09:18

Halchteranerin hat geschrieben:
#ayshe hat geschrieben:vielen Dank für die Codes, ich werde sie mal ausprobieren - heute nacht :?
So, die Nacht ist vorbei, hat's was gebracht? :lol: Ich hoffe es ...

Viele Gruesse
Christa
Hi, Du early bird :-)
Mit Deinem Code hatte ich auch Probleme, also habe ich messerscharf geschlossen, daß es doch mit dem Layout zu tun haben muß. Es gibt da noch Bildmodule und in denen habe ich zwei Anführungszeichen maskiert. Jetzt wird alles richtig dargestellt.
Vielen Dank nochmal für Deine Hilfe. Es war auf jeden Fall auch sehr interessant zu sehen, wie du den Farbwechsel per Datensatz programmiert hast.

Schönen Tag noch,
#ayshe

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

Beitrag von Halchteranerin » Di 29. Jun 2004, 09:46

Hallo nochmal,
#ayshe hat geschrieben:Es war auf jeden Fall auch sehr interessant zu sehen, wie du den Farbwechsel per Datensatz programmiert hast.
ich wollte nur etwas richtigstellen, auch wenn agon offensichtlich kein Forumsmitglied mehr ist: den Farbwechsel hat er quasi 'nach meinen Wuenschen' programmiert, ich habe nur einfachere Aenderungen am Modul vorgenommen. :oops:

Aber gut, dass Du die Ursache des Problems trotzdem gefunden hast.

Viele Gruesse
Christa

tommo
Beiträge: 120
Registriert: So 27. Jun 2004, 21:34
Kontaktdaten:

Beitrag von tommo » Mi 30. Jun 2004, 08:49

Ja bin ich denn doof,

bei der Termineingabe wird nur " Donnerstag, .." ausgegeben. Hab den Code von der Halchteranerin weiter oben benutzt.

Woran kann das liegen?

Thomas

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

Beitrag von Halchteranerin » Mi 30. Jun 2004, 08:53

Aehm ... nur so zum Verstaendnis, was meinst Du damit genau?
tommo hat geschrieben:bei der Termineingabe wird nur " Donnerstag, .." ausgegeben.
TerminEINgabe heisst so, weil man da etwas EINgibt, da wird nichts AUSgegeben. :) Und bei 'meinem' Code gibt's gar nichts mit Wochentagen, da wird immer nur ein Datum (ggf. zwei, bei mehrtaegigen Terminen) ein- und ausgegeben, also keine Ahnung, woher Dein Donnerstag kommt. Kannst Du Dein Problem etwas genauer beschreiben?

Gesperrt