TypoScript-Wettbewerb: Die Gewinner!
Die Gewinner des TypoScript-Wettbewerbs stehen nun fest. Ich werde in einem nächsten Artikel einzelnen Beispiele nochmal aufgreifen und die Lösungsansätze darstellen. 17 TYPO3ler haben Ihre Vorschläge eingereicht.
Doch nun erstmal zu den Gewinnern:
Die wenigsten Zeichen mit 226 Zeichen hat Daniel Pötzinger für seine Lösung benötigt:
t=HMENU
t{
entryLevel=1
1=TMENU
1{
noBlur=1
wrap=<ul>|</ul></li>
t{
ATagTitle.field=title
allWrap=<li>|</li>
}
NO<.t
t=1
t.allWrap=<li class="active">|
ACT<.t
}
2<.1
3<.2
1.wrap=<h2>Menü</h2><ul class="menublock">|</ul>
}
lib.WettbewerbsMenu<t
Daniel macht da ziemlich wilde Sachen mit hin- und herkopieren, aber es funktioniert!
Der kreativste Vorschlag kommt von Georg Ringer. Georg benutzt ein Objekt aus css_styled_content und schreibt dieses nur um. Damit erreicht er 208 Zeichen!
t < tt_content.menu.20.2
t {
wrap >
entryLevel =1
1 {
wrap= <h2>Menü</h2><ul class=menublock>|</ul>
NO = 1
expAll = 0
noBlur = 1
ACT<.NO
ACT.wrapItemAndSub = <li class=active>|</li>
}
2<.1
2.wrap=<ul>|</ul>
3<.2
4>
}
lib.WettbewerbsMenu < t
Daniel und Georg gewinnen damit jeweils Das TYPO3 Profihandbuch – Der Leitfaden für Entwickler und Administratoren zu Version 4.1 und die DVD TypoScript – Video-Training.
Der Gewinner des Das TYPO3 Profihandbuch – Der Leitfaden für Entwickler und Administratoren zu Version 4.1 ist Christian Müller.
Der Gewinner der DVD TypoScript – Video-Training ist Henrik Ziegenhain.
Der Gewinner des Jahresabo des T3N Magazin ist Hendrik Will.
Allen Gewinnern meinen herzlichsten Glückwunsch! Ich werde Euch noch per Mail anschreiben und dann die Preise an Euch versenden.
Fazit
Es hat mir einen riesen Spaß gemacht, den Wettbewerb auszurichten. Mal sehen, was in Zukunft da noch folgt ;-)
Viele von Euch sind auf die Idee gekommen, mit Konstanten bestimmte sich wiederholende Teile des TypoScripts einzusparen. Um so erstaunlicher, dass dies beim Gewinner nicht der Fall war. Das geschickte Kopieren von Objekten oder die Verwendung von bestehenden Objekten war hier deutlich effizienter.
Wie ich schon angedeutet habe, werde ich anhand einzelner Beispiele in einem folgenden Artikel diese Vorgehen näher erläutern.
Für die Praxis muss man aber sagen, dass bei zu viel Optimierung die Lesbarkeit des TypoScripts doch deutlich leidet, so dass ich diese Kniffe sicherlich nicht immer anwenden würde. Man lernt aber ne Menge, wenn man sich solche Beispiele ansieht.
Popularity: 1%
Werbung
2007-12-22 - 12.24 pm
Yuhu :-)
Cool hätte ich nicht gedacht. Ohne Anführungsstriche gehts sogar mit 221 hab ich grad gesehen ;-)
Frohe Weihnachten und guten Rutsch an Alle!
2007-12-22 - 12.26 pm
Glückwunsch nochmal! Dir auch Frohe Weihnachten und guten Rutsch!
2007-12-22 - 2.13 pm
wieviele haben eigentlich mitgemacht?
2007-12-22 - 2.26 pm
Oh, ja, das sollte ich noch schreiben. Es haben 17 Leute mitgemacht.
2007-12-22 - 3.04 pm
So, hab es auch in den Artikel reingeschrieben!
2007-12-22 - 4.40 pm
Yay! Das freut mich sehr.
Frohes Fest und guten Rutsch wünsche ich euch!
2007-12-22 - 5.57 pm
Eigentlich dürfte der Code nicht funktionieren, weil für alle ACT ohne Unterseiten das schließende fehlt. Daher hatte ich wrapItemAndSub drin und deswegen “nur” 231 Zeichen.
Witzigerweise geht es aber doch, weil aus irgendeinem Grund die schließenden Tags ergänzt werden. Probieren geht eben doch über studieren. Glückwunsch an Daniel!
Wenn man das aber konsequent zuende denkt kommt man auf folgenden Code:
y=1
y{
allWrap=
ATagTitle.field=title
}
x=HMENU
x{
entryLevel=1
1=TMENU
1{
noBlur=1
wrap=Menü
NO<y
ACT<y
ACT.allWrap=
}
2<.1
2.wrap=|
3<.2
}
lib.WettbewerbsMenu<x
Mit Anführungszeichen sind’s 208 ohne 202. Da ich aber eh außer Konkurrenz mitgemacht habe, weil ich das Buch als Lektor bereits hier liegen habe und dämlich genug war, es eben nicht zu probieren, sei’s den Siegern gegönnt ;-)
2007-12-22 - 5.58 pm
Ich hasse HTML-Entferner. Es fehlt das schließende >/li<
2007-12-22 - 6.00 pm
aha geht doch. Hier der Code (hoffentlich jetzt mit Tags)
y=1
y{
allWrap=<li>
ATagTitle.field=title
}
x=HMENU
x{
entryLevel=1
1=TMENU
1{
noBlur=1
wrap=<h2>Menü<ul class=”menublock”>
NO<y
ACT<y
ACT.allWrap=<li class=”active”>
}
2<.1
2.wrap=<ul>|</ul></li>
3<.2
}
lib.WettbewerbsMenu<x
2007-12-22 - 6.01 pm
Hi!
Ich war auch etwas verstört, dass das geht – naja “halb”-getrickst und daher hoffentlich für alle Teilnehmer ok!
2007-12-22 - 7.24 pm
:-) Ja warum das schließende Tag da trotzdem da ist hat mich auch gewundert – das wäre noch zu klären….
Mit den zusätzlichen Tips von JoH (weglasssen der Pipe) geht es tatsächlich noch kürzer: 225
Das weglassen der anderen schließenden Tags funktioniert in meinem Test nicht und führt zu unvalidem XHTML – außerdem fehlt ACT=1. (Das ist auch der Grund warum ich das TSObject zum kopieren innerhalb brauche.)
Grüße
2007-12-26 - 9.35 pm
Glückwunsch an die Gewinner! :-)
Leider konnte ich entgegen des Vorhabens nicht teilnehmen, hoffe aber, dass in Zukunft noch ein paar Wettbewerbe folgen.
Würde sogar etwas für Preise spenden, denn bei solchen Wettbewerben lernt man immer das Meiste. Wenn es mal wieder soweit sein sollte, einfach melden. ;-)
2007-12-26 - 9.36 pm
… es wird was kommen! Im Januar. Details folgen…
2007-12-28 - 4.51 pm
Das mit den Wettbewerben find ich eine tolle Sache. Hätte ich es nicht so spät gelesen, dann hätte ich mitgemacht. Aber hab ja jetzt alles Newsfeeds :D
Für die Wettbewerbe fehlt eine passende Plattform (nix gegen den Blog, aber eine Einsicht auf alle Wettbewerber mit ihren Einträgen wäre doch durchaus sinnvoll, der ein oder andere hat sich immer neue Ideen dabei).
In diesem Sinne einen guten Rutsch und auf ein erfolgreiches Battlejahr 2008
2008-01-03 - 8.04 am
jetzt hat mich auch die benachrichtigung im büro erreicht und ich bedanke mich bei dem wettbewerb!
zur vervollständigung: 8 zeichen wärens eigentlich weniger, denn expAll=0 ist nicht gefordert gewesen, aber ist wohl Auslegungssache.
Das Buch darf neu verlost werden, hab ich schon ;)
liebe Grüße und ein erfolgreiches Jahr
Georg