Ankündigung

Einklappen
Keine Ankündigung bisher.

Kalender und calendar.waste

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Kalender und calendar.waste

    Ich verstehe nicht, wie ich den Müllkalender einbinden soll. Das Problem ist die Kalenderauswahl. Ich stelle die Kalender in meiner Konfig ein. Aus der Erfahrung ist es am Besten realisierbar mit den iCal-Kalendern von Google, besser als die API. Ich kopiere die Kalender mit Leerzeichen getrennt in das Feld, aber was gebe ich als Kalender (mit Fragezeichen markiert an) bei dem Müllkalender an?

    Code:
    {{ calendar.waste('', 'Müll', ????, 5) }}
    Dann mal eine Anmerkungen zu den Kalendern im Allgemeinen. Wenn ich meine seite ohne SSL aufrufe, also http lassen sich die Kalender nicht verwenden, das wird sich sicherlich aus technischen Sicherheitsgründen auch nicht ändern lassen oder?

    Und dann ist die Eingabe der Kalender in der Konfig sehr unübersichtlich. Besser wäre, wenn man pro Zeile einen Kalender festlegen könnte und die nicht alle in ein Feld kopiert und dazu auch noch eine Bezeichnung angeben könnte, damit man die Kalendereinstellungen auch nachvollziehen kann. Ich verwende regelmäßig min. 10 Kalender und da wird es dann echt unübersichtlich.

    #2
    Auf der Konfig-Seite gibt es eine Zeile für die Kalender-URLs. In jeder URL können wiederum mehrere Kalender stecken, die unterschiedliche Namen haben. Wenn Du die Namens-Zeile in der Konfig leer lässt, dann werden alle Kalender aus den URLs geladen. Oder Du gibst die Namen derjenigen Kalender an, die als Auswahl geladen werden sollen.

    Jetzt hast Du möglicherweise aus 5 URLs 8 Kalender mit unterschiedlichen Namen geladen. Dies ergibt einen Datensatz, der den Kalender-Widgets zur Verfügung steht. Damit die Widgets jeweils die gewüschte Information anzeigen, musst Du jedem Kalender-Widget noch die Namen der Kalender mitteilen, die es anzeigen soll. Ohne Angabe nimmt das Widget die in "count" definierte Anzahl der am nächsten in der Zukunft liegenden Einträge aller in der Konfig ausgewählten Kalender. Beim Müllkalender macht das wenig Sinn. Also trägst Du dort den Namen ein, den der Müllkalender innerhalb der entsprechenden Kalender-URL hat.

    Gruß
    Wolfram

    Kommentar


      #3
      Hmm .. bei Google kann ich, soweit ich das richtig sehe, nur für jeden Kalender eine URL zurückgeben, nicht jedoch für alle Kalender auf einmal. Aber ich bleibe dennoch mal dabei. Das sähe dann in der Konfig so aus? In dem Beispiel hier enthält Kalender-URL1 genau 2 Kalender und Kalender-URL2 nur einen Kalender:

      Code:
      URL(s):  https://calendar.google.com/calendar/ical/KalenderURL1 https://calendar.google.com/calendar/ical/KalenderURL2
      Kalender: Kalender1a, Kalender1b, Kalender2
      Und bei calendar.waste steht dann beispielsweise drin "Kalender2".

      Ist das so richtig?

      Kommentar


        #4
        Das ist richtig, nur darf bei den Kalendern kein Leerzeichen hinter dem Komma sein.

        Wenn in jeder URL nur ein Kalender enthalten ist, dann kannst Du die Zeile mit den Kalendernamen leer lassen. Du schreibst ja keine URL in die Liste, die nicht gelesen werden soll.

        Den Service kannst Du debuggen mit
        Code:
        <DeineIP>/smartVISU/lib/calendar/service/iCal_(e.g._Google).php?debug=1
        Zuletzt geändert von wvhn; 19.02.2022, 08:19.

        Kommentar


          #5
          Ja der Debugger zeigt mir den aktuellsten Eintrag des Kalenders mit allen Infos dazu ein. Dennoch funktioniert der Müllkalender nicht:

          Code:
          { calendar.waste('', 'Müll', Haus, 5) }}
          ... zeigt nichts an ... die Daten zum Müll sind im Kalender "Haus" gespeichert. Wo befindet sich überhaupt die Zuordnung zu den einzelnen Einträgen im Kalender? Woher soll das Widget wissen, dass der Eintrag "Müllerstraße - Gelber Sack" beispielsweise die gelbe Tonne meint?

          Kommentar


            #6
            Es fehlen die Anführungszeichen bei 'Haus'. Und dann müssen die Ereignisse in der ./lang/de.ini in der Sektion [calendar_event_format] definiert sein. Also für "Müllerstraße - Gelber Sack" muss das Symbol und die Farbe definiert werden. Oder Du änderst die Kalendereinträge so, dass Ereignisse verwendet werden, die in der de.ini vorhanden sind.

            Du kannst auch eine „cannon.ini“ in ./dropins/lang anlegen, damit Deine Änderungen auch bei Updates erhalten bleiben. Anleitung dazu steht im ./lang Ordner.
            Zuletzt geändert von wvhn; 19.02.2022, 10:43.

            Kommentar


              #7
              Zitat von wvhn Beitrag anzeigen
              Du kannst auch eine „canon.ini“ in ./dropins/lang anlegen, damit Deine Änderungen auch bei Updates erhalten bleiben. Anleitung dazu steht im ./lang Ordner.
              Das habe ich gemacht. Guter Tipp! Damit zeigt der jetzt auch in der Kalenderliste entsprechende Symbole für die Müllart an. Allerdings geht der calendar.waste immer noch nichts. Er zeigt nichts an, außer den Titel:

              Code:
              { calendar.waste('', 'Müll', 'Haus') }}
              Wenn ich "Haus" rausnehme, zeigte der lauter farbige Balken mit Datum an, aber keine Symbole.

              Kommentar


                #8
                Der calendar.list sucht nach bekannten Teilstrings in den Einträgen. Wenn im Kalender z.B. "Essen bei Müllers" steht, zeigt er den Mülleimer an, weil er den String "Müll" gefunden hat.
                Beim calendar.waste müssen aus diesem Grund die Einträge in der ./lang/xx.ini genau mit den Kalendereinträgen übereinstimmen.

                Kommentar


                  #9
                  Versuchs mal mit 'ue' statt 'ü'. Ansonsten hier eine funktionierende config aus meiner Bastelecke:

                  config.ini:
                  Code:
                  calendar_service = "CalDav"
                  calendar_username = "ein_user"
                  calendar_password = "geheim"
                  calendar_url = "http://nas-ip/nextcloud/remote.php/dav/calendars/ein_user/"
                  calendar_name = "k1,muell"

                  ein_user muss natürlich ein gültiger Benutzername sein.


                  Aufruf in der Page:
                  HTML-Code:
                  {% block two %}
                  
                    <div style="width:66%;margin-left:17%;margin-top: 50px;">
                      {% import "calendar.html" as calendar %}
                      <h1>Nächste Termine</h1>
                      <br/>
                      {{ calendar.list('clist', '', '6', 'yellow', '', 'K1') }}
                      <br/>
                  
                      <h1>Verpasste Anrufe</h1>
                      <br/>
                      {% import "phone.html" as phone %}
                      {{ phone.missedlist('phonelist', '', 4) }}
                      <br/>
                  
                      <h1>Müllabfuhr</h1>
                      <br/>
                      {{ calendar.waste('waste', '', 'muell', 5) }}
                    </div>
                  
                  {% endblock %}

                  Ergebnis (rechts):

                  cannon.png


                  Was bei mehrspaltiger Anzeige unschön ist (sowohl beim Kalender als auch in der Telefonliste - ist vielleicht was für Wolfram @wvhn): Der Umbruch mitten in der "Zelle", wenn eine ungerade Anzahl von Elementen geliefert wird.

                  hth,
                  /tom
                  Zuletzt geändert von Tom Bombadil; 19.02.2022, 11:34.

                  Kommentar


                    #10
                    Zitat von wvhn Beitrag anzeigen
                    Der calendar.list sucht nach bekannten Teilstrings in den Einträgen. Wenn im Kalender z.B. "Essen bei Müllers" steht, zeigt er den Mülleimer an, weil er den String "Müll" gefunden hat.
                    Beim calendar.waste müssen aus diesem Grund die Einträge in der ./lang/xx.ini genau mit den Kalendereinträgen übereinstimmen.
                    Dann gehe ich eher davon aus, dass er den Kalender "Haus" nicht als Name identifizieren kann, denn in der normalen Kalenderliste zeigt er es ja richtig an. Kann man denn mit dem Debug-Modus irgendwie das ganze Array anzeigen lassen und nicht nur einen Eintrag?
                    Zuletzt geändert von Cannon; 19.02.2022, 11:40.

                    Kommentar


                      #11
                      Zitat von Tom Bombadil Beitrag anzeigen
                      Aufruf in der Page
                      Prüfe mal die </br> in deiner html, möglicherweise liegt da das Problem.

                      Kommentar


                        #12
                        Der Debug-Modus zeigt Dir alle Zwischenschritte. Du musst dort also sehen können, wie der Kalender heißt.

                        Kommentar


                          #13
                          Zitat von wvhn Beitrag anzeigen
                          er Debug-Modus zeigt Dir alle Zwischenschritte. Du musst dort also sehen können, wie der Kalender heißt.
                          Es wird mir im Debug-Modus nur der erste EIntrag aus einem Kalender angezeigt, also quasi der aktuelleste Termin, mehr auch nicht.

                          Ich habe das Problem aber nun gelöst. 2 Dinge waren notwendig:

                          1. Im Gegensatz zur Kalenderliste, erwartet der Müllkalender eine exakte Angabe des Eintrags im Kalendernamen. In der Kalenderliste werden die Sachen auch ohne dem angezeigt.

                          2. Es war notwendig in der Konfiguration Namen für die Kalender (in Reihenfolge der Kalender) einzugeben. Ohne die geht das nicht und man kann mit dem Müllkalender nicht auf die Kalender zugreifen. Der Müllkalender erwartet einen Kalendernamen und funktioniert sonst nicht, sprich er zeigt nichts dan.

                          Kommentar


                            #14
                            Zitat von Cannon Beitrag anzeigen
                            Der Müllkalender erwartet einen Kalendernamen und funktioniert sonst nicht, sprich er zeigt nichts dan.
                            Das war schon immer so - ich hab das damals stand-alone aus den Standardkalendern abgeleitet ('quick & dirty' sozusagen), und Stefan smai hat das dann später in die sV übernommen.
                            /tom

                            Kommentar


                              #15
                              Danke, gut zu wissen, in der Doku ging das nicht so recht heraus hervor und ich dachte, der sucht sich das aus allen kalendern.

                              name of calendars to show, multiples in array form (optional, default: as defined in configuration)

                              Kommentar

                              Lädt...
                              X