Apr 14

Während den T3DD12 in München war es ein ziemlicher K(r)ampf ein TYPO3v5 bzw. ein FLOW3 zum laufen zu bekommen, weshalb ich hier noch mal kurz die Stolpersteine nennen möchte die mir im Weg lagen und auf die entsprechenden Lösungen dafür. 🙂

Task #1: Installation aus dem git-Paket

Unter der URL http://git.typo3.org/Sites/Flow3Org.git kann man zwar alle Files sehen, ich konnte von dort aber nicht direkt clonen. Wie man im Wiki erfährt, kann man sich mit einem SSH-Zugang einloggen, wofür man einen Key benötigt. Wenn man den git.Pfad nun so anpasst wie dort beschrieben (ssh://<username>@git.typo3.org:29418/Sites/Flow3Org.git), dann kann man auch ohne Probleme clonen.

Ich habe bei mir MAMP installiert, was mir MySQL, PHP und Apache liefert. Wenn ich nun die heruntergeladene Seite im Apache öffne, dann kommt im Frontend die Meldung „No Page Found“, während das Backend mir einen 404 ausspuckt. Weiterlesen »

Feb 06

The MooTools JavaScript framework has a lot of nice methods, where store and retrieve are only two of them. The concept is a pretty simple one. I call it the „registry“. Every element may have properties which are also present in the DOM, like href, title and so on. But with MooTools, you have one more option to assign properties to elements which will NOT have a „physical“ representation in the DOM. For being able to identify one specific element in the DOM, a unique identifier is mandatory. As there is no such thing for every HTML element by default, they had to create one.

Technically, there is the id property, but not every element has to have it, so that is not the solution. Within the framework, there is a $uid method, which assigns an integer value to every element once MooTools is initialized (also for elements which are created dynamically later on). There is also a global counter value which increases the integer value and holds this „auto increment“ value. This is Native.UID.

So after that magic method has been called for every HTML element, each one has a „uid“ which can be obtained by myElement.uid. Sounds pretty easy and logic, right? Well, it is – except for forms. Guess what happens if an HTML form contains an input element with the name „uid“ and we want to store something at the form. You’re right: it crashes! Here’s why: The browser simply returns an input element instead of the integer value. Now imagine you have several forms of that kind and you want to submit them with the Form.Request class. It uses the occlusion pattern of the MooTools framework. Now as soon as one form has been sent that way, all the other forms will simply check if there is a request stored for input instead of their integer uid value. Thus: all the forms share the same request object and your application will crash!

Check out the exmaple page.

Okt 19

Although I did not expect it at the beginning of this project, I have to admin that this idea and especially this website failed. eSteak.net will go offline in February 2011 and will never come back. Fortunately there is a better alternative that you can use to do what esteak.net was also meant for: sharing your MooTools code.

As this domain costs me money and I did not see any growth on the platform, I will longer longer keep this thing alive. I had a great time building it and dealing with Symfony. I have learned a lot and I am sure the next project will be better because of the things I’ve seen and experienced with this baby.

The last upload and also the last user registration has been quite some time in the past, so I think no one of you will really miss this website. Bye bye!

Mrz 18

Ich habe mich neulich mal mit meiner Statistik beschäftigt und dabei festgestellt, dass meine Galerie tatsächlich schon auf einigen anderen Seiten verwendet wird. Zu meinem großen Erstaunen gibt es auch schon eine Erweiterung für das CMS TYPOlight! Diese habe ich dann auch schon ein Mal im Einsatz gefunden. Sollte es noch weitere Beispiele der Verwendung geben, würde ich mich auf jeden Fall über einen Hinweis freuen, damit ich mir das mal anschauen kann. Weiterlesen »

Mrz 16

Um eine Webseite attraktiv für den Benutzer zu machen bietet sich der Einbau von kleinen „Gimmicks“ an. Hierbei gilt es allerdings ein paar Dinge zu beachten. Zum einen sollte der Benutzer nicht zu sehr vom eigentlichen Inhalt der Webseite abgelenkt werden, zum anderen sollte die Webseite beim Fehlen des entsprechenden Gimmicks nicht eingeschränkt benutzbar sein, beispielsweise durch ein fehlendes Menü, oder ähnliches. Sprich, auch ohne JavaScript und Flash sollte die Seite weiterhin alle gewünschten Informationen bieten. Weiterlesen »

Mrz 15

Bei der Seite für das Geschäft meiner Familie, die ich gerade entwickle, wollte ich eine Lightbox verwenden. Die erste Extension die ich fand war kj_imagelightbox2, welche eigentlich genau das macht was ich wollte. Allerdings mit einigen Einschränkungen. Zum einen wollte ich gerne die auf MooTools basierende Slimbox verwenden, ergo auch MooTools und zum anderen verwende ich auf der Seite auch tt_news, was standardmäßig nicht unterstützt wird. Da man diese kleinen Mankos relativ einfach beheben kann und dadurch die Extension noch ein wenig flexibler wird, möchte hier meine Lösung posten. Weiterlesen »

Jan 26

Ich arbeite ja schon eine Weile mit an der Webseite aokplus-online.de und seit kurzem wurde der Auftritt der aok.de überarbeitet. Ich hatte bei der erstgenannten Seite auch keinerlei Einfluss auf das Layout, weswegen ich hier kurz meine Gedanken posten wollte um ein paar Kommentare dazu zu bekommen.

Getreu dem Motto „weniger ist mehr“ finde ich den Auftritt der aok.de klarer, übersichtlicher und farblich harmonischer. Außerdem empfinde ich das „Fehlen“ von Hintergründen hinter dem Text als angenehmer und vor allem auch besser lesbar, da dunkle Schrift auf hellem Grund dafür nun mal einfach besser geeignet ist. Weiterlesen »

Jan 26

Da ich während der Arbeit schon mehrmals auf das Problem gestoßen bin, würde ich es gerne hier skizzieren, damit sich jemand anders die Arbeit vielleicht nicht mehr machen muss. Das Problem ist folgendes: In einem TYPO3-Plugin soll die Seiten-ID ermittelt werden um sie weiterzuverwenden, zum Beispiel um Records eines bestimmten Typs aus der Datenbank zu laden die an dieser Seite hängen.

Unsaubererweise gibt es global verfügbare Variablen im TYPO3-Pluginkonstrukt, die diese Information enthalten. So kann über $GLOBALS[‚TSFE‘]->id die ID der aktuell AUFGERUFENEN Seite ermittelt werden. Das funktioniert so lange, bis es einen Unterschied macht, welche Seite aufgerufen und welche angezeigt wird. Es gibt zum Beispiel die Möglichkeit der internen Links (Shortcuts) oder auch die der Mountpoints (Seiteninhalt einer anderen Seite anzeigen). Kommt man auf so eine Seite, dann funktioniert die Methode von vorhin nicht, denn die Inhalte die angezeigt werden, liegen nicht auf der Seite die aufgerufen wurde. Dieses Manko lässt sich nun dadurch beheben, dass man einfach die Seiten-ID der Inhaltselemente abfragt: $this->cObj->data[‚pid‘] Das Array „data“ enthält alle Felder aus der Tabelle tt_content und damit auch die ID der Seite zu der das Element gehört.

Vielleicht ist das ja hilfreich wenn jemand sich mal fragt, warum diese IDs verschieden sind…

Dez 13

Da lese ich neulich die Ankündigung von etwas großartigem im MooTools-Twitter-Account und freue mich schon wie ein kleines Kind auf die neue Community und dann sowas. Tz! Aber von vorn. Letzte Woche kam wie gesagt über Twitter die Ankündigung, konnte ja nicht viel anderes als die neue Plugin-Base für MooTools-Scripten sein. Irgendwann in der Nacht ging sie dann auch online, sodass ich am nächsten Tag mal reinschnuppern konnte. Ist alles sehr klar strukturiert und übersichtlich aufgebaut. Es gibt Kategorien und Tags (allerdings keine echte Tagcloud), Autoren samt Gravatar, Plugins und so weiter. Weiterlesen »

Sep 17

Nachdem wahrscheinlich schon jeder den originalen Cartoon gesehen hat, habe ich noch eine andere Variante zusammengeklickt, die meiner Meinung nach in etwa sooft auftritt wie die mit dem schiefgegangenen Projekt-Management. Andere Meinungen? Ich bin gespannt… 🙂