Kategorie: Extensionentwicklung
Wenn man viel mit eigenen Datensätzen im TYPO3-Backend arbeitet/arbeiten muss, endet oftmals die Vorstellungsgabe, wie das ganze auf den Seiten anschließend aussieht. Für „normalen“ Content hält TYPO3 das „Speichern & anschauen“-Icon parat, das nach dem Speichern gleich in einem neuen Fenster die Seite in der Frontendansicht zeigt. Aber für Datensätze? Noch dazu, wenn diese vielleicht nur in einem Ordner (Sysfolder) liegen? Mittels Hook lässt sich auch hier eine Lösung zusammenbauen. Steffen Müller hat in seinem Blog dazu geschrieben: http://www.t3node.com/blog/save-and-view-button-for-records-of-typo3-extensions/ Quellen: http://www.t3node.com/blog/save-and-view-button-for-records-of-typo3-extensions/ (als PDF-Backup)
Immer wieder stoßen wir Programmierer auf den Wunsch, Daten exportierbar bereitzustellen, damit sie vom Kunden am eigenen Rechner weiterverarbeitet werden können. Wirklich saubere Strukturen via SQL-Dump oder XML stoßen hierbei in der Regel auf große Augen und viiiiele Fragezeichen. Also wird auf einfache Strukturen runtergebrochen, die überall funktionieren: CSV. „Geht das nicht einfach als Excel-Datei?“ Durch das seltsame Eigenleben von Excel und eigentümliche Interpretation von CSV-Daten sind solche Dateien der Schmerz wohl jeden Programmierers (außerhalb Redmonds). Aber es gibt eine einfache Lösung.
TYPO3 ist toll, dass wissen wir ja 🙂 Es ist beruhiged zu wissen, dass Redakteure (fast) nichts kaputt machen können, weil ein Rollback der Datensätze möglich ist. Und es ist beruhigend über die hierfür zugrunde liegende History auch nachvollziehen zu können, wer wann was geändert hat. Diese Features funktionieren aber leider nur, wenn bei Änderung an Daten diese auch korrekt mitnotiert werden. Wie das relativ einfach mittels der Klasse tslib_TCEmain geht, erklärt Tolleiv in seinem Blog: Handling data in TYPO3 with tcemain. Und falls der Artikel/Blog verschwindet, hier noch die Sicherungskopie als PDF
Wer aufmerksam die Neuerungen der TYPO3-Versionen verfolgt, weiß, dass es seit Version 4.3 einen Hook gibt, über den die Darstellung von Inhaltselementen im Backend-Modul „Page“ beeinflusst werden kann. Interessant wird das vor allem bei eigenen Extensions, die ansonsten als Preview nur ihren Extensionnamen und ein einsames „CODE:“ ausgeben. Was ist zu tun, um den Hook zu nutzen?
RTFM – wenn denn wirklich eines da wäre… Viel zu oft trifft man auf TYPO3-Extensions – auch eigene – deren Dokumentation mit etwas Glück mager ausgefallen ist, oft aber schlicht nicht existiert. Dies ist ärgerlich, weil man dadurch im TER nur schwer abschätzen kann, ob eine vorhandene Extension die gesuchte Funktionalität bietet, und weil bei individuellen (Kunden-)Extensions nach gewisser Zeit oft Kollegen (und man selbst) auch nicht mehr so genau weiß, was die Extension tut, wie sie es tut oder warum sie es so tut. Aber warum dokumentieren wir so wenig? Mit ein paar wenigen Schritten und mit Vorlagen erleichtern...
Die Kombination von MaxOS 10.6 mit Netbeans und dem Wusnch, via SSH auf Subversion zuzugreifen, stellt einen vor einige Probleme: Netbeans sucht hier für nach /usr/libexec/ssh-askpass, das es aber nicht gibt svn+ssh mit Username+Passwort scheint die Kombination auch nicht zu mögen bzw. müsste das Passwort mit jedem Verzeichniswechsel erneut eingegeben werden. Mit einem kleinen Skript und Key-basierter Authetifizierung läuft es aber problemlos. Links: http://blog.retep.org/2009/04/09/ssh-askpass-on-osx-10-5/ Update Im MacOS (10.7) ist weiterhin ssh-askpass nicht zu finden, wo es manches Programm sucht. Inzwischen gibt es ein erweitertes Script samt Install-Script dafür. Links: https://github.com/markcarver/mac-ssh-askpass
ImageMagick ist ne feine Sache. Um die TYPO3-Methoden von ImageMagick zu verwenden, reicht es leider nicht, einfach die Klasse zu instanziieren, da eine elementare Klassenvariable (absPrefix) in diesem Fall leer bliebe. (Leider nirgends dokumentierte) Abhilfe schafft hier das nachträgliche Setzen der Variablen. Verfährt man nach folgendem Muster, stehen die ImageMagick-Methoden von TYPO3 auch in Backend-Modulen uneingeschränkt zur Verfügung: $strClassName = t3lib_div::makeInstance(‚t3lib_stdGraphic‘); $objGraphic = new $strClassName; $objGraphic->absPrefix = PATH_site;
Benni (Release Manager, TYPO3 4.4) hat in seinem Blog einen Artikel verfasst, um uns allen das Erstellen von Tasks für den neuen Scheduler (seit TYPO3 4.3) zu ermöglichen. Damit sollten irgendwelche händischen Cronjobs und vielleicht auch CLI-Skripte der Vergangenheit angehören. Update 2012-04-26: Der Artikel von Benni existiert leider nicht mehr, jedoch findet sich auch bei Stefan im Blog ein Tutorial. Achtung! Der Scheduler (bzw. genauer der Autoloader) scheint Probleme zu haben, wenn sich eine Extension im user_-Namespace befindet (obgleich das Extensions tun sollten, wenn sie nur für eine einzelne Installation erstellt sind). CSH – Context Sensitive Help für additionalFields Um...
Extensions sollten um horizontal zu skalieren, Caches nicht in eigens gebauten $_SESSION Arrays oder Temporaeren SQL Tabellen halten, sondern das ab TYPO3 4.3.0 eingebaute und ab 4.3.1 vollstaendig umgesetzte Caching Framework (ein Backport aus der FLOW3 Entwicklung) verwenden. Ein guter Artikel ist: Caching in Extensions http://danosipov.com/blog/?p=322 Bei der Entwicklung der Extensions ist natuerlich darauf zu achten, dass diese in der Form auch erst ab 4.3.1 korrekt arbeiten, und auf aelteren Installationen nicht funktionieren werden. In kurzen Auszuegen: In die ext_localconf.php folgendes hinzufuegen, wenn Memcached verwendet werden soll: // If cache is not already defined, define it if (!is_array($TYPO3_CONF_VARS[‚SYS‘][‚caching‘][‚cacheConfigurations‘][‚my_extension‘])) { $TYPO3_CONF_VARS[‚SYS‘][‚caching‘]...
Die Basis für Extensions in TYPO3 v5 wird das PHP-Framework FLOW3 und die Template-Engine Fluid bilden. Daher sollten langsam aber sicher Extension aufwärstkompartibel programmiert werden. Seit TYPO3 4.3 stehen mit den Extensions extbase und fluid die passenden Rahmenbedingungen bereit. Lesenswertes und weiterführende Infos: Extbase MVC Framework http://forge.typo3.org/wiki/typo3v4-mvc/Collection_of_Documentation Extbase-Dokumentation (130 Seiten) http://www.mittwald.de/extbase-dokumentation/