Template-Dateien aus eigenem Style werden bei Plugins nicht geladen

  • Hallo liebe Community,


    ich arbeite derzeit wieder an einem Custom Design für unsere Gilde und habe dabei auch die "index.tpl" im Template-root-Verzeichnis des Styles bearbeitet. Im demselben Verzeichnis befinden sich auch die "navi.html" und "footer.html" (à la Snippets, um die Code-Übersicht zu behalten).


    Nun importiere ich diese wie gehabt mit:

    Code
    ...
    <!-- INCLUDE navi.html -->
    ...
    <!-- INCLUDE footer.html -->
    ...

    Generell funktioniert das ganz gut: auf der Startseite, Artikelseiten, Kalender, Adminbereich, etc.

    Nur die Plugins machen mir einen Strich durch die Rechnung. Gehe ich auf die Frontend-Seite oder auch Backend(Settings)-Seite des Plugins, so erhalte ich folgende (templates_error2) Meldung:


    Auf Deutsch: "Die Template-Datei '%s' existiert nicht oder ist leer. Mögliche Ursachen: Template-Datei nicht mehr vorhanden. Template-Ordner nicht mehr vorhanden oder falsch geschrieben."


    Sowie ich das sehe, sucht das Plugin die zu importierende "navi.html" bei sich selbst und nicht im vorgegebenen Template-Verzeichnis vom Style "upsmireyu". Plugins lassen sich in PHP ja erkennen, mit z. B.:

    Code
    if (defined("PLUGIN")) ...

    aber den "template_path" manuell zu ändern bringt nichts, da dann die "admin/form.html" nicht mehr gefunden wird.


    Wie kann man das lösen (ohne den ganzen Inhalt der "navi.html" (und sonstigen Snippets) in die "index.tpl" zu kopieren)?


    Danke für Eure Zeit.

    LG Mireyu

    It's not a bug, it's a feature!

  • Ich denke nicht, dass es hierfür eine einfache Lösung gibt.

    Viele Grüße,
    GodMod


    Bitte sendet mir keine unaufgeforderten Support-PNs. | Please don't send me unwanted support-PMs.
    Du willst dich bei mir bedanken: | You want to thank me:

    amazon_wishlist.jpg paypal_logo.jpg

  • Ich glaube nun, nach einigem hin und her, eine relativ einfache Lösung gefunden zu haben. Den Hinweis dazu gab mir die Methode fullpath_filename(...) in der /core/template.class.php :


    Man kann beim Include auch absolute Pfade verwenden.

    Wenn man also z. B. <!-- INCLUDE ./templates/upsmireyu/navi.html --> verwendet und dies auch auf alle verschachtelten Snippets anwendet, so werden die eigenen Template-Dateien richtig eingebunden.


    Eine komplexere Variante wäre die Methode fullpath_filename(...) selbst zu überschreiben.


    Was mich wundert ist, dass gleich daraufhin die nächste Methode resolve_templatefile(...) eigentlich tut, was für die fullpath_filename(...) sinnvoll/nützlich wäre, diese Methode aber nirgendwo verwendet/aufgerufen wird. Wurde das evtl. so angedacht und in der Entwicklung vergessen?


    ###

    Was wäre denn die alternative (komplexe) Lösung? ;)


    LG Mireyu

    It's not a bug, it's a feature!

  • Die Template Klasse wurde früher von phpbb übernommen, und nicht selber von uns geschrieben bzw. war vor meiner Zeit, deswegen kann ich wenig dazu sagen. Hab nur versucht die entsprechend zu erweitern und zu warten.


    Die komplexe Lösung ist: https://github.com/EQdkpPlus/c…b672cdd6c4a24e67d8f20769c


    Einfach kucken ob der Include im Ordner des Templates liegt, falls ich ihn im Plugin Ordner nicht finde.

    Viele Grüße,
    GodMod


    Bitte sendet mir keine unaufgeforderten Support-PNs. | Please don't send me unwanted support-PMs.
    Du willst dich bei mir bedanken: | You want to thank me:

    amazon_wishlist.jpg paypal_logo.jpg

  • Danke für den Hinweis.


    Bin dafür sehr dankbar. Bin gerade auf Probleme mit der "einfachen" Lösung gestoßen. Scheinbar funktioniert das überall, nur nicht im "admin"-Bereich >.<

    It's not a bug, it's a feature!

  • Wird die Änderung (vom Git-Repo) dann in die nächste EQDKP-Plus Version übernommen?

    It's not a bug, it's a feature!

  • Ja, deswegen ist sie ja im Git.

    Viele Grüße,
    GodMod


    Bitte sendet mir keine unaufgeforderten Support-PNs. | Please don't send me unwanted support-PMs.
    Du willst dich bei mir bedanken: | You want to thank me:

    amazon_wishlist.jpg paypal_logo.jpg

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!