Erzeugung der ExtBase Dokumentation mit FOP
Für alle, die sich genau so sehnlich wie ich eine Dokumentation zu ExtBase wünschen, habe ich versucht, mit Hife von FOP (FormattingObjectsProcessor) die vorhandene DocBook Dokumentation zu rendern. Leider totaler Fehlschlag. Das XML validiert nicht und die Konvertierung fällt auf die Schnauze.
Netterweise hat mir Lars das Ganze unter Ubuntu gerendert (da scheint es kein Problem zu ein - manchmal könnte man echt auf Mac OS kacken...) - dabei kam das folgende PDF Dokument raus.
Hier also das Missing Manual zu ExtBase. Ich hoffe, dass die ExtBase Entwickler möglichst bald die Doku nachschieben und nicht nur das XML Dokument ausliefern, mit dem leider niemand was anfangen kann :-)
Extbase Dokumentation / Manual zum Download |
Sortierungsfehler von Seiteninhalten in T3Blog
Wird T3Blog in Verbindung mit TemplaVoila eingesetzt, kann es vorkommen, dass mehrere Seiteninhalte in einem Blog Beitrag nach dem Speichern eines anderen Beitrags völlig willkürlich umsortiert werden. Hier ist beschrieben, wie man diese Problem abstellt.
ExtBase Kochbuch 1
Teil 1: Wir lesen mit einem Repository Datensätze aus, die in einem bestimmten Sysfolder liegen. Dazu fügen wir folgende Methode in unser Repository ein (im Klartext: wir möchten alle Datensätze eines bestimmten Typs mit einer gegebenen Page-ID):
/** * Returns array of galleries for a given page id * * @param int $pageId * @return array Array of galleries for given page id */ public function findByPageId($pageId) { $query = $this->createQuery(); return $query->matching($query->equals('pid', $pageId)) Tx_Extbase_Persistence_QueryInterface::ORDER_DESCENDING)) ->execute(); }
Wichtig ist in dem Zusammenhang zu verstehen, was ExtBase mit der PID macht, in der die Datensätze liegen. Normalerweise greifen sowohl die findByUid() und findAll() Methoden des Repositories nur für die unter der Variable
plugin.tx_<extensionname> {
persistence {
storagePid = 6
}
}
konfigurierten PID. Das passiert aus dem Grund, dass das Repository ja nicht nur beim Lesen der Objekte, sondern auch beim Neuanlegen und Speichern wissen muss, wohin gespeichert wird.
Dieser Wert kann einmal über Typoscript mit oben genannter Benennung überschrieben werden, zum anderen aber auch über Flexform gesetzt werden, indem der selbe Schlüssel verwendet wird, wie im Typoscript!
Erste Schritte mit ExtBase
Mit Typo3 4.3 hat sich nicht nur optisch einiges an Typo3 geändert, für mich die wichtigste Neuerung ist der "Backport" von Teilen von Flow3 in die Typo3 4 Welt in Form von ExtBase. Damit hat Typo3 zum ersten Mal in seiner Geschichte ein MVC Framework für die Extension Entwicklung bekommen (gut, es gab nett gemeinte Versuche in der Vergangenheit und Fabrizio hat es mit pt_mvc sicherlich am weitesten gebracht...) aber vor allem das "M" in MVC hat sich bis jetzt eher versteckt.
Für den Einstieg in die neue Extension-Entwicklung habe ich mich jetzt mal ein paar Stunden hingesetzt (genau gesagt waren es ca. 2) und wollte die Domänen-Objekte und eine ersten, einfachen Controller mit einer View für meine Gallery Extension ausgeben. Nachdem der Kickstarter noch einige Zicken macht (man kann ihn derzeit nur auf Forge auschecken), war nach dem Kickstarten erst mal viel Handarbeit nötig, bis überhaupt mal was lief. Dazu der Tipp, sich zusätzlich das BlogExample auszuchecken und dann Stück für Stück Teile aus ext_localconf.php ext_tables.php und anderen Dateien in die eigene Extension zu übertragen.
Für alle, die interessiert, was ich da so treibe, habe ich meinen bisherigen Code mal auf Forge ins SVN gestellt, zum Auschecken bitte diese URL benutzen:
https://svn.typo3.org/TYPO3v4/Extensions/yag
Interessant dürfte vor allem die von-Hand-anzulegende Verzeichnisstruktur für die Templates sein (/Resources/Private/Layout, ../Templates) sowie die Grundeinstellungen für diese Verzeichnisse im TS (Configuration/Typoscript).
Mal sehen, wieviel Zeit ich finde, an der Extension weiterzuarbeiten, mein nächstes Ziel wäre es jetzt einfach mal ein paar Bilder auszugeben... viel Spaß beim Ausprobieren.
ENABLE_INSTALL_TOOL aus Typo3 heraus erstellen
Wollte man in Typo3 bisher das Install Tool aufrufen (beispielsweise nach einem Versions-Update), so musste man im typo3conf Verzeichnis eine Datei "ENABLE_INSTALL_TOOL" anlegen, über die einem das Backend erlaubte, das Install Tool zu öffnen. In einer der letzten Versionen wurde sogar das Alter der Datei geprüft und ggf. geblockt, wenn die Datei zu alt war.
Wenn man - so wie ich - zu faul ist, diese Datei über ein FTP-Programm oder die Konsole anzulegen, gibt es jetzt einen bequemen Weg, dies über die User-Settings zu machen. Der Screenshot zeigt, wie's geht. Wer's noch nicht wusste: Viel Spaß damit!



