Ankündigung

Einklappen
Keine Ankündigung bisher.

Eigene Widgets und Base-Widgets einbinden

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

    Eigene Widgets und Base-Widgets einbinden

    Hallo,

    Im Standard wird ja bereits eine visu.js aus dem eigenen pages Verzeichnis geladen.

    Ich habe mir ein paar Basic Widgets und normale Widgets gebaut bzw. auf meine Bedürfnisse angepasst.

    Diese habe ich in meinem pages Verzeichnis abgelegt und dazu folgenden Code in pages/base/root.html eingefügt:
    PHP-Code:
        {% if isfile('pages/'~config_pages~'/visu.html') %}
               {% 
    import "visu.html" as visu %}
           {% endif %}
        {% if 
    isfile('pages/'~config_pages~'/visubasic.html') %}
               {% 
    import "visubasic.html" as visubasic %}
           {% endif %} 
    Gibt es eine bessere Möglichkeit, dass zu machen? Aktuell muss ich bei jedem Update meine Änderungen an der root.html nachziehen.

    lg,
    Andreas

    #2
    Mach doch einfach das

    Code:
    {% import "visubasic.html" as visubasic %}
    in den Pages wo du es brauchst. Den check davor kannst du dir eigentlich sparen, denn du solltest ja wissen, ob die Widgets da sind oder nicht.

    Irgendwo musst du die einzelnen Widgets angeben. JS wird ja auch nur die visu.js nachgeladen. Wenn du noch weitere JS Dateien hast, musst du die ja auch jedesmal händisch hinzufügen.

    Alternativ könnte man vielleicht mit Unterverzeichnissen arbeiten. Alle JS Dateien eines Projektunterverzeichnisses "js" werden als Javascripte inkludiert (analog mit "css" und "widgets").

    EDIT: achso, du machst die Änderungen im root.html außerhalb deines Projektverzeichnisses? Und hast deshalb die checks mit isfile drin? du kannst dir auch eine base.html oder so ähnlich in deinem Projektverzeichnis machen, das von der root.html ableitet und verwendest dann diese als deine root für deine Seiten.
    Mit freundlichen Grüßen
    Niko Will

    Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
    - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

    Kommentar


      #3
      Als Beispiel für die Verwendung von Unterverzeichnissen kannst Du evtl. diesen Codeschnipsel verwenden.

      Code:
      <!-- custom: dynamically add custom js libraries from "js" subdir -->
      	{% for item in dir('pages/'~config_pages~'/js') %}
      	<script type="text/javascript" src="{{ item.path }}"></script>
      	{% endfor %}

      Ich habe in dem Ordner wo meine Seiten liegen einen Ordner "js", den Schnipsel hab ich in der "root.html" eingebaut, und so wird jede Datei (sollten Javascripte sein ;-) ) dynamisch als Script-Tag eingebunden, ohne das ich mich drum kümmern muss wie die Datei heißt. (z.B. bei Versions-Updates von jquery-Plugins)


      Analog würde das natürlich auch für Stylesheets z.B. in nem Ordner "css" funktionieren.

      Kommentar

      Lädt...
      X