contao / core

Contao 3 → see contao/contao for Contao 4
GNU Lesser General Public License v3.0
492 stars 213 forks source link

Feature: Seite bearbeiten - CSS-Klasse auf Unterseiten vererben. #6999

Open Aybee opened 10 years ago

Aybee commented 10 years ago

Das habe ich mir schon oft gewünscht, dass man einer Seite eine CSS-Klasse mitgibt, die sich auf die Unterseiten vererbt.

Ich habe dazu keine Erweiterung gefunden und weiß aus dem IRC, dass andere das auch gut gebrauchen könnten.

Ich stelle mir das so vor, dass man die Klasse z.B. so angibt

normal_class inherit_class|inherit

Also eine Pipe und dahinter das Wort inherit und diese Klasse wird dann auf die Unterseiten vererbt.

Es werden ja bereits einige Felder der Seiten nach unten vererbt und können dann auf den Unterseiten wieder überschrieben werden. z.B. Cache oder Layout.

Ich habe mir die Felder mal in Bezug auf optionales Vererben angesehen und außer dem Feld CSS-Klasse ist sonst eingentlich kein Feld dabei, wo ich mir vorstellen könnte, dass eine optionale Vererbung nach unten Sinn machen würde.

Wenn mein Vorschlag Anerkennung findet und die Umsetzung nicht so schwer ist, wäre es schön, wenn es noch in C3.3 rein käme.

aschempp commented 10 years ago

In Contao 3.3. kann das sicherlich nicht mehr kommen, denn RC ist Feature-Freeze.

Die Idee find ich grundsätzlich nicht schlecht. Bisher nutze ich einfach CSS-Klassen im Seitenlayout für solche Sachen (die werden ja mit dem Layout vererbt).

leofeyer commented 10 years ago

Bisher nutze ich einfach CSS-Klassen im Seitenlayout für solche Sachen

Das finde ich auch vollkommen ausreichend. Bitte nicht noch mehr undokumentierte "magic" Features.

andreasisaak commented 10 years ago

@Aybee Wieso schreibst du dafür keine Extension?

PS: Ich bin ein absoluter Gegner dieser Magic Pipes wie man sie aus Typoscript in TYPO3 kennt. Gibts da keine bessere Möglichkeit?

Aybee commented 10 years ago

@aschempp Das ist für mich keine Lösung, da ich zu 95% mit nur einem Layout arbeite. Ich komme des Öfteren als Admin in Backends wo mit 10 bis 30 Layouts gearbeitet wird zum Teil angelegt wegen so einer CSS-Klasse. Zudem werden Layouts, welche nicht mehr benutzt werden, nicht gelöscht. Das macht die Arbeit als Entwickler dort sehr umständlich. Zumal nicht zu erkennen ist, auf welchen Seiten welche Layouts im Einsatz sind und ob sich die "30" Layouts nur anhand einer Klasse für BODY unterscheiden ist auch erst nach einer Analyse der Layouts möglich.

@andreasisaak Ja, diese Magic-Sachen das war auch ein Grund mich von TYPO3 zu trennen. Ohne Erweiterung direkt im Core fänd ich's halt besser, da es meiner Meinung nach viel Sinn macht und sehr oft genutzt werden kann und keinen tragischen Overhead bildet. Wenn der Vorschlag nicht angenommen wird, werde ich versuchen eine Erweiterung zu schreiben.

@leofeyer Ich wusste gar nicht, dass es undokumentierte "magic" Features gibt. Kann man die mal irgendwo dokumentieren ;) ? Ein einfacher Hinweis in dem Hilfetext würde ja genügen "Eine Klasse kann auf Unterseiten vererbt werden. Beispiel: my_subtree|inherit"

Wenn jemand ne bessere Lösung hat als mit den Pipes, dann natürlich die bessere.

Ich wollte nochmal sagen, dass sich mit der Vererbbarkeit der Seiten-Felder auf Unterseiten ja Gedanken gemacht wurden und diese Vererbungen im Core ja auch umgesetzt wurden dort wo sie Sinn machen. Nur die "optionale" Vererbbarkeit der CSS-Klasse fehlt hier meiner Meinung nach, da sie durchaus viel Sinn machen würde.

MacKP commented 10 years ago

Hmm wenn, dann wäre ich dafür, das man einfach ne Checkbox setzen kann (aktiv = wird vererbt). Das kann man dann im BE beschriften und alle wissen Bescheid, ohne das man extra Doku braucht ;-) Könnte schon recht praktisch sein sowas. Mit Inserttags kann man ja aktuell das ganze so machen, das die Seiten der übergeordneten Hauptseite genommen werden {{env::main_alias}}. Das wars dann aber auch schon. Reicht teilweise aber nicht immer ^^

frontendschlampe commented 10 years ago

Also grundsätzlich finde ich die Idee auch nicht schlecht, aber wie auch @MacKP schon sagt, sollte es einstellbar sein. Ich hab hier den Ansatz der Einstellungen unserer Erweiterung backboneit/contao-trueurl im Kopf:

Beim Startpunkt der Website:

Bei allen anderen Seiten:

Ich finde das eigentlich so klar und deutlich, so dass man sich weder über irgendwelche Magic Pipes noch undokumentierte Features Gedanken machen muss. ;-)

MacKP commented 10 years ago

:+1:

michelbalzer commented 10 years ago

Ich mach das ja ab und zu mit den main- und parent-Aliasen via {{page::parentAlias}}, {{page::mainAlias}} und {{page::alias}}. Der darf sich dann natürlich nicht ändern.

(Sowas wie {{page::parentID}} als Zusatz gibts ja nicht von Haus aus.)

andreasisaak commented 10 years ago

Aber solch einen Inserttag zu schreiben wäre ja nicht die Hexenkunst. Macht definitiv Sinn.