TYPO3 - Distributions erstellen: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „== TYPO3 - Bootstrap Distribution (Version 8) == Die Distribution enthält * TypoScript für: Basisaufbau * PageTypoScript für '''Backend Layouts''' und '''Gr…“)
 
 
(5 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== TYPO3 - Bootstrap Distribution (Version 8) ==
+
Hinweis: Distributions enthalten eigentlich eine Anzahl von vorbereiteten Seiten. Eine Distribution ohne Seiten ist ein Sitepackage. Also sollte die Seite heißen:
 +
 
 +
== TYPO3 Sitepackage erstellen ==
 +
 
 +
Siehe auch ältere Version:
 +
[[TYPO3 - Distribution mit FLUID Templates erstellen]]
 +
== Links ==
 +
https://speakerdeck.com/benjaminkott/the-anatomy-of-typo3-sitepackages - Guter Einstieg, Pros, Conventions
 +
http://www.sitepackagebuilder.com/ (Package Builder)
 +
https://github.com/benjaminkott/example_package (Beispiel Package)
 +
https://github.com/benjaminkott/bootstrap_package
 +
*[[:File:example_package-master.zip]]
 +
*[[:File:bootstrap_package-master.zip]]
 +
 
 +
 
 +
== TYPO3 9 - Sitepackage ==
 +
=== Basic Structure ===
 +
Vieles benötigt man in der Regel nicht, aber wenn gehört es hier hin...
 +
<pre>
 +
Classes/ -> Controller, ViewHelpers
 +
Configuration/ -> TypoScript, PageTS, TCA
 +
Documentation/ -> Anleitung (reStructuredText Format)
 +
Initialisation/ -> Data / Assets for Fileadmin
 +
Resouces/ -> Templates, Images, CSS, JS, ...
 +
ext_conf_template.txt -> Konfiguration für Extension Manager
 +
ext_emconf.php -> Konfiguration der Extension (also des Package)
 +
ext_icon.png -> Extension Icon bis 64x64px
 +
ext_localconf.php -> Wird in FE und BE ausgeführt
 +
ext_tables.php -> Wird in BE ausgeführt
 +
ext_tables.sql -> Datenbank Tabellen
 
Die Distribution enthält
 
Die Distribution enthält
 
* TypoScript für: Basisaufbau
 
* TypoScript für: Basisaufbau
 
* PageTypoScript für '''Backend Layouts''' und '''Gridelements'''
 
* PageTypoScript für '''Backend Layouts''' und '''Gridelements'''
 +
</pre>
 +
==== Struktur des Classes Ordner ====
 +
<pre>
 +
Controller/ -> MVC Controller
 +
Domain/
 +
  Model/ -> MVC Domain Model
 +
    Repository/ -> Daten Repositories
 +
Hook/ -> Hooks für Manipulation der Core Funktionen
 +
ViewHelpers/ -> Custom Fluid View Helpers
 +
</pre>
 +
==== Struktur des PageTS Ordners ====
 +
PageTS/ -> PageTS ;-)
 +
  RTE.txt
 +
  TCEFORM.txt
 +
TCA/ -> TableContentArray = Definition für eigene Tabellen
 +
  Overrides/
 +
    tt_content.php -> um TCA von vorhandenen Tabellen (hier tt_content) zu überschreiben
 +
  tx_myext_record.php
 +
TypoScript/ -> Static TypoScript Templates
 +
  setup.txt
 +
  constants.txt
 +
.htaccess
 +
</pre>
 +
==== Resourcen ====
 +
<pre>
 +
Private/ -> Private geschützte Dateien
 +
  Languages/ -> XLIFF/XML Dateien für lokalisierte Labels
 +
  Layouts/ -> Hauptlayouts für die Views
 +
  Partials/ -> Parial Layouts
 +
  Templates/ -> Frontend Templates
 +
  .htaccess -> Schützen des privaten Ordners
 +
Public/ -> Öffentliche Files (Einbinden im Frontend)
 +
  Css/
 +
  Images/
 +
  JavaScript/
 +
</pre>
 +
== Funktionsweise einer Distribution ==
 +
=== Initialisierung ===
 +
==== Assets, Datensätze kopieren ====
 +
* Dateien aus dem Files Ordner werden nach fileadmin/extensionname/ kopiert.
 +
* Daten aus .t3d Dateien (Seitenbaum etc.) werden auf dem root level angelegt
 +
 +
== Minimales Sitepackage ==
 +
Was benötigt man für ein funktionierendes Package ?
 +
* Die Extension
 +
* Einbinden der CSS Styled Content
 +
* Basis TypoScript
 +
* Basis PageTS
 +
* Fluid Template
 +
* CSS Datei
 +
* JavaScript Datei
 +
 +
=== Extension Ordner und Dateien ===
 +
typo3conf/ext/example_package
 +
 +
Configuration
 +
Resources
 +
ext_emconf.php
 +
ext_icon.png
 +
ext_localconf.php
 +
ext_tables.php
 +
==== ext_emconf.php ====
 +
<pre>
 +
<?php
 +
 +
$EM_CONF[$_EXTKEY] = array(
 +
    'title' => 'Example Package',
 +
    'description' => '',
 +
    'category' => 'templates',
 +
    'version' => '1.0.0',
 +
    'state' => 'stable',
 +
    'clearcacheonload' => 1,
 +
    'author' => 'Benjamin Kott',
 +
    'author_email' => 'info@bk2k.info',
 +
    'author_company' => '',
 +
    'constraints' => array(
 +
        'depends' => array(
 +
            'typo3' => '7.6.0-8.99.99'
 +
        ),
 +
        'conflicts' => array(
 +
            'fluidpages' => '*',
 +
            'themes' => '*',
 +
        ),
 +
    ),
 +
);
 +
 +
</pre>
 +
==== ext_localconf.php ====
 +
Vorsicht mit Einträgen. Diese gelten global für alle Sites.
 +
<pre>
 +
<?php
 +
 +
if (!defined('TYPO3_MODE')) {
 +
    die('Access denied.');
 +
}
 +
 +
</pre>
 +
 +
==== ext_tables.php ====
 +
Hier kann man mit addStaticFile statische TypoScript Templates einbinden (die stehen dann in den Template Includes im Backend zur Verfügung.
 +
 +
<pre>
 +
<?php
 +
 +
if (!defined('TYPO3_MODE')) {
 +
    die('Access denied.');
 +
}
 +
 +
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
 +
    $_EXTKEY,                                      // Extension Key
 +
    'Configuration/TypoScript/CssStyledContent',    // Path to setup.txt and constants.txt
 +
    'Example Package - CSS Styled Content'          // Title in the selector box
 +
);
 +
 +
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
 +
    $_EXTKEY,                                      // Extension Key
 +
    'Configuration/TypoScript/FluidStyledContent',  // Path to setup.txt and constants.txt
 +
    'Example Package - Fluid Styled Content'        // Title in the selector box
 +
);
 +
</pre>
 +
 +
== Weitere Möglichkeiten ==
 +
=== PageTS ===
 +
Hier habe ich schon mehrere Möglichkeiten gesehen wo genau es eingebunden wird. Auf alle Fälle unterhalb des Configuration Ordner.
 +
 +
Im Site Package Tool wird z.B. die Datei:
 +
Configuration/TsConfig/Page/All.tsconfig
 +
Um darin auf die anderen PageTS Konfigurationen zu inkludieren:
 +
<pre>
 +
#
 +
# PageTS for gbbootstrap
 +
#
 +
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:gbbootstrap/Configuration/TsConfig/Page/RTE.tsconfig">
 +
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:gbbootstrap/Configuration/TsConfig/Page/TCEFORM.tsconfig">
 +
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:gbbootstrap/Configuration/TsConfig/Page/TCEMAIN.tsconfig">
 +
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:gbbootstrap/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts.tsconfig">
 +
 +
</pre>
 +
Dieses wird wiederum in  der ext_localconf.php geladen:
 +
<pre>
 +
/***************
 +
* PageTS
 +
*/
 +
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig('<INCLUDE_TYPOSCRIPT: source="FILE:EXT:' . $_EXTKEY . '/Configuration/TsConfig/Page/All.tsconfig">');
 +
</pre>
 +
=== constants.txt und setup.txt ===
 +
Nutze die Konstanten für wichtige Einstellmöglichkeiten und das Setup um wichtige Voreistellungen zu machen. Oft benötigt man auch Einstellungen für Extensions die man als Abhängigkeiten definiert.
 +
 +
Wichtige Einstellungen sind z.B.:
 +
* Abhängigkeiten zu Extensions (bootstrap_package)
 +
* Fluid Objekte
 +
* Backend Layout selection...
 +
* CSS und JS Files einbinden...

Aktuelle Version vom 25. April 2019, 10:31 Uhr

Hinweis: Distributions enthalten eigentlich eine Anzahl von vorbereiteten Seiten. Eine Distribution ohne Seiten ist ein Sitepackage. Also sollte die Seite heißen:

TYPO3 Sitepackage erstellen[Bearbeiten]

Siehe auch ältere Version:

TYPO3 - Distribution mit FLUID Templates erstellen

Links[Bearbeiten]

https://speakerdeck.com/benjaminkott/the-anatomy-of-typo3-sitepackages - Guter Einstieg, Pros, Conventions
http://www.sitepackagebuilder.com/ (Package Builder)
https://github.com/benjaminkott/example_package (Beispiel Package)
https://github.com/benjaminkott/bootstrap_package
*File:example_package-master.zip
*File:bootstrap_package-master.zip


TYPO3 9 - Sitepackage[Bearbeiten]

Basic Structure[Bearbeiten]

Vieles benötigt man in der Regel nicht, aber wenn gehört es hier hin...

Classes/ -> Controller, ViewHelpers
Configuration/ -> TypoScript, PageTS, TCA
Documentation/ -> Anleitung (reStructuredText Format)
Initialisation/ -> Data / Assets for Fileadmin
Resouces/ -> Templates, Images, CSS, JS, ...
ext_conf_template.txt -> Konfiguration für Extension Manager
ext_emconf.php -> Konfiguration der Extension (also des Package)
ext_icon.png -> Extension Icon bis 64x64px
ext_localconf.php -> Wird in FE und BE ausgeführt
ext_tables.php -> Wird in BE ausgeführt
ext_tables.sql -> Datenbank Tabellen
Die Distribution enthält
* TypoScript für: Basisaufbau
* PageTypoScript für '''Backend Layouts''' und '''Gridelements'''

Struktur des Classes Ordner[Bearbeiten]

Controller/ -> MVC Controller
Domain/
  Model/ -> MVC Domain Model
    Repository/ -> Daten Repositories
Hook/ -> Hooks für Manipulation der Core Funktionen
ViewHelpers/ -> Custom Fluid View Helpers

Struktur des PageTS Ordners[Bearbeiten]

PageTS/ -> PageTS ;-)

 RTE.txt
 TCEFORM.txt

TCA/ -> TableContentArray = Definition für eigene Tabellen

 Overrides/
   tt_content.php -> um TCA von vorhandenen Tabellen (hier tt_content) zu überschreiben
 tx_myext_record.php

TypoScript/ -> Static TypoScript Templates

 setup.txt
 constants.txt

.htaccess

Resourcen[Bearbeiten]

Private/ -> Private geschützte Dateien
  Languages/ -> XLIFF/XML Dateien für lokalisierte Labels
  Layouts/ -> Hauptlayouts für die Views
  Partials/ -> Parial Layouts
  Templates/ -> Frontend Templates
  .htaccess -> Schützen des privaten Ordners
Public/ -> Öffentliche Files (Einbinden im Frontend)
  Css/
  Images/
  JavaScript/

Funktionsweise einer Distribution[Bearbeiten]

Initialisierung[Bearbeiten]

Assets, Datensätze kopieren[Bearbeiten]

  • Dateien aus dem Files Ordner werden nach fileadmin/extensionname/ kopiert.
  • Daten aus .t3d Dateien (Seitenbaum etc.) werden auf dem root level angelegt

Minimales Sitepackage[Bearbeiten]

Was benötigt man für ein funktionierendes Package ?

  • Die Extension
  • Einbinden der CSS Styled Content
  • Basis TypoScript
  • Basis PageTS
  • Fluid Template
  • CSS Datei
  • JavaScript Datei

Extension Ordner und Dateien[Bearbeiten]

typo3conf/ext/example_package

Configuration
Resources
ext_emconf.php
ext_icon.png
ext_localconf.php
ext_tables.php

ext_emconf.php[Bearbeiten]

<?php

$EM_CONF[$_EXTKEY] = array(
    'title' => 'Example Package',
    'description' => '',
    'category' => 'templates',
    'version' => '1.0.0',
    'state' => 'stable',
    'clearcacheonload' => 1,
    'author' => 'Benjamin Kott',
    'author_email' => 'info@bk2k.info',
    'author_company' => '',
    'constraints' => array(
        'depends' => array(
            'typo3' => '7.6.0-8.99.99'
        ),
        'conflicts' => array(
            'fluidpages' => '*',
            'themes' => '*',
        ),
    ),
);

ext_localconf.php[Bearbeiten]

Vorsicht mit Einträgen. Diese gelten global für alle Sites.

<?php

if (!defined('TYPO3_MODE')) {
    die('Access denied.');
}

ext_tables.php[Bearbeiten]

Hier kann man mit addStaticFile statische TypoScript Templates einbinden (die stehen dann in den Template Includes im Backend zur Verfügung.

<?php

if (!defined('TYPO3_MODE')) {
    die('Access denied.');
}

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
    $_EXTKEY,                                       // Extension Key
    'Configuration/TypoScript/CssStyledContent',    // Path to setup.txt and constants.txt
    'Example Package - CSS Styled Content'          // Title in the selector box
);

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
    $_EXTKEY,                                       // Extension Key
    'Configuration/TypoScript/FluidStyledContent',  // Path to setup.txt and constants.txt
    'Example Package - Fluid Styled Content'        // Title in the selector box
);

Weitere Möglichkeiten[Bearbeiten]

PageTS[Bearbeiten]

Hier habe ich schon mehrere Möglichkeiten gesehen wo genau es eingebunden wird. Auf alle Fälle unterhalb des Configuration Ordner.

Im Site Package Tool wird z.B. die Datei:

Configuration/TsConfig/Page/All.tsconfig

Um darin auf die anderen PageTS Konfigurationen zu inkludieren:

#
# PageTS for gbbootstrap
#
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:gbbootstrap/Configuration/TsConfig/Page/RTE.tsconfig">
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:gbbootstrap/Configuration/TsConfig/Page/TCEFORM.tsconfig">
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:gbbootstrap/Configuration/TsConfig/Page/TCEMAIN.tsconfig">
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:gbbootstrap/Configuration/TsConfig/Page/Mod/WebLayout/BackendLayouts.tsconfig">

Dieses wird wiederum in der ext_localconf.php geladen:

 /***************
 * PageTS
 */
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig('<INCLUDE_TYPOSCRIPT: source="FILE:EXT:' . $_EXTKEY . '/Configuration/TsConfig/Page/All.tsconfig">');

constants.txt und setup.txt[Bearbeiten]

Nutze die Konstanten für wichtige Einstellmöglichkeiten und das Setup um wichtige Voreistellungen zu machen. Oft benötigt man auch Einstellungen für Extensions die man als Abhängigkeiten definiert.

Wichtige Einstellungen sind z.B.:

  • Abhängigkeiten zu Extensions (bootstrap_package)
  • Fluid Objekte
  • Backend Layout selection...
  • CSS und JS Files einbinden...