Die TYPO3 Mailingliste - nicht fragen: lesen!
This is a discussion on [TYPO3-german] Verständnisfrage ifEmpty.cObject within the typo3-german@lists.netfielders.de forums, part of the TYPO3-Mailinglisten: DEUTSCH category; Hallo zusammen, ich habe mir ein funktionierendes TS gebastelt und frage mich, ob der Ansatz gut ist oder ob es ...
|
|||||||
| Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
|
#1
|
|||
|
|||
|
Hallo zusammen,
ich habe mir ein funktionierendes TS gebastelt und frage mich, ob der Ansatz gut ist oder ob es einen besseren Weg gibt ... In der Liste hab ich nichts Passendes gefunden. Das hier hab ich mir mit Hilfe diverser Listenpostings, dem Kochbuch und der TSRef zusammengebastelt. Der Inhalt meiner linken Spalte wird standardmäßig aus einer einzelnen Seite für die ganze Website ausgelesen. Jetzt möchte ich eine Möglichkeit haben, dass ich für einzelne Seiten dieses überschreibe. Eine Vererbung wäre uninteressant, da unterhalb der Seiten wieder automatisch der Standard greifen soll. Dieses TS habe ich mir gebaut: +++ snip +++ LINKS < lib.content_left +++ snip +++ lib.content_left = COA lib.content_left { 10 < styles.content.get 10 { table = tt_content select.where = colPos = 1 select.orderBy = sorting } 10.stdWrap.ifEmpty.cObject = CONTENT 10.stdWrap.ifEmpty.cObject { table = tt_content select.pidInList = 5 select.where = colPos = 1 select.orderBy = sorting } } Es sieht eigentlich so aus, dass die Mehrzahl der Seiten den Standardinhalt (pidInList = 5) nutzen wird. Meine Frage daher: Ist es vielleicht sinnvoller, die Sache anders herum aufzuziehen? Wenn ja, wie? Habe u. A. auch schon mit if.isTrue experimentiert, bin aber zu keinem funktionierenden Ansatz gelangt. Oder bleibt die Anzahl/Art der Abfragen gleich, egal, welcher Punkt zuerst festgelegt worden ist? Danke im Voraus. Gruß Michael _______________________________________________ TYPO3-german mailing list TYPO3-german (AT) lists (DOT) netfielders.de http://lists.netfielders.de/cgi-bin/...o/typo3-german |
|
#2
|
|||
|
|||
|
Hi Michael,
> Der Inhalt meiner linken Spalte wird standardmäßig aus einer einzelnen > Seite für die ganze Website ausgelesen. > Jetzt möchte ich eine Möglichkeit haben, dass ich für einzelne Seiten > dieses überschreibe. Eine Vererbung wäre uninteressant, da unterhalb der > Seiten wieder automatisch der Standard greifen soll. > > Dieses TS habe ich mir gebaut: > > +++ snip +++ > LINKS < lib.content_left > +++ snip +++ > > lib.content_left = COA > lib.content_left { > 10 < styles.content.get > 10 { > table = tt_content > select.where = colPos = 1 > select.orderBy = sorting > } > 10.stdWrap.ifEmpty.cObject = CONTENT > 10.stdWrap.ifEmpty.cObject { > table = tt_content > select.pidInList = 5 > select.where = colPos = 1 > select.orderBy = sorting > } > } > > Es sieht eigentlich so aus, dass die Mehrzahl der Seiten den > Standardinhalt (pidInList = 5) nutzen wird. > Meine Frage daher: > Ist es vielleicht sinnvoller, die Sache anders herum aufzuziehen? > Wenn ja, wie? Naja, via Condition oder mit if. 10.stdWrap.if.value = 12,33,44 10.stdWrap.if.value.isInList.data = TSFE:id # vorsicht, syntax nochmal prüfen.. Und dann nen zweite Abfrage mit 20.stdWrap.if.value = 12,33,44 20.stdWrap.if.value.isInList.data = TSFE:id 20.stdWrap.if.value.negate = 1 12,33,44 packst du sinnvoller Weise dann in eine Konstante. Aber ich denke eigentlich ist der sauberste Weg der, den Du gewählt hast. Denn dann wird auf allen Seiten, wo nichts in der Spalte steht, der Default-Inhalt gelesen. Mag sein, dass es für den Server ein wenig aufwändiger ist (zusätzliche SQL-Abfrage) aber das sollte nicht ins Gewicht fallen. Denn sonst musst Du immer explizit die Seiten benennen auf denen das anders gehandhabt werden soll und das ist Fehleranfällig und aufwändig. meine Gedanken so auf die schnelle. gruß, martin _______________________________________________ TYPO3-german mailing list TYPO3-german (AT) lists (DOT) netfielders.de http://lists.netfielders.de/cgi-bin/...o/typo3-german |
|
#3
|
|||
|
|||
|
Danke für deine Antwort, Martin.
An Conditions hatte ich in diesem Fall gar nicht gedacht. Mein Gedanke als Nichtprogrammierer (heute ärgere ich mich ein wenig, dass ich mich nicht schon früher damit beschäftigt habe...) war, ob es nicht sinnvoller ist, erst den Standart zu definieren. Und danach die Ausnahme abzufragen/überschreiben. Jetzt mache ich es ja umgekehrt. Wenn ich erst den Standard definieren würde, müsste ich dann nicht mit "override" arbeiten? Es wäre nett, wenn mir jemand dabei noch auf die Sprünge helfen könnte, damit ich für andere Objekte Denkansätze bzw. Alternativen hätte. Gruß Michael _______________________________________________ TYPO3-german mailing list TYPO3-german (AT) lists (DOT) netfielders.de http://lists.netfielders.de/cgi-bin/...o/typo3-german |
|
#4
|
|||
|
|||
|
Hi Michael,
> An Conditions hatte ich in diesem Fall gar nicht gedacht. Um das nochmal deutlich zu machen. Ich finde Deine Lösung ist für den Zweck genau das richtige. Du kannt einfach und ohne Probleme auf beliebigen Seiten besondere Inhalte einfügen und wieder löschen, ohne ins Typoscript zu gehen. Das bedeutet das können auch deine Redakteure. Jeder andere Weg würde bedeuten, Du musst ins Typoscript. > Mein Gedanke als Nichtprogrammierer (heute ärgere ich mich ein wenig, > dass ich mich nicht schon früher damit beschäftigt habe...) war, ob es > nicht sinnvoller ist, erst den Standart zu definieren. Das ist ne relativ philosophische Frage.... > Und danach die Ausnahme abzufragen/überschreiben. Jetzt mache ich es ja > umgekehrt. Ne - du hast zwei Prioritäten. Priorität 1: Wenn auf der Seite Inhalt in der Spalte ist, zeig das an Priorität 2: Ansonsten nimm den Inhalt von der Seite 5 In der Reihenfolge arbeitest Du es ab. Ich denke es ist am sinnvollsten wenn aus dem Code klar wird, was passiert Und das ist bei dir der Fall. Ich würde sagen die Entscheidung ob du eine festdefinierte Liste hast und das mit Conditions prüfst oder ob Du deine aktuelle Lösung verwendest sollte davon abhängen wer was machen darf. D.h. was darf der Redakteur selber machen. Muss der selber entscheiden können ob der Default-Inhalt angezeigt wird oder der Inhalt der Seite ODER darf der Redakteur auf keinen Fall einen Einfluss darauf haben auf welchen Seiten der Default-Inhalt angezeigt wird oder nicht. Im ersten Fall nimmst du die aktuelle Lösung, im zweiten Fall musst Du via Typoscript die Liste definieren und via IF oder Condition prüfen. Die Performance des Systems würde ich nicht zu stark berücksichtigen. Im normalfall sollte die eine zusätzliche Abfrage pro Tag (Caching!) nicht ins Gewicht fallen... > Wenn ich erst den Standard definieren würde, müsste ich dann nicht mit > "override" arbeiten? stimmt. Hätte ich jetzt nicht dran gedacht. Aber das bedeutet, dass Du auch zwei Abfragen hast. Auf die Performance hat das wohl keinen Einfluss. > Es wäre nett, wenn mir jemand dabei noch auf die Sprünge helfen könnte, > damit ich für andere Objekte Denkansätze bzw. Alternativen hätte. Danke für "override" da hätte ich jetzt nicht so dran gedacht ![]() Theoretisch sollte es auch möglich sein das ganze via Register zu lösen LOAD_REGISTER aber sinnvoll ist es vermutlich für diesen Zweck nicht. Ansonsten möchte ich dir das Kochbuch von Christian Trabold, Jo "Joey" Hasenau und Peter Niederlag ans Herz legen. Das hat mir noch einige Dinge näher gebracht. schönen gruß, martin _______________________________________________ TYPO3-german mailing list TYPO3-german (AT) lists (DOT) netfielders.de http://lists.netfielders.de/cgi-bin/...o/typo3-german |
|
#5
|
|||
|
|||
|
Hallo Martin,
danke für die ausführliche Antwort. > darf der Redakteur auf keinen Fall einen Einfluss darauf haben auf welchen > Seiten der Default-Inhalt angezeigt wird oder nicht. > > Im ersten Fall nimmst du die aktuelle Lösung, im zweiten Fall musst Du via > Typoscript die Liste definieren und via IF oder Condition prüfen. Das würde ich über eine Condition mit der Usergroup versuchen > > Die Performance des Systems würde ich nicht zu stark berücksichtigen. Im > normalfall sollte die eine zusätzliche Abfrage pro Tag (Caching!) nicht ins > Gewicht fallen... Alles klar. > Ansonsten möchte ich dir das Kochbuch von Christian Trabold, Jo "Joey" > Hasenau und Peter Niederlag ans Herz legen. Das hat mir noch einige Dinge > näher gebracht. Ich habe das Buch. Ich hab ein TS mit diesem Snippet in einem anderen Zusammenhang mal in der Liste gefunden: 10.stdWrap.ifEmpty.cObject = CONTENT 10.stdWrap.ifEmpty.cObject Dann hab ich im Kochbuch und in der TSRef nachgelesen, was die Objekte können und hab mir das an meine Bedürfnisse angepasst. Ab und an verzettel ich mich aber in der Philosophie (s. o. in deiner Antwort). ;-) Trotzdem danke für den Hinweis. ![]() Gruß Michael _______________________________________________ TYPO3-german mailing list TYPO3-german (AT) lists (DOT) netfielders.de http://lists.netfielders.de/cgi-bin/...o/typo3-german |
| Themen-Optionen | Thema durchsuchen |
| Ansicht | Thema bewerten |
|
|
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [TYPO3-german] verständnisfrage wann werden files im uplad gelöscht | Martin Ficzel | typo3-german@lists.netfielders.de | 3 | 24.05.2007 20:51 |
| [TYPO3-german] Kickstarter Checkboxen Verständnisfrage | Robert Markula | typo3-german@lists.netfielders.de | 2 | 20.05.2007 19:30 |
| [TYPO3-german] Problem mit cObject CONTENT | Martin Fluer | typo3-german@lists.netfielders.de | 6 | 02.05.2007 07:48 |
| [TYPO3-german] cObject Image - Standardeinstellung für Spalten ändern | Joern Bock | typo3-german@lists.netfielders.de | 0 | 16.02.2007 12:15 |
| [TYPO3-dev] TypoScript: stdWrap.ifEmpty but no stdWrap.ifIsset | Oliver Hader | typo3-dev@lists.netfielders.de | 3 | 12.01.2007 18:10 |