Seite 1 von 2

Termine

Verfasst: So 30. Mai 2004, 18:51
von Christoph Scheck
Termine

Verfasst: Mo 31. Mai 2004, 09:49
von Halchteranerin
Hallo Christoph,

mit DEN Modulen geht das nicht. Aber mit Hilfe des Autors habe ich schon vor einiger Zeit ein weiteres Modul gebastelt. Das Ergebnis kannst Du Dir unter www.halchter.de angucken. Auf der Startseite ist diese Uebersicht ('Die naechsten Termine'). Mein Wunsch war, die naechsten 5 Termine aufzulisten, aber die Anzahl liesse sich in der Modulausgabe aendern. Die eigentliche Terminuebersicht befindet sich unter http://www.halchter.de/cms/front_content.php?idcat=7, und auch die ist etwas angepasst, weil ich z.B. diese abwechselnde Hintergrundfarbe haben wollte, um leichter sehen zu koennen, wo die Angaben zu einem Termin enden und wo die zum naechsten anfangen.

Sollte das genau das sein, was Du suchst :lol:, kann ich gerne den Code posten. Der ist zwar auf die Farben meiner Seiten angepasst, aber das ist nun das geringste Problem.

Gruss
Christa

Verfasst: Mo 31. Mai 2004, 11:11
von oma wetterwax
hallo christa,

der code wäre auch für mich sehr interessant
soll z.b. auf http://bbv.two4u.at

ich möchte dann noch versuchen, in der datumsspalte ein thumbnail einzubasteln. wenn es mir nicht gelingt, vertrau ich auf eure hilfe :)

gruß
oma

ein Traum

Verfasst: Mo 31. Mai 2004, 11:58
von Christoph Scheck
ok

Verfasst: Mo 31. Mai 2004, 13:07
von Halchteranerin
Hallo Ihr zwei (und der dritte, der sich per PM gemeldet hat ;-) ),

hier der Code fuer die Terminuebersicht fuer die Startseite.

Input:

Code: Alles auswählen

// selected category
$selected = "CMS_VALUE[0]";

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">
        <tr>
          <td>Überschrift</td>
          <td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\"></td>
        </tr>

        <tr valign=\"top\">
          <td>Kategorie wählen:</td>
          <td>
            <select name=\"CMS_VAR[0]\">";
            if($selected!="0" && $selected!=""){
             echo"<option value=\"0\">--- kein ---</option>";

            }else{
            echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>";
            }

            // fetch all categorys
            $query = "SELECT A.idcat, A.level, C.name FROM ".$cfg["tab"]["cat_tree"]." AS A, ".
                     $cfg["tab"]["cat"]." AS B,  ".$cfg["tab"]["cat_lang"]." AS C WHERE A.idcat=B.idcat ".
                     "AND B.idcat=C.idcat AND C.idlang='$lang' AND B.idclient='$client' ".
                     "AND C.visible=1 ORDER BY A.idtree";
            // execute query
            $db->query($query);

            // loop result and build the options
            while ($db->next_record()) {

              // indent spacer
              $spaces = "|";

              // how many levels
              $levels = $db->f("level");

              for ($i = 0; $i < $levels; $i ++) {
                // add 2 spaces for every level
                $spaces = $spaces . "--";

              } // end for
              
              $spaces .= ">";


              if ($selected == $db->f("idcat")) {
                // selected category
                echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";

              } else {
                // category
                echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";

              } // end if

            } // end while

echo "      </select>";

echo "    </td>
        </tr>

      </table>";
Output:

Code: Alles auswählen

<?php
if ("CMS_VALUE[0]" == 0)
{
 $navmod_id = $idcat;
} else
{
 $navmod_id = "CMS_VALUE[0]";
}
$gefunden=0; // um zu überprüfen, ob überhaupt Termine vorliegen
$date = date("Y-m-d");
echo '<table width="290" border="0" cellspacing="0" cellpadding="5" style="border: 1px; border-color: #4779a0; border-style: solid">';
echo "<tr><td style=\"border: 1px; border-color: #4779a0; border-style: solid; background-color: #EEEEEE; padding-left:10px\" class=\"headline\" colspan=\"2\">CMS_VALUE[1]</td></tr>"; //Überschrift 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 = '".$navmod_id."' 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
  {

   $gefunden++;
   echo '        <tr>';
   echo '
          <td valign="top" width="70" style="border: 1px; border-top:0px; border-right:0px; border-color: #4779a0; border-style: solid; padding-left:10px">'.substr($termin["datum1"][$i],8,2).'.'.substr($termin["datum1"][$i],5,2).'.'.substr($termin["datum1"][$i],0,4);
 $navmod_link ="front_content.php?client=".$client."?=".$lang."&idcat=".$navmod_id."&idart=".$termin["idart"][$i]."";
   echo '</td>
          <td valign="top" style="border: 1px; border-top:0px; border-left:0px; border-color: #4779a0; border-style: solid; padding-left:10px"><a href="'.$sess->url("$navmod_link").'" id="font">'.urldecode($termin["titel"][$i]).'</a></td>
        </tr>';
  }
  if($gefunden == 5) break;
 }
}
if ( $gefunden == 0 ) // falls kein aktueller Termin vorliegt
{
 echo ' <tr>
  <td colspan=2 style="border: 1px; border-top: 1px; border-left: 1px; border-right: 1px; border-bottom: 1px; border-color: #4779A0; border-style: solid"><b>Es liegen aktuell keine Termine vor!</b></td>
 </tr>';
}
?>
      </table>
Ziemlich weit hinten befindet sich die Zeile if($gefunden == 5) break;
Hier wird die Anzahl der Eintraege auf 5 (=die naechsten 5 Termine) begrenzt. Wenn Ihr mehr wollt, muesst Ihr die Zahl erhoehen.

oma, viel Spass beim Basteln. :wink:

Ich hoffe, Ihr koennt es so uebernehmen, denn ich habe oefter die Erfahrung gemacht, dass sich irgendwie Fehler eingeschlichen haben, auch wenn man den Quelltext hier innerhalb der code-Tags eingegeben hat. Wenn man den Text von hier uebernommen hat, gab's eine rote Lampe, wenn ich den Text aber von meinem Contenido in ein anderes kopiert habe, war die Lampe gruen. Achtet in diesem Fall evtl. auf Zeilenumbrueche o.ae.

Viele Gruesse
Christa

Vielen Vielen Dank

Verfasst: Mo 31. Mai 2004, 16:27
von Christoph Scheck
Hi Vielen Dank erstmal...nur habe ich ein kleines Problem ich bekomme leider nur einen weißen balken mit zwei .. (Punkten) und folgede Fehlermeldung:

[31-May-2004 17:22:58] PHP Warning: array_multisort(): Argument #8 is expected to be an array or a sort flag in C:\web\xampp\htdocs\content\cms\front_content.php(659) : eval()'d code on line 1216

[31-May-2004 17:22:58] PHP Warning: array_multisort(): Argument #8 is expected to be an array or a sort flag in C:\web\xampp\htdocs\content\cms\front_content.php(659) : eval()'d code on line 966

Was soll mir dass sagen ? hat jemand rat ?

Verfasst: Mo 31. Mai 2004, 18:38
von Halchteranerin
Hallo Christoph,

gute Frage, naechste Frage ... Konfiguriert hast Du es, ja? Welche Contenido-Version benutzt Du? Ich habe das Modul erst bei 4.4.2 eingesetzt gehabt, jetzt laeuft's (ohne Aenderungen) mit 4.4.4.

Versuch mal auch, diesen Text in eine Zeile zusammenzuziehen, obwohl ich nicht glaube, dass es etwas damit zu tun hat:

Code: Alles auswählen

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 
Gruss
Christa

Verfasst: Mo 31. Mai 2004, 18:39
von Halchteranerin
ach ja, noch etwas ... ist die 'Lampe' beim Modul gruen oder rot?

4.5.2 ALPHA

Verfasst: Mo 31. Mai 2004, 18:53
von Christoph Scheck
Hallo Christa,

Danke nochmal für Deine Hilfe. Ja meine Lampen sind Grün. Ich nutze die Version 4.5.2 ALPHA und den Text habe ich soweit angepasst. Hast Du bitte noch einen Rat für mich ?

lg Christoph

Vielen Dank für Deine Hilfe

Verfasst: Mo 31. Mai 2004, 19:14
von Christoph Scheck
Dein Modul ist super und ich bin doof :-(.
Es ist wirklich gelungen und ich kann es jedem nur empfehlen :-)

1000 Dank Christoph

P.S. bei mir hat wegen der Vorkonfiguration gehackt entschuldigen Deinen Aufand

Termine einpflegen???

Verfasst: Di 1. Jun 2004, 11:21
von m20
hallo zusammen,

blöde frage: wo bzw. mit welchem modul pflegt man die termine eigentlich ein?
der oben gepostete code bezieht sich doch auf die ausgabe oder liege ich da falsch?

Re: Termine einpflegen???

Verfasst: Di 1. Jun 2004, 12:59
von Halchteranerin
m20 hat geschrieben: blöde frage: wo bzw. mit welchem modul pflegt man die termine eigentlich ein?
der oben gepostete code bezieht sich doch auf die ausgabe oder liege ich da falsch?
Keine bloede Frage. :) Aber der obige Code ist tatsaechlich nur fuer die Ausgabe, und zwar fuer die Ausgabe auf der Startseite (Termine liegen also in einer anderen Kategorie!). Entweder nimmst Du die beiden Module fuer Terminein- und -ausgabe aus dem Download-Bereich, oder ich schicke Dir (siehe Antwort auf Deine PM) mein Modul, welches wie weiter oben im Thread beschrieben geaendert wurde (alternierende Hintergrundfarbe bei den unterschiedlichen Terminen).

Verfasst: Di 1. Jun 2004, 16:03
von oma wetterwax
hallo christa,

vielen dank für dein modul, funktioniert super - auch mit vorschaubild.

allerdings merke ich gerade, dass die bildauswahl ja wohl in die termineingabe gehört und nicht in dein ausgabemodul - tststs

also fröhlich weitergebastelt ...

gruß
oma

Verfasst: Mi 9. Jun 2004, 10:38
von prefix
ich hab jetzt dieses modul implementiert.

nur noch eine frage: wie kann ich im backend termine eingeben, bitte???

ich suche ein ganz einfaches modul: im backend eingeben - im frontend sollen die termine ausgegeben werden :(

Verfasst: Mi 9. Jun 2004, 11:53
von Halchteranerin
Hallo prefix,

mit diesem Modul gar nicht. Du brauchst ein weiteres Modul fuer die Termineingabe. Das findest Du auf der Contenido-Seite bei den Modulen, Autor ist agon.

Gruss
Christa