Ferengi-Masters Terminverwaltung V2

Update - Neue aktuelle Version mit WebFront/iFront Ausgabe;)

V2.31

[ul]
[li]Anzeige der Termine im WebFront/iFront etc.[/li][li]Bugfix - ein aufeinanderfolgender wöchentlicher Termin wurde nur 1x angezeigt[/li][li]diverse kleinere Bugifxes[/li][li]Termine werden nun in einem Memofeld angezeigt und sortiert[/li][li]wegfall von diversen Variablen[/li][/ul]

Download siehe erster Beitrag

Hallo Thomas,

danke für das Update…

… hat hervorragend einfach funktioniert.:slight_smile:

Hast Du schon eine Idee für wiederkehrende Termine im 14-tägigen, monatlichen Rythmus :rolleyes:

Hallo Werner,

bin schon am tüfteln, im Dezember sind die Nächte lang.:cool:

Hallo Thomas,

da hat sich was in der Feiertagsverwaltung verbogen.

Die Terminverwaltung meint das am 26.12. der 1. Weihnachtsfeiertag ist.

Ist da was an mir vorbei gegangen :smiley:

Ups, wollte keine neue Weihnachtsfeiertage in Deutschland einführen.:smiley:
Fix auf die Schnelle, sollte aber gehen, einfach die entsprechenden Codezeilen tauschen:


             //für die Bereinigung Designer 
             if($hrs == 23 and $min == 59 or $hrs == 00 and $min == 01 or $terminmodus !=0)
             {
                    //Formatierung
                   $term_stunde = sprintf("%02s", $term_stunde);
               $term_minute = sprintf("%02s", $term_minute);
                   $term_tag     = sprintf("%02s", $term_tag);
               $term_monat  = sprintf("%02s", $term_monat);

                if($erg == 0 or $erg == -1)
                {
                   if($wo_heu != 1 and $wo_mor != 1)
                   {
                      $term_text = $term_tag.".";
                      $term_text.= $term_monat.". ";
                      }
                   else //wöchentliche Termine heute und morgen
                   {
                            if($wo_heu == 1 and $wo_mor == 1) //wöchentlicher Termin heute und morgen
                            {
                                //heute
                                $term_text = date("d.");
                          $term_text.= date("m. ");
                                $term_text.= $term_stunde.".";
                         $term_text.= $term_minute." Uhr ";
                                $term_text.= $term_inhalt;
                                $wf[] = $term_text;
                                sort($wf);
                                //morgen
                                $term_wf = implode("
", $wf);
                          $term_text = date("d.m. ", strtotime("+1 day"));
                                $term_text.= $term_stunde.".";
                         $term_text.= $term_minute." Uhr ";
                           $term_text.= $term_inhalt;
                                $wf[] = $term_text;
                                sort($wf);
                                $term_wf = implode("
", $wf);
                                SetValueString($id_termine, $term_wf);
                            }
                            elseif($wo_heu == 1 and $wo_mor != 1) //wöchentlicher Termin heute
                            {
                                $term_text = date("d.");
                          $term_text.= date("m. ");
                              $term_text.= $term_stunde.".";
                         $term_text.= $term_minute." Uhr ";
                          $term_text.= $term_inhalt;
                             $wf[] = $term_text;
                                sort($wf);
                                $term_wf = implode("
", $wf);
                                SetValueString($id_termine, $term_wf);
                            }
                            elseif($wo_heu != 1 and $wo_mor == 1) //wöchentlicher Termin morgen
                            {
                               $term_text = date("d.m. ", strtotime("+1 day"));
                                $term_text.= $term_stunde.".";
                         $term_text.= $term_minute." Uhr ";
                           $term_text.= $term_inhalt;
                                $wf[] = $term_text;
                                sort($wf);
                                $term_wf = implode("
", $wf);
                                SetValueString($id_termine, $term_wf);
                            }
                   }

                        //Formatierung
                  if(!$term_jaerlich)   $term_text.= $term_stunde.".";
                   if(!$term_jaerlich)   $term_text.= $term_minute." Uhr ";

                        if($wo_heu != 1 and $wo_mor != 1)
                        {
                       $term_text.= $term_inhalt;
                            $wf[] = $term_text;

                            //WebFront & Dashboard Ausgabe
                            sort($wf);
                            $term_wf = implode("
", $wf);
                            SetValueString($id_termine, $term_wf);
                        }
                        
                   $wo_heu = 0; // falls wiederkehrender Termin, zurücksetzen
                     $wo_mor = 0; // falls wiederkehrender Termin, zurücksetzen
                }
             }


und


        if(!isset($year) || empty($year)) $year = date('Y');
        $tag = new Feiertag();
        $days = $tag->getHolidays($year);

       foreach($days as $value)
       {
         list($key, $value) = each($days);
            //Timestamp von heute
          $heute      = mktime (0,0,0,date("m"),date("d"),date("y"));
            //schauen ob Termin auf heute($erg = 0) oder morgen fällt ($erg = -1)
          $diff       = $heute-$value;
          $erg        = $diff/((60*60)*24);

          //Feiertag gefunden => hier speichern
          if ($erg == 0 or $erg == -1)
          {
             //nur für den Designer
             if ($hrs == 23 and $min == 59 or $hrs == 00 and $min == 01 or $terminmodus !=0)
             {
                    if($erg == -1)
                    {
                        $term_text = date("d.m. ", strtotime("+1 day"));
                    $term_text.= $key;
                        $wf[] = $term_text;

                        //WebFront & Dashboard Ausgabe
                         sort($wf);
                        $term_wf = implode("
", $wf);
                        SetValueString($id_termine, $term_wf);
                    }
                    else
                    {
                    $term_text = date("d.m. ");
                    $term_text.= $key;
                        $wf[] = $term_text;

                        //WebFront & Dashboard Ausgabe
                         sort($wf);
                        $term_wf = implode("
", $wf);
                        SetValueString($id_termine, $term_wf);

                }
             }
          }


Sorry für die schlechte Formatierung, dazu hatte ich leider keine Zeit mehr.

Der 1.1.2010 wurde nicht als Feitertag erkannt, hier der Bugfix:
(Einfach Zeile enfügen/ersetzen)


function getHolidays($year)
{
   $time = $this->getEasterSundayTime($year);
   $days[""]		       = 0;
   $days["Neujahr"]		= mktime(0, 0, 0, 1, 1, $year);    

Hallo Thomas,

erstmal ein großes Lob für dein Projekt. Ich hatte dein Terminplaner ursprünglich in der IPSV1 installiert und fand es genial. Da aber die Eingabe der Daten ein wenig mühsam ist, konnte ich meine Frau nicht überzeugen es zu benutzen. Jetzt versuche ich es erneut.

Läuft deine Terminverwaltung auf IPS2.2?
Kann man die Termine z.b. von Outlook importieren?

Gruß
Christian

Ach ja, Outlook-Import…

…da wollte ich mich auch schon lange mal ranmachen.:cool:

Läuft deine Terminverwaltung auf IPS2.2?

Ja das läuft.

Kann man die Termine z.b. von Outlook importieren?

Nein, vieleicht irgend wann mal.:wink:

Das sollte doch für einzelne Termine mit einem ICS (iCalendar) relativ leicht umsetzbar sein.

Installation läuft problemlos, allerdings fehlt die Termine.txt beim Download oder wo finde ich die Struktur der Datei wie ich die Termine ablegen muss ?

Weiterhin gibt es im Forum Screenshoots von TV-Programmlisten. Da diese ja als Text-EPG teilweise auch verfügbar sein, würde mich interessieren, ob hier jemand eine Lösung hat, evtl. sogar auf Basis der Terminverwaltung

Gruss

Thomas :loveips:

Ich zeige das TV-Programm über einen Atom-Feedan. Dazu hat obicom was feines gebastelt :D.

Hallo Thomas,

die termine.txt wird beim ersten execute der Terminverwaltung im IPS Ordner media automatisch angelegt. Dort sollte sie sich befinden wenn bei dir am Anfang der Terminverwaltung dieser Code nicht verändert wurde:


//Ablageort für termine.txt
$filename = IPS_GetKernelDir()."media\	ermine.txt";

Hallo Werner,

wie hast Du das realisiert ?
Könntest Du da mal was dazu posten.

Grüße Ralf :loveips:

Hallo Ralf,

mittlerweile gibt es mehrere Lösungsansätze.

[ol]
[li]Den ursprünglichen mit den benutzerdefinierten Seiten in Webfront. Hat den Vorteil das die Seite übersichtlicher ist da normale HTML-Formular-Felder benutzt werden, Nachteil ist das man eben eine benutzerdefinierte Seite hat die z.B. nicht in Retro und iFront geht.[/li][li]Mein letzter Versuch war die von TV-Skript benutzten Variablen mit Profile zu belegen sowie die Möglichkeit Stringvariablen in Webfront zu beschreiben (V2.2ß). Vorteil. Einfach einfacher :rolleyes:, Webfront-konform, Nachteil. Die Seite wird unübersichtlich das für jede Variable eine eigene Zeile entsteht, da wird der Platz ziemlich knapp.[/li][/ol]Bei Bedarf bastle ich den Interessierten ein Import- und Exportskript von und nach TV<->Exchange. Denke aber der Bedarf wird eher gering sein.

Hallo ,

@Ferengi : besten Dank… wer lesen kann ist klar im Vorteil, jetzt muss ich
noch ans verstehen des Aufbaus gehen, aber den hast du ja gut
beschrieben .

@Ralf : ja die Atom-Feeds von Obicom ( danke dafür ) nutze ich eh schon.
Hast du nen Tip für ne Adresse, sonst probier ich einfach mal 1-2 aus.

danke

Ich nutze TVMovie.de - 20.15 Uhr, aktuell noch ohne Bilder.

Hallo Werner,

da ich eh die 2.2b noch nicht benütze wird die erste Variante schon passen aber ich weiß eh nicht wie ich das realisieren kann, dafür fehlt mir die Kenntnis.
Bin schon froh das ich mit PHP einigermaßen zurecht komme.

Grüße Ralf

Hallo Ralf,

na dann will ich mal versuchen es einigermassen verständlich zu erklären :rolleyes:

Voraussetzung ist das Ferengis-Terminverwaltungsskript in der letzten und durch die beiden Patches ergänzt installiert ist.

Ich zeige hier einmal den Weg auf um erfolgreich Termine über das Webfront eingeben zu können.[ol]
[li]Die beiliegende „termine.php“ in Verzeichnis …/webfront/user/" kopieren[/li][li]Die ID in termine.php entsprechend deines Terminverwaltungsskriptes anpassen. Grün markiert[/li]

// <========= Hier die ID des Terminskriptes eintragen.
define("Terminverwaltung",   34865); 

[li]An einem Platz deiner Wahl eine Dummy-Instanz anlegen[/li][li]Unter dieser Dummy-Instanz einen neues Objekt vom Typ „Link“ mit dem Verweis auf die Variable „termine“ anlegen (Jeweils lila markiert)[/li][li]In der Kategorie „.terminverwaltung“ die automatisch von Ferengis Skript angelegt der Variable „termine“ das Profil „~Textbox“ geben.[/li]Nun sollte im Webfront unter deiner Dummy-Instanz die Textbox zusehen sein, wenn auch wahrscheinlich noch leer.

[li]Als nächstes gehst Du in den Webfront-Konfigurator und legst ein neues Element mit dem Typ „externe Seite“ an. Pfad sollte die termine.php im User-Verzeichnis zeigen.[/li][li]Ist diese Element angelegt erzeugst Du unter der vorhin angelegt Dummy-Instanz ein Skript mit folgendem Inhalt.[/li]

WFC_SwitchPage(43269 /*[WebFront Configurator]*/, 'item6632');

Die ID43269 muss durch die ID deines Webfront-Konfigurator und das item6632 muss durch den Wert den Du in der Webfront-Konfiguration erhalten hast ersetzt werden.
[/ol]Wenn ich jetzt nichts übersehen habe sollte es bei Dir so aussehen wie in der Grafik „TV-Übersicht.png“.

Solltest Du die o.g. Schritte sauber hinbekommen haben so machen wir als nächstes das Termin löschen / ändern.

Wie gesagt ist das ziemlich rudimentär aber es funktioniert. Da ich mittlerweile aus IPS auf meinen Exchangeserver per SOAP zugreife werde ich dieses hier nicht mehr weiter verfolgen unterstütze aber gerne wenn Fragen aufkommen sollten.

Nun viel Spaß damit.:smiley:

TV_WF_Konfigurator.png

TV_WF_Konfigurator2.png

Ich möchte hier nochmal klar zum Ausdruck bringen das die Terminverwaltung gerade ohne Outlook / Exchange oder diverse andere externe Quellen auskommt und als eigenständige Lösung zu betrachten ist.

Es ist natürlich jedem selbst überlassen sich eigene Lösungen zu basteln, ist ja auch logisch das jeder seine diversen Vorstellungen von einer TV hat.:wink: