delahaye / dlh_googlemaps

Google Maps Extension für Contao
20 stars 26 forks source link

content element should not respect individual template #74

Closed Aybee closed 6 years ago

Aybee commented 7 years ago

Das CE Google Map sollte kein individuelles Template benutzen, weil es dieses Feld in diesem CE nicht gibt.

Nachstellen:

  1. Erstelle ein Template ce_hello_world. (Inhalt: hello world)
  2. Erstelle ein CE HTML.
  3. Wähle das individuelle Template ce_hello_world.
  4. Speichern. (FE: hello world)
  5. Ändere den CE Typ nach Google Maps.
  6. Speichern. (FE: hello world)
delahaye commented 6 years ago

Ich verstehe leider nicht, was Du meinst. Die individuellen Templates funktionieren doch einwandfrei?

Aybee commented 6 years ago

Hast du mal versucht die Schritte 1 bis 6 so nachzustellen? Dann siehst du was los ist. Sorry, aber wüsste jetzt nicht, wie ich das besser erklären sollte.

Wenn dieses CE vorher mal von einem anderen Typ war, wo man induviduelle Templates auswählen kann (für das CE Google Map kann man kein "individuelles Template" wählen, nur ein "Template"), dann sieht man im FE die Ausgabe dieses "individuellen Templates". Obwohl man die Auswahl für ein "individuelles Template" in diesem Inhaltstyp gar nicht zur Verfügung hat. bildschirmfoto am 2017-09-19 um 18 56 50 bildschirmfoto am 2017-09-19 um 18 58 44 Gleiches CE mit der ID 348. Dieses CE Typ "Google Map" bringt die Ausgabe des Templates "ce_hello_world".

delahaye commented 6 years ago

?? Sorry, aber bereits Schritt 3 funktioniert (Contao 4) nicht - das Template steht gar nicht zu Wahl. Das halte ich aber auch nicht für kritisch. Wer "funktioniert" CE's um? ;)

Aybee commented 6 years ago

Mein Beispiel ist aus Contao 3.5.28. In 4 hat sich das dahingehend geändert, dass man im CE HTML nur noch cehtml-Templates auswählen kann. In 3.5 konnte man noch alle ce_-Templates auswählen. In C 4 kannst du den Test nur noch mit nem Template ce_html_hello_world machen.

Nein, CEs werden da nicht umfunktioniert. Es ist nur so, dass wenn in der DB in tl_content.customTpl ein Wert (Templatename) drin steht, dass dann dieses Template genommen wird und nicht das Template, welches in tl_content.dlh_googlemap_template drin steht. Aber in der Eingabemaske des CEs "Google Map" kann man nicht sehen, dass das Feld tl_content.customTpl ausgefüllt ist.

Mögliches Auftreten in einer Live-Situation:

Man hat eine GoogleMap über ein HTML CE eingebunden und ein eigenes ce_html_gmap Template ausgewählt. Nun benutzt man die Erweiterung, benötigt dieses Element nicht mehr und stellt den Typ von HTML auf "Google Map". Durch die Auswahl des Templates, als es noch HTML war, funktioniert die Google Map nun nicht und man sieht auch nicht, dass der Datensatz den Wert ce_html_gmap in customTpl enthält.

Normalerweise macht das in Contao nichts, wenn ich den Typ eines Elements ändere. Habe ich z.B. ein CE Typ YouTube mit einer YouTube-ID und ändere dieses CE nach Typ Video/Audio, dann sehe und brauche ich kein Feld YouTube-ID. Der Wert ist aber immer noch in dem Datensatz vorhanden, stört aber nicht. In diesem Fall hier mit customTpl stört dieser Wert, wenn er vorhanden ist und CE Google Map ausgewählt ist, weil dieses Template dann zum Rendern herangezogen wird und nicht dlh_googlemap_template.

bildschirmfoto am 2017-09-19 um 21 18 39 bildschirmfoto am 2017-09-19 um 21 44 13

delahaye commented 6 years ago

Ok. Danke für die ausführliche Info. Aber wenn es nur auftritt, wenn man in Contao 3.5 ein Element "recycled", werde ich da keine Arbeit reinstecken. Das wird wohl einer der Gründe gewesen sein, das Template-Handling in Contao 4 wieder zu ändern.

Aybee commented 6 years ago

Nein, das ist in Contao 4 noch genauso - wenn das Feld tl_content.customTpl einen Wert besitzt, läuft das CE Google Map nicht mehr. Elemente werden sehr oft "recycled" aber es gab bei mir sonst noch nie Probleme damit.

Gib mir mal bitte einen Tipp, in welcher Datei das drin stehen könnte, dann schaue ich mir dies selber mal an.