Template Listener per Code

  • App
    WoltLab Suite Core

    hey zusammen,


    ich würde es sehr praktisch finden, wenn man auch per Code template events hinzufügen kann, die für den aktuellen Aufruf gelten.

    Ich habe z.B. Kategorieformular im Backend was von AbstractCategoryAddForm ableitet und somit auch das categoryAdd Template nutzt. Jetzt gibt es in dem Template diverse events durch die ich meine eigenen Felder hinzufügen kann, allerdings muss ich das über Template Events machen, die per xml installiert werden, was den ganzen Prozess dezentralisiert. Da im TemplateListenerCodeCacheBuilder noch einiges an Code um den eigentlichen Listener gepackt wird, müsste das evtl. ausgelagert werden, aber ich würde es um einiges eleganter für solche Situationen finden. Zumal diese dann auch dynamischer angepasst werden können, wenn man den PHP Code dazu ändert.

  • Mal blöd gefragt: Was genau hast du vor? Was stört dich daran TemplateListener via PIP zu installieren (anders kriegst du das denke ich eh nicht in den Store)?

    Ich wüsste nicht, wo genau irgendwelcher unnötiger Code um meinen Templatelistener-Code gepackt werden würde. Das HTML ist exakt das, was im "Eltern"template steht plus das, das ich über den Listener einbinde. Nicht mehr und nicht weniger.

  • Was ich vor hab steht so eigentlich im OP. Ich habe eine CategoryAddForm welches von AbstractCategoryAddForm ableitet. Also habe ich bereits eine eigene PHP Klasse in der ich programmieren kann was ich möchte. Um jetzt aber zusätzliche Felder im Formular anzeigen zu können muss ich per PIP template Listener hinzufügen. Ich würde es schöner finden wenn ich direkt in meinem CategoryAddForm sagen kann das bei dem und dem template listener dieses und jenes Template geladen werden soll.


    Wieso unnötiger Code? Schau mal in den TemplateListenerCodeCacheBuilder, da wird das Template noch mit {if} Blöcken umschlossen, wenn man permissions oder options für den listener angegeben hat, unnötig ist das nicht ;)


    P.S. ich hab nicht vor etwas in den Store hochzuladen ;)

    • Official Post

    Mir ist leider nicht klar geworden, weshalb du die Template-Listener via PHP anlegen musst. Oder um die Frage anders zu formulieren: Warum genau ist das Anlegen der TL via XML-PIP für dich keine gangbare Möglichkeit?

    Alexander Ebert
    Senior Developer WoltLab® GmbH

  • Mir ist leider nicht klar geworden, weshalb du die Template-Listener via PHP anlegen musst. Oder um die Frage anders zu formulieren: Warum genau ist das Anlegen der TL via XML-PIP für dich keine gangbare Möglichkeit?

    Es ist eine gangbare Möglichkeit, nur ich halte es für übersichtlicher wenn man schon "Gewalt" über den PHP Code hat die dafür benötigten Template Listener auch mit in der Klasse anzugeben genau wie assignVariables(). Wenn man jetzt das CategoryAddForm wieder entfernt oder man das Formular umbauen möchte, muss man alles über das PIP lösen, so könnte man einfach den eventName des template Listeners ändern oder weitere hinzufügen. Gerade wo es so eine enge Beziehung zwischen eigenem PHP-Code und template gibt halte ich das für übersichtlicher.


    Aber ich merk schon, dass ich damit ziemlich alleine dastehe :S

  • Hmm, also wenn er eh eine eigene Form Klasse hat und das basis Template für CategoryAdd nicht ausreicht würde ich weder nen TL anlegen noch mich irgendwie mir rumschlagen.

    Bei TLs müsste er dann ja wieder prüfen ob er genau das form hat was er eigentlich bearbeiten will usw.

    Viel einfacher wäre es doch stumpf ein eigenes Template mitzuliefern das auf dem cateoryAdd aufbaut und die nötigen Änderungen mit bringt.

Participate now!

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