TYPO3: ifNotEmpty-Workaround

Das mag ich so sehr an der Skriptsprache Typoscript meines Lieblings-WCMS TYPO3: Tausenderlei Anweisungen und Möglichkeiten – nur ein paar logische und sinnvolle Sachen wurden manchmal (wahrscheinlich aus Boshaftigkeit) weggelassen, damit man sich ‘ne Rübe machen muss, wie man sein Problem trotzdem gelöst kriegt.

Letztens zum Beispiel bei der Umsetzung eines Layouts mit optional 2 oder 3 Inhalts-Spalten: Genutzt werden sollten dafür die vordefinierten Spalten “Links”, “Normal” und “Rand” im TYPO3-Backend. Der Rand soll immer sichtbar sein. “Links” ist optional (also je nachdem, ob Inhalte hinterlegt sind oder nicht) und “Normal” nutzt dann den jeweils verfügbaren restlichen Platz.

Sehr praktisch wäre für diesen Zweck eine stdWrap-Bedingung “ifNotEmpty” gewesen. Wäre. Und so galt es, dafür ein Workaround zu schreiben, welches ich hiermit kurz vorstellen möchte, falls jemand einmal ein ähnliches Problem zu lösen hat. Hat mich ein bis zwei Stündchen Probieren, Verwerfen und Googeln gekostet. Hab mir die ganze Geschichte auch gerade noch einmal bei einem anderen kleinen Projekt nachgebaut – funktioniert also bestens :-)

Hier erstmal unkommentiert das HTML-Template-Snippet:

..
<div class="m3">
  <div>
    ###CONTENT-LINKS###
    ###CONTENT###
  </div>
</div>
<div class="r1">
  ###CONTENT-RAND###
</div>
..

Die Marker CONTENT und CONTENT-RAND werden wie gewohnt befüllt. Die Besonderheit liegt hier im Marker CONTENT-LINKS. Dieser wird durch folgendes Typoscript befüllt (muss evt. noch an die eigenen Gegebenheiten und Code-Stile angepasst werden):

temp.CONTENT-LINKS =  COA
temp.CONTENT-LINKS {
  10 = CASE
  10 {
    key.field = uid
    default = CONTENT
    default {
      table = tt_content
      select.orderBy = sorting
      select.where = colPos = 1
    }
  }
}
template.CONTENT-LINKS = COA
template.CONTENT-LINKS {
  10 < temp.CONTENT-LINKS
  10 {
    stdWrap {
      ifEmpty.cObject = TEXT
      ifEmpty.cObject.value =
      wrap = <div class="l1">|</div></div><div class="m2">
      required = 1
    }
  }
}
page.10.marks.CONTENT-LINKS < template.CONTENT-LINKS

Das CSS muss dann entsprechend den Klassen “l1″, “m2″, “m3″ und “r1″ angelegt werden. Wobei die Zahl bei mir hier für die Breitenverteilung steht und l, m und r für Links, Mitte und Rand :-)

Wenn Fragen auftauchen oder jemand einen besseren Vorschlag hat, dann einfach einen Kommentar schreiben. Ansonsten viel Erfolg damit!

Kleine Werbepause / kleiner Gefallen:
Ich bin gerade äußerst urlaubsreif. Reicht ja auch ne Woche irgendwo hin und was angucken – Berlin zum Beispiel. Ein guter Anlaufpunkt, um z.B. eine Ferienwohnung zu buchen ist das Internet. Weil für ne Woche ein Hotel etwas zu expensiv wäre und man das Geld lieber in andere Dinge investiert (z.B. gutes Essen, Kultur, Shopping). Vielen Dank für die Aufmerksamkeit.

Die leider etwas kritikresistente TYPO3-Association

Letztes Wochenende war die TYPO3 Conference 2009 in Frankfurt am Main. Michael, ein Programmierkollege aus Dresden war vor Ort und berichtet über beide Tage konstruktiv meckernd, forsch hinterfragend und etwas schonungslos. Wobei der erste Tag hier noch etwas unkonstruktiver ist als der zweite wirklich gute Post. Natürlich ließen offizielle Gegenstimmen nicht lange auf sich warten und ich musste mir diese zweimal durchlesen (nicht nur wegen der beinahe beispiellosen Orthographieschwäche von Kommentator Jens).

Offensichtlich werden von offizieller Seite nur Jubelauguste gewünscht und kritische Stimmen als Majestätsbeleidigung interpretiert. Ach du guter Gott… Ich will hier auch nicht polemisch werden, aber da hat wohl jemand zu heiß gebadet. Oder zu lange vorm Rechner gesessen. Oder zu viel das TYPO3-Unser gebetet.

Nicht dass ich falsch verstanden werde – ich verehre und schätze die aufopfernde Arbeit an TYPO3 und liebe es jeden Tag mehr, damit zu arbeiten und fetzige Resultate zu erzielen, aber ein klein wenig mehr “selbe Augenhöhe” von der Association (die sich ja immerhin durch Spenden, Mitgliedsbeiträge, Zertifizierungsgebühren etc. finanziert) und wenigstens ein offenes Ohr für das gemeine Volk (dass sträflicherweise nicht geschlossen TYPO3-Association-Mitglied ist und eine eigene Redesession auf der Konferenz gehalten hat) wäre der gemeinsamen Sache sicher zuträglich. Das Vertrauen in die Association wird durch dieses etwas befremdliche und beleidigt anmutende Kontern sicher nicht rapide steigen. In diesem Sinne, möchte ich Kommentator Jens mit seinen schließenden Worten “Hoffen möchte ich dennoch” zitieren und bitte um zukünftige sachdienliche Konversation.

Friede am Zaun und “enable people to communicate”.

Googles Matt Cutts – unterhaltsamer Vortrag über WordPress-SEO

Letztens über irgendeinen RSS-Feed entdeckt und für witzig und informativ befunden: Googles bekanntester Spamjäger Matt Cutts bei seinem Vortrag auf dem WordCamp. Das ist – wie ich finde – ein ganz schön cooler Typ. Clever und smart – und ein ganz schöner Kasper der Gute. Das Video geht eine Dreiviertelstunde und lohnt sich für jeden, der was mit SEO und Bloggen zu tun hat. Und nebenbei kann man sein English etwas improven :-)

via searchengineland

TYPO3: Content anzeigen und vererben

Sorgte bisher bei der TYPO3-Integration immer mal wieder für nen schönen Stirnklatscher: Inhalte werden nicht angezeigt, sämtliche Typoscripts werden daraufhin getestet und gedebugged und man zweifelt schon an sich – und am Ende liegts an der vergessenen css_styled_content-Einbindung :-)

Außerdem gerade benötigt und natürlich eine Typoscript-Lösung gefunden: Content-Vererbung im CONTENT-Element. Zum Beispiel für Info-Kästen auf der rechten  Seite, die man zur Vermeidung von Redundanz nur auf der Elternseite pflegen möchte. Wer ebenso eine Lösung dafür benötigt, wird sicher auch mittels der slide-Anweisung glücklich werden :-)

Die nächste Maus bitte ..

Toll. Mein früherer Tastaturverschleiß musste nun aufgrund meines tragbaren Rechners einem Mausverschleiß weichen. Ich hatte auch schon – nach einem missglückten Versuch und erfreulicher Kulanz vom Mediamarkt – die ideale Maus für mich gefunden. Eine Fujitsu W1600. Ich kann auch nicht ohne Maus – dieses Geduldsspiel mit dem Trackpad macht mich wahnsinnig und effizientes Arbeiten ist ohne externes Zeigegeräte für mich unmöglich. Nun musste ich mir die gleiche Maus noch eimmal zulegen, da wohl die Batterien ausgelaufen sind und nichts mehr ging. Toll. Wieder am falschen Ende gespart und keine Markenbatterien genommen, sondern die ausm Discounter des geringsten Misstrauens. 30 Euro Lehrgeld. Toll.

TYPO3 – HTML-Tag konfigurieren

Zunnächst einmal: Bin zurück aus dem Urlaub. Relativ gut erholt. Auf jeden Fall mal richtig runtergekommen um neue Kraft zu tanken. Neue Ideen und frische Gedanken mitgebracht. Mein Ansinnen für maischi.de: Dieses Blog soll deutlich mehr fachliche Beiträge bekommen und der Fokus in Richtung Webentwicklung und Suchmaschinenoptimierung gehen. Für privaten Kram hecke ich gerade etwas anderes aus. Dazu will ich noch nicht zu viel verraten. Wird aber sicher gudd :-)

Nun zum eigentlichen Thema. Gerade benötigt und schnell ergoogelt: Eine Möglichkeit, per TypoScript (also in TYPO3) den HTML-Tag zu bearbeiten – für unterschiedliche Darstellung auf einer speziellen Seite per CSS-ID.

TypoScript-Setup (an den Punkten einfach zusammenfügen):

[globalVar = TSFE:id = 1]
 template.page.bodyTag = <body id="body_start">
 config.htmlTag_setParams = xmlns="http://www.w3.org/1999/xhtml" ..
 ..xml:lang="de" lang="de" id="html_start"
[end]

Google Koffein-Update (Caffeine)

Da scheint wohl etwas größeres im Busch zu sein, wie ich gerade bei Matt Cutts lese. Google hat in den letzten Monaten an einem neuen Update gearbeitet, welches sehr viel tiefer geht als andere Updates bisher wo “nur” ein paar Filter anders ausgerichtet und Stellschräubchen gedreht wurden. Hier soll aber wohl nun die Infrastruktur im Maschinenraum stark verbessert und erneuert worden sein – angefangen beim Crawlen, über das Indexieren bis zum Sortieren. Das ganze hört auf den Namen Caffeine Update. Momentan wird Feedback von findigen Menschen erbeten und es ist auch noch nicht komplett fertig. Beta-Status denke ich.

An den Suchergebnissen, die man unter http://www2.sandbox.google.com/ testen kann, sehe ich noch keine größeren Änderungen bei meinen Sachen – höchstens eine kleine Steigerung :-)

Ich bin sehr, sehr gespannt was da letztendlich bei rauskommt. Hätte mich auch etwas gewundert, wenn sich Google auf seinem Erfolg ausruht und sein Kerngeschäft vernachlässigt.

Maischner.de is coming home..

Ich glaube, seit dem ich im Internet meine Späßchen treibe, war mein Nachname als de-Domain immer reserviert. Und obendrein noch auf jemanden der diesen Namen nicht trägt. Warum auch immer. Auf der Domain selbst waren immer nur Baustellen- oder Fehlerseiten zu sehen. Auch Mails an den Eigentümer wurden nicht zugestellt. Jetzt wurde aber vermutlich mal Inventur gemacht und die jährliche Domaingebühr wurde als verzichtbarer Posten erkannt und die Domain gekündigt. Jedenfalls war diese heute bei meiner routinemäßigen Kontrolle frei. Juhu.

Hauptsächlich geht es mir um meine neue offizielle E-Mail-Adresse. Die anderen sind natürlich noch gültig und landen alle im gleichen Topf und gehen selbstverständlich nicht verloren. Nur werde ich ab jetzt immer von der neuen Adresse senden.

Was ich mit der Website mache weiß ich noch nicht. Vielleicht ein klitzekleines Verzeichnis mit Links und Infos zu den Maischners. Wer weiß…

Wer auch ein Maischner ist und eine dazugehörige E-Mail-Adresse haben möchte, sagt mir einfach Bescheid. Entweder als Weiterleitung auf eine andere Adresse oder mit Postfach auf meinem Server – das ist mir eigentlich egal. Doch das nur als kleines Angebot für Namensgleiche :-)

ElePHPanten in Dresden eingetroffen

Nach langer Reise und einigen E-Mails mit Frankreich sind sie heute nun endlich eingetroffen: Meine 3 georderten Elephpanten – Maskottchen der verbreiteten und von mir präferierten sowie seit 9 Jahren ausgeübten Webprogrammiersprache PHP, mit welcher man so schöne Skripte wie dieses Blog hier “zusammenschustern” kann.

Einer bleibt bei mir Zuhause, einer kommt ins Büro und einer wird an nen Kollegen verschenkt. Ob der dann auch im Büro wohnt oder dem Söhnchen zum Spielen gegeben wird weiß ich noch nicht.

In der Hoffnung, dass sie mir kreative und kluge Momente beim Programmieren und Entwickeln bescheren. Hihi .. die Viecher sind so drollig und gucken so schön “komisch”. Da kommt der kleine Junge in mir hoch und freut sich :-)

Hier gibts noch hunderte von den Kameraden zum Beschauen ..