|
|
| (36 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
| Zeile 1: |
Zeile 1: |
| = Extension allgemein =
| | [[typo3]] |
|
| |
|
| * eine Extension kann mehrere Plugins haben die als Inhaltselemente auf eine Typo3 Seite hinzugefügt werden können
| | = Installation = |
|
| |
|
| = Typo3 V4.3 < * < V5 =
| | <source lang="bash"> |
| | | curl -s https://getcomposer.org/installer | php |
| durch die Extensions extbase und fluid läßt sich schon ab typo3 V4.3 zukunftsicher für typo3 V5 entwickeln!
| | php composer.phar create-project --dev --keep-vcs typo3/flow-base-distribution Quickstart 2.0.0-beta1 |
| | | cd Quickstart/ |
| Aktivierung der schon vorhandenen Extensions im Erweiterungsmanager
| | ./flow core:setfilepermissions sn www-data www-data |
| * extbase - löst pi_base Klasse ab
| |
| ** MVC Framework (von flow3) für domainorientierte Erweiterungen
| |
| * fluid
| |
| ** template engine
| |
| * extension_builder
| |
| ** der neue kickstarter für extbase/fluid ...
| |
| | |
| = FLOW3 und Extbase =
| |
| | |
| '''Charakteristia'''
| |
| | |
| * FLOW3 hingegen verwendet einen 128-Bit-Hexadezimalzahl als Kennzeichner. Tatsächlich ist die Implementierung eines solchen Identifikators dem Entwickler überlassen, solange die Eindeutigkeit gewährleistet ist.
| |
| | |
| * '''Convention over Configuration''' - Konvention steht über Konfiguration
| |
| ** vieles ergibt sich aus der gleichen Namensbildung z.B. Klassennamen ähnlich wenn nicht gleich Tabellennamen
| |
| ** die Verzeichnisstruktur einer Erweiterung muss die Namensräume der Klassen widerspiegeln und umgekehrt.
| |
| ** ZB aus der Klassenbezeichnung ergibt sich die Ordnerstruktur Tx_extensionname_Controller_MyProjektController => ext/extensionname/Controller/MyProjektController.php
| |
| * '''MVC'''
| |
| ** Daten'''m'''odell -- Anwenungsschicht; objektorientiert, Klassen werden in DB(Tabellen) abgebildet
| |
| ** '''V'''iew
| |
| ** '''C'''ontroller
| |
| * '''Reflection API'''
| |
| ** Herrausfinden eines Datentyps, Parametertyp anhand der Kommentare: also WICHTIG: Typen angeben in Form von @param int $var ansonsten im Zweifel Fehler!!!
| |
| | |
| = Verzeichnisstruktur =
| |
| klare Verzeichnisstruktur ergibt Klassennamenstruktur, etc
| |
| | |
| * '''Classes'''
| |
| ** '''''Controller''''' -- hier muss mindestens ein Controller sein
| |
| ** '''''Domain'''''
| |
| *** Model -- Klassen bilden das Datenmodel des MVC-Models
| |
| *** Repository
| |
| *** Validator
| |
| ** '''''Views''''' -- Objekte bilden die Präsentationsschicht des MVC-Models
| |
| ** '''''ViewHelpers''''' -- optional
| |
| | |
| * '''Configuration''' -- Konfigurationsdateien die noch nötig sind
| |
| ** '''''FlexForms'''''
| |
| ** '''''TCA''''' -- Table Configuration Array beschreibt das Verhalten der Datenbanktabellen
| |
| *** z.B die Datentypen inklusive Relationen zwischen Tabellen bzw Objekten
| |
| ** '''''TypoScript'''''
| |
| | |
| * '''Resources'''
| |
| ** '''''Private''''' -- die der Besucher nicht direkt lesen darf, evt. mit .htaccess zu schützen
| |
| *** Templates
| |
| *** Language
| |
| *** Layout
| |
| *** Partial
| |
| ** '''''Public''''' -- CSS, Images die Besucher direkt lesen dürfen
| |
| | |
| * '''ext_emconf.php'''
| |
| ** wird vom Extensionmanager gelesen
| |
| ** ''Informationen über Erweiterung, Versionsnummer, Autor, Einstellungen/Konflikte über Abhängigkeiten zu anderen Erweiterungen. ''
| |
| | |
| * '''ext_localconf.php'''
| |
| ** wird bei jedem Frontend-, Backendseitenaufruf gelesen
| |
| ** ''Konfiguration''
| |
| | |
| * '''ext_tables.php'''
| |
| ** Erweiterung der ext_loclconf.php zB. Datenbanktabelleninformation
| |
| | |
| * '''ext_tables.sql'''
| |
| ** Struktur der DB Tabellen
| |
| | |
| = fluid =
| |
| | |
| <source lang="html4strict">
| |
| <h2>{f:translate( key : 'customers' )}</h2>
| |
| <table>
| |
| <tr>
| |
| <th>{f:translate( key: 'customer.number' )}</th>
| |
| <th>{f:translate( key: 'customer.name' )}</th>
| |
| </tr>
| |
| <f:for each="{customers}" as="customer">
| |
| <tr>
| |
| <td>{customer.number.vorwahl} / {customer.number.hauptwahl}</td>
| |
| <td>{customer.name}</td>
| |
| </tr>
| |
| </f:for>
| |
| </table>
| |
| </source> | | </source> |
|
| |
|
| | | '''Quellen''' |
| <source lang="php">
| | * [http://docs.typo3.org/flow/TYPO3FlowDocumentation/Quickstart/Index.html flow Quickstart] |
| $view->assign('customer', $customer);
| | * [http://flow.typo3.org/download.html download Versionsnummer] |
| </source>
| |
| | |
| '''interne Übersetzung''' | |
| <source lang="html4strict"><td>{customer.number.vorwahl} / {customer.number.hauptwahl}</td></source>
| |
| =>
| |
| <source lang="html4strict"><td><?=$customer->getNumber()->getVorwahl()?> / <?=$customer->getNumber()->getHauptwahl()?></td></source>
| |
| | |
| = Quellen =
| |
| * [http://www.typo3lexikon.de/typo3-tutorials/extensions/fluid.html deutsches Fluid Tutorial] | |
| * [https://www.mittwald.de/fileadmin/downloads/pdf/dokus/Extbase_Fluid_Dokumentation.pdf ausführliche Extbase_Fluid_Dokumentation.pdf von mittwald]
| |
| * [http://wiki.typo3.org/Fluid Fluid englisches Fluid Tutorial] | |
typo3
Installation
curl -s https://getcomposer.org/installer | php
php composer.phar create-project --dev --keep-vcs typo3/flow-base-distribution Quickstart 2.0.0-beta1
cd Quickstart/
./flow core:setfilepermissions sn www-data www-data
Quellen