Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Templates in Themes #225

Open
KiwiKilian opened this issue May 2, 2021 · 1 comment
Open

Templates in Themes #225

KiwiKilian opened this issue May 2, 2021 · 1 comment
Labels
Type: Enhancement New feature or request

Comments

@KiwiKilian
Copy link

KiwiKilian commented May 2, 2021

Wir verwenden auf unserer Instanz ein eigenes Theme. Da die Templates bspw. keine Conditionals erlauben (#172), habe ich das Plugin Rendering "deaktiviert" in dem ich die Templates einfach leer gelassen habe. Alles weitere läuft über Filter und Zugriff auf die internen Funktionen des Plugins. Darin liegt das Problem, dass bei manchen Updates dadurch natürlich auch in meinem Code Anpassungen notwendig sind.

Ich weiß, es ist vermutlich die absolute Ausnahme der Nutzung, wünschenswert wäre aber eine "stabile" Schnittstelle zum Plugin über die man die Daten abrufen kann. Wie hier eine gute Lösung aussieht bin ich mir aber selber nicht ganz sicher. Vielleicht bin ich aber auch vollkommen auf dem Holzweg wie ich das bisher löse, vielleicht gibt's dafür bereits ein bessere Lösung? Dann würde hierfür auch einfach eine Doku reichen.

Ein anderer spannender Ansätze könnte die Ermöglichung zum Überschreiben von Views sein mit Theme Files. Vielleicht wäre auch sowas denkbar?
https://theeventscalendar.com/knowledgebase/k/customizing-template-files-2/

TLDR; Ich würde Templates gerne in PHP schreiben können und mit meinem Theme bundlen.

@abrain abrain added the Type: Enhancement New feature or request label May 3, 2021
@abrain
Copy link
Owner

abrain commented May 3, 2021

Ich sehe auch intern im Plugin das Bedürfnis, mehr über die Templates bzw. den Formatter abzufeiern, weil dort das Abfragen und Anzeigen von Inhalten bereits gelöst ist. Es gibt bisher tatsächlich keine stablie Schnittstelle von außerhalb des Plugins, weil sowieso immer alles in Bewegung ist. Da wollte ich nichts davon unnötig in Stein meißeln, da wie du schon sagst, die Nachfrage gering war.

Für die Templates allerdings wäre es möglich, eine globale Funktion (z. B. einsatzverwaltung_render_template()) bereitzustellen. Diese wäre aktuell nur ein Alias für Formatter::formatIncidentData(), bliebe dann aber auch nach einem Rewrite des Formatters – der im Zuge der Conditionals sicher nötg wird – gleich. Damit entfällt der direkte Zugriff auf die interne Klasse.

Ließe sich alles mit dieser globalen Funktion + Conditionals in Templates lösen oder müsstest du noch andere interne Klassen ansprechen?

P.S.: Als Workaround müsste es derzeit schon funktionieren, mit dem Filter pre_option_{$option} (konkret pre_option_einsatzverwaltung_reporttemplate) ein eigenes Template zu injizieren, und dann über den Aufruf von the_content() das Plugin den Rest erledigen zu lassen. Damit könnte das Theme das Template diktieren, allerdings eben nur dieses eine pro Seite.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants