Typo3 cms-6-0-die-neuerungen

  • Published on
    19-Jun-2015

  • View
    1.059

  • Download
    2

Embed Size (px)

Transcript

<ul><li> 1. TYPO3 CMS 6.0 Die Neuerungen 27.11.2012TYPO3Patrick Lobacher (GF typovision GmbH)(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 1</li></ul><p> 2. TYPO3 CMS 6.0 Back to the Future(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 2 3. TYPO3 CMS 6.0 Back to the FutureVerffentlicht:TYPO3 6.0.0 / 27.11.2012Release Team:Helmut Hummel (Release Manager) Susanne Moog Christian KuhnHauptziele:Mitarbeit frdern und untersttzen Code-Qualitt verbessern File Abstraction Layer integrieren Benutzerfreundlichkeit steigern(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 3 4. SYSTEMVORAUSSETZUNGEN(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 4 5. INDEX File Abstraction Layer (6) API (74) Extension Manager (27) Interna (80) LocalConguration (32) Extbase &amp; Fluid (103) Allgemeines (37) Hooks (111) RTE (54) Deprecated Functions (116) TypoScript &amp; TScong (56) Upgrade (119) Namespaces (64) Quellen (122) Logging API (70) TYPO3 Branding (125)(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 5 6. FILE ABSTRACTION LAYERFAL(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 6 7. FAL ALLGEMEINES FAL: File Abstraction LayerDatei-Handling auf tiefer Ebene (ber DB) Wurde 2010 auf den Developer Days in Elmshorn gestartet Im Wesentlichen entwickelt von Benjamin Mack, Steffen Ritter, IngmarSchlecht und Andreas Wolf Ist/War Bestandteil des BLE-Projekts 2011 Ziele: Dateien nicht mehr ber Dateipfad referenzieren Datenspeicherung unabhngig von leadmin/ ermglichen Versionierung von Dateien Metadatenverwaltung (DAM light) Verbessertes User-Interface(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 7 8. FAL GRUNDKONZEPTE Keine Kopien - nur Referenzen Storages sind Speicherorte (Remote oder lokal) Driver agieren als Art des Speichers (WebDAV, Cloud, ...) Bilder als IRRE-Datenstze inkl. MetadatenBenutzungs-Schicht (Usage Layer) Dateireferenz (FileReference) Speicher-Schicht (Storage Layer)Datei/Verzeichnis Speicher (File/Folder Storage) Mount-Point Treiber-Schicht (Driver Layer)low-level interface Treiber (Driver)Systemcalls(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 8 9. FAL CE TEXT/BILD Integration in CE Text/Bild(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 9 10. FAL CE TEXT/BILD Integration in CE Text/Bild - Anlegen von Medien per IRRE - Drag und Drop - Meta-Daten Eingabe(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 10 11. FAL FILEADMIN Fileadmin Integration - Edit Metadata(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 11 12. FAL DRIVER FAL Driver (Treiber) spezizieren die Art des Speicherns vonDateien Lokal: Ist bereits in TYPO3 eingebaut WebDAV:http://forge.typo3.org/projects/show/extension-fal_webdav Amazon S3http://forge.typo3.org/projects/show/extension-fal_amazons3(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 12 13. FAL SCHEDULER JOB FAL Scheduler Job zum automatischen Indexieren von Dateien(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 13 14. FAL FILE COLLECTIONS 1 Anlegen von File Collections ber Systemdatensatz(Zwei Typen: Statisch und aus Folder)(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 14 15. FAL FILE COLLECTIONS 2 Referenzieren von File Collections z.B. aus File Links Content Objekt(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 15 16. FAL FILE STORAGE 1 Anlegen eines File Storages ber den gleichnamigen Systemdatensatz(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 16 17. FAL FILE STORAGE 2 / MOUNT Auswahl des File Storages z.B. im Filemount(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 17 18. FAL TECHNIK DB Es gibt 5 neue Tabellen fr die Verwaltung von FAL sys_leReprsentiert alle Dateien, die von TYPO3 getracked werden - Dateien mit zustzlichen Metadaten sys_le_collectionReprsentation einer Liste von sys_le Datenstzen sys_le_processedleTemporre Daten, wie Thumbnails, Previews, ... sys_le_referenceBenutzung eines sys_le Eintrages irgendwo in der TYPO3-Installation - ist wie eine MM-Tabellezwischen sys_le und z.B. tt_content:image inkl. den zustzlichen Meta-Daten fr die Verwendung sys_le_storageDeniert einen Root-Zugang zu einem Datei-Speicher - hnlich einem Mount-Point. Jeder Storage istan einen Treiber gebunden (local, webdav, amazons3) und ist damit der Einstiegspunkt(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 18 19. FAL PROGRAMMIERUNG - BEISPIELE Programmierung: Datei kopieren$storageUid = 17;$someFileIdentifier = templates/images/banner.jpg;$someFolderIdentifier = website/images/;$storageRepository = TYPO3CMSCoreUtilityGeneralUtility::makeInstance(TYPO3CMSCoreRessourceStorageRepository);$storage = $storageRepository-&gt;getByUid($storageUid);// returns a t3lib_file_File object$file = $storage-&gt;getFile($someFileIdentifier);// returns a t3lib_file_File object$folder = $storage-&gt;getFolder($someFolderIdentifier);// returns the t3lib_file_File object of the new, copied file$file-&gt;copyTo($folder);// oder equivalent$folder-&gt;addCopyOfFile($file);(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 19 20. FAL PROGRAMMIERUNG - BEISPIELE Programmierung: Alle Dateien eines Verzeichnisses auslesen$storageRepository = TYPO3CMSCoreUtilityGeneralUtility::makeInstance(TYPO3CMSCoreRessourceStorageRepository);$availableStorages = $storageRepository-&gt;findAll();foreach($availableStorages as $storage) {$rootFolder = $storage-&gt;getRootFolder();$subFolders = $rootFolder-&gt;getSubFolders();foreach($subFolders as $subFolder) {$filesInSubFolder = $subFolder-&gt;getFiles();$foldersInSubFolder = $subFolder-&gt;getSubFolders();...}}(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 20 21. FAL STORAGE FILE API Programmierung: General APIgetPublicUrl(TYPO3CMSCoreResourceResourceInterface $fileOrFolder, $relativeToCurrentScript =FALSE)isPathValid($theFile)sanitizeFileName($fileName, $charset = )getAbsolutePath($file)getLowLevelFileInfo(TYPO3CMSCoreResourceFileInterface $file)hash(TYPO3CMSCoreResourceFileInterface $file, $hashAlgorithm)resourceExists($identifier)fileExists($identifier)fileExistsInFolder($fileName, TYPO3CMSCoreResourceFolder $folder)folderExists($identifier)folderExistsInFolder($folderName, TYPO3CMSCoreResourceFolder $folder)(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 21 22. FAL STORAGE FILE API Programmierung: Storage APIaddFile($localFilePath, TYPO3CMSCoreResourceFolder $targetFolder, $fileName, TYPO3CMSCoreResourceAbstractFile $updateFileObject = NULL)createFile($fileName, TYPO3CMSCoreResourceFolder $parentFolder)getFile($identifier)getFileList($path, $start = 0, $numberOfItems = 0, $useFilters = TRUE, $loadIndexRecords = TRUE)hasFile($identifier)getFileContents(TYPO3CMSCoreResourceFileInterface $file)setFileContents(TYPO3CMSCoreResourceFileInterface $file, $contents)deleteFile(TYPO3CMSCoreResourceFileInterface $file)copyFile(TYPO3CMSCoreResourceFileInterface $file, TYPO3CMSCoreResourceFolder$targetFolder, $targetFileName = NULL, $conflictMode = renameNewFile)copyFileWithinStorage(TYPO3CMSCoreResourceFileInterface $file, TYPO3CMSCoreResourceFolder $targetFolder, $fileName)copyFileToTemporaryPath(TYPO3CMSCoreResourceFileInterface $file)moveFile($file, $targetFolder, $targetFileName = NULL, $conflictMode = renameNewFile)moveFileWithinStorage(TYPO3CMSCoreResourceFileInterface $file, TYPO3CMSCoreResourceFolder $targetFolder, $fileName)renameFile(TYPO3CMSCoreResourceFileInterface $file, $newName)updateFile(TYPO3CMSCoreResourceAbstractFile $file, $identifier = , $storage = NULL)replaceFile(TYPO3CMSCoreResourceFileInterface $file, $localFilePath)getFileForLocalProcessing(TYPO3CMSCoreResourceFileInterface $fileObject, $writable = TRUE)getFileInfoByIdentifier($fileIdentifier)getFileInfo($identifier)getFilePermissions(TYPO3CMSCoreResourceFileInterface $file)(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 22 23. FAL STORAGE FOLDER API Programmierung: Folder APIgetRootLevelFolder()getDefaultFolder()createFolder($newFolderName, TYPO3CMSCoreResourceFolder $parentFolder)getFolderInFolder($name, TYPO3CMSCoreResourceFolder $parentFolder)moveFolderWithinStorage(TYPO3CMSCoreResourceFolder $folderToMove, TYPO3CMSCoreResourceFolder $targetFolder, $newFolderName)copyFolderWithinStorage(TYPO3CMSCoreResourceFolder $folderToCopy, TYPO3CMSCoreResourceFolder $targetFolder, $newFolderName)renameFolder(TYPO3CMSCoreResourceFolder $folder, $newName)deleteFolder(TYPO3CMSCoreResourceFolder $folder, $deleteRecursively = FALSE)isFolderEmpty(TYPO3CMSCoreResourceFolder $folder)getFolderPermissions(TYPO3CMSCoreResourceFolder $folder)isWithin(TYPO3CMSCoreResourceFolder $container, $content)(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 23 24. FAL TYPOSCRIPT File-Informationber getText data = file:[UID|current]:[fieldName] kannentweder auf eine sys_le UID oder auf das aktuelle Element (bercurrent) zugegriffen werden. Anschlieend wird der Feldname notiert,den man auslesen will.page.10.data = file:current:titleoderpage.10.data = file:17:title(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 24 25. FAL TYPOSCRIPT: BEISPIEL cObject FILES20 = FILES20 { references {table = pagesuid.data = page:uidfieldName = media } # oder: sys_file_references mit UID 27 references = 27 # UIDs aus sys_filespage.10 = FILES files = 12,14,15page.10.files = 12,15,16 # Mit stdWrap page.10.collections = 2,9 files.field = some_fieldpage.10.folders = 1:mypics/ collections.field = file_collectionspage.10.renderObj = TEXT page.10.renderObj { folders.field = select_key data = file:current:sizewrap = </p> <p>File size:|</p> <p> renderObj = COA } renderObj {10 = IMAGE10 { file.import.data = file:current:originalUid // file:current:uid file.width = 150 ...}}(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 25 26. FAL TYPOSCRIPT: REFERENZ cObject FILES files (stdWrap)Laden von Dateien aus sys_le - angegeben wird eine kommaseparierte Liste von UIDs referencesErmittelt alle Referenzen eines Feldes (vom Typ IRRE mit sys_le_referenceals Kind).Man kann entweder die UID direkt angeben, oder mittels table,uidundfieldName arbeiten. references.table (stdWrap)Speziziert die Tabelle, aus der die Referenz ermittelt wird (z.B. tt_content oder pages) references.uid (stdWrap)Gibt die UID des Datensatzes an, aus welchem die Referenz ermittelt wird (z.B. Seite mir UID 7)Hier ist auch stdWrap mglich: uid.data = page:uid) references.fieldName (stdWrap)Feldname fr die Ermittlung der Referenzen collections (stdWrap)Kommaseparierte Liste von sys_le_collection UIDs folders (stdWrap)Kommaseparierte Liste von Folder-Identier: [storageUid]:[folderIdentier] (2:mypics/,4:myimages/)storageUid = UID des Storages (sys_le_storage) / folderIdentier = Relativer Pfad renderObject (cObject +optionSplit)Rendering eines jeden Files. Infos ber file und current: z.B. data = file:current:... stdWrap (-&gt; stdWrap)(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 26 27. EXTENSION MANAGEREM die Dritte :-)(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 27 28. EXTENSION MANAGER Der Extension Manager wurde komplett neu auf Basis von Extbase geschrieben.Dabei wurde dieser auch deutlich verschlankt. Sprachenbehandlung =&gt; Wurde in eine eigene Extension (lang) ausgelagert Editieren von Dateien =&gt; Kann durch andere Extensions durchgefhrt werden Upload extension ins TER =&gt; Wurde (Wird) in die Extension extdevevalintegriert (Stand 27.11.2012 noch nicht im TER) Die zugehrigen Tabellen in der Datenbank wurden verndert: ALT:sys_tercache_extensions NEU:tx_extensionmanager_domain_model_extensiontx_extensionmanager_domain_model_repository(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 28 29. EXTENSION MANAGER Alle Aktionen sind klar gekennzeichnet Manueller Upload links oben(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 29 30. EXTENSION MANAGER Remote Update erfolgt automatisch - manuell durch Klick rechts oben(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 30 31. EXTENSION MANAGER Alle Versionen einer Extension durch Klick auf Show all versions(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 31 32. LOCALCONFIGURATION Ersatz fr die localconf.php(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 32 33. LOCALCONFIGURATION 1 Die Datei typo3conf/localconf.php wird abgelst Stattdessen gibt es nun die neue Datei typo3conf/LocalConfiguration.php Diese Datei gibt lediglich ein Kongurations-Array zurck Sobald die Konguration verndert wird (beispielsweise durch denExtensionmanager), wird diese Datei komplett neu geschrieben Daher ist kein eigener Code mehr in dieser Datei erlaubt (keine PHP-Logik) Um aber eine Erweiterung dieses Codes in einer Instanz zu erlauben, kanndieser in der Datei typo3conf/AdditionalConfiguration.php platziertwerden, die durch den neuen Bootstrapper direkt hinter derLocalConfiguration.php ausgefhrt wird. Ein Upgrade Wizard berfhrt die alte localconf.php Datei in das neue Schema(c) 2012 - typovision GmbH | TYPO3 CMS 6.0 - Die Neuerungen | Patrick Lobacher | www.typovision.de | 27.11.2012 33 34. LOCALCONFIGURATION 2 Aufbau der Datei LocalConguration.php return array( BE =&gt; array( disable_exec_function =&gt; 0, ... ), DB =&gt; array( database =&gt; typo360b1, ... ), EXT =&gt; array( extConf =&gt; array( au...</p>