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

unterschiedliches Verhalten für Templateauswahl #1438

Closed
frontendschlampe opened this issue Mar 20, 2018 · 35 comments
Closed

unterschiedliches Verhalten für Templateauswahl #1438

frontendschlampe opened this issue Mar 20, 2018 · 35 comments
Labels

Comments

@frontendschlampe
Copy link
Contributor

Ich habe eine eigenes Galerietemplate angelegt: gallery_boxen.html5 - dieses wird nun immer als erstausgewähltes Template einer Galerie genutzt - wahrscheinlich weil die Auswahl alphabetisch getroffen wird. Das ist natürlich ungünstig. Bei dem Feld "Individuelles Template" ist standardmäßig immer nichts ausgewählt. Dies wäre für das Feld "Galerietemplate" ebenfalls sinnvoll.

Bei den Contentelementen habe ich jetzt keine weiteren Elemente gefunden, die eine doppelte Templateauswahl haben, aber bei Modulen gibt es das auf jeden Fall. Da müsste es ebenfalls geändert werden.

Frage am Rande: Nur eine Templateauswahl ist hier nicht möglich?

@baumannsven
Copy link

@leofeyer leofeyer added the bug label Mar 21, 2018
@leofeyer leofeyer added this to the 4.4.17 milestone Mar 21, 2018
@leofeyer
Copy link
Member

Grundsätzlich ist es korrekt, dass das Select-Menü kein leeres Element hat. Das ist auch bei allen anderen Bereichstemplates der Fall:

Das liegt daran, dass dieses Template zwingend ausgewählt werden muss und nicht optional ausgewählt werden kann, wie es beim "Custom element template"-Select der Fall ist. Es handelt sich also erstmal nicht um einen Bug.

Tatsächlich berücksichtigt die ContentGallery-Klasse den Fall, dass kein Template ausgewählt wurde, alle anderen Klassen jedoch nicht. Wir müssen besprechen ob wir das bisherige Verhalten zukünftig ändern möchten, allerdings kann es gut sein, dass es Extensions gibt, die sich darauf verlassen, dass die Bereichstemplates immer gesetzt sind.

@leofeyer leofeyer removed this from the 4.4.17 milestone Mar 29, 2018
@frontendschlampe
Copy link
Contributor Author

Ich denke auch eher, dass das Problem darin besteht, dass bei der Auswahl des Default-Templates einfach alphabetisch vorgegangen wird - wie in meinem Beispiel beschrieben. gallery_default oder jedes andere Template sollte immer das Default- bzw. erstausgewählte Template bleiben. Nur weil ich ein eigenes Template mit einem Namen kleiner "_default" anlege, wie z.B. "_boxen", darf dieses Template nicht als Standardauswahl bei einem neuen Element gelten. Ob es jetzt eine leere Auswahl gibt, ist erstmal ein anderer Punkt.

@aschempp
Copy link
Member

aschempp commented Apr 3, 2018

Die einfache Lösung dafür ist eine leere Option und das das Feld als Pflicht markieren. Das mache ich immer dann wenn keine Auswahl standardmässig genommen werden kann aber eine Auswahl Pflicht ist.

@fritzmg
Copy link
Contributor

fritzmg commented Apr 3, 2018

Dann müsste ein Redakteur aber immer ein Template selbst auswählen.

@baumannsven
Copy link

Das ist doch dann total umständlich. Und würde den Arbeitsaufwand sprengen. Warum kann man nicht eine leere Option mit rein nehmen. Wenn diese gewählt ist auf das Standart Template umschalten wie bei der content gallery?

@ausi
Copy link
Member

ausi commented Apr 3, 2018

Wäre die einfachste und beste Lösung nicht einfach 'default' => 'gallery_default' zu setzen?

@aschempp
Copy link
Member

aschempp commented Apr 3, 2018

Dann müsste ein Redakteur aber immer ein Template selbst auswählen.

Bei der Galerie wäre gallery_default wohl das richtig. Bei Newslist und -Leser wäre aus meiner Sicht eine erzwungene Auswahl richtig.

@fritzmg
Copy link
Contributor

fritzmg commented Apr 3, 2018

@aschempp so sehe ich das auch.

@baumannsven
Copy link

@aschempp Wenn man die Templates als default deklariert ist das alles i.O.. Von einer erzwungen Auswahl würde ich absehen. Da dies den Redakteuren auf den Geist gehen wird.

@frontendschlampe
Copy link
Contributor Author

@baumannsven naja ... die erzwungene Auswahl ja nur bei den Modulen. Bei den CE's gibt's nur bei der Galerie die Auswahl von 2 Templates! Von daher wäre es ok. Die Frage ist nur, was bei anderen Erweiterungen passiert, die ggfs. eine zweite Templateauswahl wie bei der Galerie haben.

@Aybee
Copy link
Contributor

Aybee commented Apr 3, 2018

@aschempp
Bei Newslist und -Leser wäre aus meiner Sicht eine erzwungene Auswahl richtig.

Warum? Es müsste doch irgendwie möglich sein z.B. news_latest als Default für die Nachrichtenliste und news_full als Default für den Nachrichtenleser zu setzen.

@leofeyer
Copy link
Member

leofeyer commented Apr 12, 2018

eine erzwungene Auswahl richtig. [include blank option]

Wie am 12. April auf Mumble besprochen, wollen wir es so lösen.

@leofeyer leofeyer added this to the 4.6.0 milestone Apr 12, 2018
@leofeyer
Copy link
Member

Langfristig gesehen könnte man auf die Section-Templates gallery_*, event_* etc. komplett entfernen, da es jetzt zu jedem Element und Modul eine "Custom template"-Auswahl gibt.

@leofeyer
Copy link
Member

Es sind deutlich mehr Templates betroffen als zunächst gedacht:

  • tl_content.galleryTpl
  • tl_content.cal_template
  • tl_content.cal_ctemplate
  • tl_content.com_template
  • tl_module.navigationTpl
  • tl_module.memberTpl
  • tl_module.searchTpl
  • tl_module.com_template
  • tl_module.rss_template
  • tl_module.list_layout
  • tl_module.list_info_layout
  • tl_module.news_template
  • tl_module.nl_template
  • tl_newsletter.template
  • tl_newsletter_channel.template

Ich sehe ehrlich gesagt nicht, dass wir jetzt alle diese Templates umstellen – zumal dazu auch die Paletten angepasst werden müssen, damit die neuen Pflichtfelder sichtbar sind. Dann würde ich lieber die langfristige Lösung abwarten, in der wir auf die Bereichstemplates ganz verzichten können.

@leofeyer leofeyer removed this from the 4.6.0 milestone Apr 27, 2018
@frontendschlampe
Copy link
Contributor Author

ok ... kein Problem. Wenn man es weiß, kann man es ja umschiffen. ;-)

Nur so am Rande: Die Umstellung ist doch theoretisch nur eine "Fleißarbeit", oder? Also wenn man auch als Nichtprogrammierer weiß, was man tun muss und ein Beispiel hat, dann kann man an Hand des Beispiels alle anderen Templates/Paletten auch umstellen?! Ggfs. könnte ich das mal mit machen. Natürlich nachdem ich die Icons gebaut hab.

@ausi
Copy link
Member

ausi commented Apr 27, 2018

Ich sehe ehrlich gesagt nicht, dass wir jetzt alle diese Templates umstellen

Aber es geht ja nur darum in der DCA Konfiguration 'default' => 'gallery_default' oder 'required' => true, 'includeBlankOption' => true zu setzen. Auch wenn es viele Felder betrifft, ist der Aufwand doch relativ überschaubar, oder?

@leofeyer
Copy link
Member

Nein, 'default' => 'gallery_default' ist keine Option, da sonst bei jedem Eintrag in tl_content das Feld gallery auf gallery_default steht – und 99% der Inhaltselemente sind keine Galerien.

Wenn wäre es also 'mandatory' => true, 'includeBlankOption' => true, aber das ist wie geschrieben mit weiteren Änderungen an den Paletten verbunden, denn aktuell befinden sich die Template-Felder in zugeklappten Paletten.

@aschempp
Copy link
Member

Nein, 'default' => 'gallery_default' ist keine Option, da sonst bei jedem Eintrag in tl_content das Feld gallery auf gallery_default steht – und 99% der Inhaltselemente sind keine Galerien.

Das ist doch wurscht? Das Feld wird ja in allen anderen Elementen einfach nicht verwendet. In den Modulen steht auch überall nav_default drin?

@leofeyer
Copy link
Member

Nein, tut es nicht. Das Feld hat keinen Default-Wert:

https://github.com/contao/core-bundle/blob/master/src/Resources/contao/dca/tl_module.php#L241-L249

@fritzmg
Copy link
Contributor

fritzmg commented Apr 30, 2018

Also gallery_default hat 16 Zeichen, somit 16 Byte. Wenn es 500 Inhaltselemente gibt, werden in der Tabelle tl_content 500 * 16 Byte, also 8 KB an Daten abgelegt. Da von den 500 Inhaltselementen aber vermutlich nur 10 vom Typ "Bildergalerie" sind, sind 490 * 16 Byte an unnötigen Daten gespeichert worden. Und das Problem besteht nicht nur in der tl_content …

Es geht ja nicht darum den SQL DEFAULT zu ändern, sondern nur den default Wert im DCA zu setzen. Der default Wert wird ja nur dann in der Datenbank gespeichert, wenn du ein Inhaltselement speicherst und dieses Feld in der Palette des jeweiligen Inhaltselements auch überhaupt angezeigt wird.

@leofeyer
Copy link
Member

Der default Wert wird ja nur dann in der Datenbank gespeichert, wenn du ein Inhaltselement speicherst und dieses Feld in der Palette des jeweiligen Inhaltselements auch überhaupt angezeigt wird.

Das ist ein Irrglaube …

@baumannsven
Copy link

Warum macht man den die default Regelung der Templates nicht wie hier?
https://github.com/contao/core-bundle/blob/master/src/Resources/contao/elements/ContentGallery.php#L324

Wenn das dem Core Team zuviel arbeit ist würde ich dafür einen Pull Request machen.

@fritzmg
Copy link
Contributor

fritzmg commented Apr 30, 2018

Das ist ein Irrglaube …

Ah, tatsächlich, sorry.

@ausi
Copy link
Member

ausi commented Apr 30, 2018

Ich stimme @m-vo zu, wir verschwenden mit dem grundsätzlichen Aufbau von den Tabellen viel viel mehr Platz, der zusätzliche Default-Wert fällt dabei nicht ins Gewicht. Bei tl_content betrifft es dazu auch nur das Feld galleryTpl als einziges. Denn com_template hat bereits einen Default-Wert und cal_template/cal_ctemplate gibt es nicht in tl_content.

@aschempp
Copy link
Member

aschempp commented May 1, 2018

Ich sehe auch nicht welchen Zusammenhang "überarbeiten der Templateauswahl" mit "Datenverschwendung der DCA-Struktur" hat. Ich sehe keine sinnvolle Lösung für das "Problem".

@leofeyer
Copy link
Member

leofeyer commented Sep 6, 2019

Behoben wie von @ausi vorgeschlagen in contao/contao@d3c4261.

@leofeyer leofeyer closed this as completed Sep 6, 2019
leofeyer added a commit to contao/contao that referenced this issue Sep 7, 2019
@leofeyer
Copy link
Member

leofeyer commented Sep 7, 2019

@aschempp hat mich gerade darauf aufmerksam gemacht, dass wir auf Mumble bereits eine andere Lösung besprochen hatten. Diese ist nun in contao/contao@50ae12d implementiert.

leofeyer added a commit to contao/contao that referenced this issue Sep 7, 2019
leofeyer added a commit that referenced this issue Sep 7, 2019
leofeyer added a commit to contao/contao that referenced this issue Sep 7, 2019
leofeyer added a commit that referenced this issue Sep 7, 2019
This reverts commit d3c4261bb8006c60abce8e56def5abddb65739a1.
leofeyer added a commit to contao/calendar-bundle that referenced this issue Sep 7, 2019
leofeyer added a commit to contao/listing-bundle that referenced this issue Sep 7, 2019
leofeyer added a commit to contao/comments-bundle that referenced this issue Sep 7, 2019
leofeyer added a commit to contao/newsletter-bundle that referenced this issue Sep 7, 2019
leofeyer added a commit that referenced this issue Sep 7, 2019
leofeyer added a commit to contao/contao that referenced this issue Sep 8, 2019
leofeyer added a commit to contao/calendar-bundle that referenced this issue Sep 8, 2019
leofeyer added a commit to contao/comments-bundle that referenced this issue Sep 8, 2019
leofeyer added a commit to contao/news-bundle that referenced this issue Sep 8, 2019
leofeyer added a commit to contao/listing-bundle that referenced this issue Sep 8, 2019
leofeyer added a commit that referenced this issue Sep 8, 2019
leofeyer added a commit to contao/newsletter-bundle that referenced this issue Sep 8, 2019
leofeyer added a commit to contao/faq-bundle that referenced this issue Sep 8, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

8 participants