TYPO3 LTS 8: Unterschied zwischen den Versionen
F (Diskussion | Beiträge) (→upgrade von typo3 7.6) |
F (Diskussion | Beiträge) |
||
(35 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
+ | [[TYPO3 LTS 9]] | [[TYPO3 LTS 8]] | [[TYPO3.CMS 7.6 Schnipsel]] | [[Typo3]] | [[Typo3 Entwicklereinstellungen]] | [[Typo3 Endbenutzer Hilfe]] | ||
− | [[ | + | = Dokumentationen = |
+ | |||
+ | == erste Schritte == | ||
+ | * https://www.visionbites.de/blog/artikel/hands-on-typo3-7-lts-das-setup-des-enterprise-cms-mit-bootstrap-3.html | ||
+ | * https://www.thomaskieslich.de/blog/132-typo3-8-menues-mit-fluid-und-menuprocessor-erstellen/ | ||
+ | * https://wwagner.net/typo3/eigene-rahmen-inhaltselemente-typo3-8-lts/ Eigene Rahmen für Inhaltselemente in TYPO3 8 LTS | ||
+ | |||
+ | == BackendLayouts == | ||
+ | |||
+ | === page TSConfig === | ||
+ | |||
+ | * typo3conf/ext/ancext/Configuration/PageTS/ancextTSconfig.ts | ||
+ | <source lang=typoscript> | ||
+ | mod.web_layout.BackendLayouts { | ||
+ | ncsliderBELayoutKey { | ||
+ | title = mod.web_layout.BackendLayouts: ncslider | ||
+ | # icon = EXT:example_extension/Resources/Public/Images/BackendLayouts/default.gif | ||
+ | config { | ||
+ | backend_layout { | ||
+ | colCount = 1 | ||
+ | rowCount = 2 | ||
+ | rows { | ||
+ | 1 { | ||
+ | columns { | ||
+ | 1 { | ||
+ | name = ncslider | ||
+ | colPos = 1 | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | 2 { | ||
+ | columns { | ||
+ | 1 { | ||
+ | name = Inhalte | ||
+ | colPos = 2 | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | |||
+ | * typo3conf/ext/ancext/Configuration/TCA/Overrides/pages.php | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | |||
+ | \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile( | ||
+ | 'ancext', | ||
+ | 'Configuration/PageTS/ancextTSconfig.ts', | ||
+ | 'ancext special tsconfig' | ||
+ | ); | ||
+ | </source> | ||
+ | |||
+ | * jetzt kann im Backend bei den Einstellungen einer Seite unter Ressourcen das PageTS "ancext special tsconfig" eingebunden werden | ||
+ | |||
+ | === Typoscript === | ||
+ | |||
+ | * typo3conf/ext/ancext/Configuration/TypoScript/setup.ts | ||
+ | <source lang=typoscript> | ||
+ | # .... | ||
+ | page { | ||
+ | 10 = FLUIDTEMPLATE | ||
+ | 10 { | ||
+ | # file = EXT:ancext/Resources/Private/Templates/ancextindex.html | ||
+ | file.stdWrap.cObject = CASE | ||
+ | file.stdWrap.cObject { | ||
+ | key.data = pagelayout | ||
+ | default = TEXT | ||
+ | default.value = EXT:ancext/Resources/Private/Templates/ncDefault.html | ||
+ | pagets__ncsliderBELayoutKey = TEXT | ||
+ | pagets__ncsliderBELayoutKey.value = EXT:ancext/Resources/Private/Templates/ancextindex.html | ||
+ | } | ||
+ | # .... | ||
+ | </source> | ||
+ | |||
+ | * typo3conf/ext/ancext/ext_tables.php | ||
+ | <source lang=php> | ||
+ | \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript', 'ancext template'); | ||
+ | </source> | ||
+ | |||
+ | * jetzt kann im Backend bei einem Template einer Seite unter Enthält das TypoScript 'ancext template' eingebunden werden | ||
+ | |||
+ | = Extensions = | ||
+ | |||
+ | == CKEditor - Rich Text Editor - rte_ckeditor == | ||
+ | ist veraltet | ||
+ | htmlArea RTE rtehtmlarea 8.7.0 obsolete Local | ||
+ | |||
+ | ist der neue | ||
+ | CKEditor Rich Text Editor rte_ckeditor 8.7.6 stable System | ||
+ | |||
+ | zusätzliche Plugins | ||
+ | CKEditor Rich Text Editor Image Support rte_ckeditor_image 8.7.4 stable Local | ||
+ | |||
+ | |||
+ | * https://www.clickstorm.de/blog/der-neue-typo3-rte-ckeditor/ | ||
+ | ** https://docs.typo3.org/typo3cms/extensions/rte_ckeditor_image/ | ||
+ | |||
+ | * Achtung: | ||
+ | es muss | ||
+ | page.includeCSS.ancbootstrap = EXT:ancbootstrap/Resources/Public/Stylesheets/style.css | ||
+ | das css extra eingebunden werden, sonst passiert im frontend nichts | ||
+ | |||
+ | |||
+ | == tt_address == | ||
+ | 2 Änderungen damit die Bilder funktionieren (und nicht irgendwelche falsche Bilder angezeigt werden | ||
+ | |||
+ | <source lang=typoscript> | ||
+ | [constant] | ||
+ | plugin.tx_browser_pi1.templates.listview.image.0{ | ||
+ | FAL = disabled | ||
+ | file = tt_address.image | ||
+ | path = fileadmin/user_upload/ | ||
+ | default = | ||
+ | } | ||
+ | [/constant] | ||
+ | </source> | ||
+ | |||
+ | * https://typo3-browser-forum.de/fa/list_post/forum/typo3-browser-fragen/thema/wie-tt-addressimage-ausgeben/ | ||
+ | |||
+ | |||
+ | In TYPO3 8, in class.tx_ttaddress_pi1.php line 394, this MUST be: | ||
+ | |||
+ | <source lang=php> | ||
+ | 'data' => 'file:current:originalUid' | ||
+ | </source> | ||
+ | Otherwise no image will be shown. | ||
+ | |||
+ | * https://github.com/FriendsOfTYPO3/tt_address/issues/54 | ||
+ | |||
+ | == gridelements == | ||
+ | |||
+ | === gridelement hinzufügen @addGridelement === | ||
+ | |||
+ | * typo3conf/ext/ancextension/Configuration/FlexForms/Extensions/gridelements/Farbleitsystem.xml | ||
+ | |||
+ | <source lang=xml> | ||
+ | <?xml version="1.0" encoding="UTF-8"?> | ||
+ | |||
+ | <!-- @addGridelement --> | ||
+ | |||
+ | <T3DataStructure> | ||
+ | <ROOT type="array"> | ||
+ | <type>array</type> | ||
+ | <el type="array"> | ||
+ | <bgcolor> | ||
+ | <TCEforms> | ||
+ | <label>Hintergrundfarbe</label> | ||
+ | <config> | ||
+ | <type>select</type> | ||
+ | <items type="array"> | ||
+ | <numIndex index="0" type="array"> | ||
+ | <numIndex index="0">keins</numIndex> | ||
+ | <numIndex index="1"></numIndex> | ||
+ | </numIndex> | ||
+ | <numIndex index="2" type="array"> | ||
+ | <numIndex index="0">css Klasse ncCssClass hinzufügen</numIndex> | ||
+ | <numIndex index="1">ncCssClass</numIndex> | ||
+ | </numIndex> | ||
+ | </items> | ||
+ | <maxitems>1</maxitems> | ||
+ | <size>1</size> | ||
+ | </config> | ||
+ | </TCEforms> | ||
+ | </bgcolor> | ||
+ | </el> | ||
+ | </ROOT> | ||
+ | </T3DataStructure> | ||
+ | </source> | ||
+ | |||
+ | * typo3conf/ext/ancextension/Configuration/PageTS/Extensions/gridelements/gridelementsPageTS.ts | ||
+ | |||
+ | <source lang=typoscript> | ||
+ | tx_gridelements { | ||
+ | # TS Elemente haben Vorrang vor Datensätzen mit gleichen IDs | ||
+ | overruleRecords = 1 | ||
+ | |||
+ | setup { | ||
+ | 10 { | ||
+ | title = ncCols_34_14 | ||
+ | description = ncCols 3/4 1/4 | ||
+ | frame = 1 | ||
+ | # icon = EXT:ancextension/Resources/Public/Icons/Backend/Grids/Grid-Container.png | ||
+ | flexformDS = FILE:EXT:ancextension/Configuration/FlexForms/Extensions/gridelements/Farbleitsystem.xml | ||
+ | topLevelLayout = 0 | ||
+ | config { | ||
+ | colCount = 2 | ||
+ | rowCount = 1 | ||
+ | rows { | ||
+ | 1 { | ||
+ | columns { | ||
+ | 1 { | ||
+ | name = 3/4 links | ||
+ | colPos = 10 | ||
+ | } | ||
+ | 2 { | ||
+ | name = 1/3 rechts | ||
+ | colPos = 20 | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | * typo3conf/ext/ancextension/Configuration/TCA/Overrides/pages.php | ||
+ | |||
+ | <source lang=php> | ||
+ | <?php | ||
+ | |||
+ | \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile( | ||
+ | 'ancextension', | ||
+ | 'Configuration/PageTS/Extensions/gridelements/gridelementsPageTS.ts', | ||
+ | 'ancextension special tsconfig' | ||
+ | ); | ||
+ | </source> | ||
+ | |||
+ | * typo3conf/ext/ancextension/Configuration/TypoScript/Extensions/gridelements/GridElements.ts | ||
+ | |||
+ | #<source lang=typoscript> | ||
+ | ## loaded ts after install the ext:gridelements | ||
+ | #[userFunc = TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('gridelements')] | ||
+ | # <INCLUDE_TYPOSCRIPT: source="FILE:EXT:gridelements/Configuration/TypoScript/setup.ts" extensions="ts"> | ||
+ | #[global] | ||
+ | |||
+ | # @addGridelement | ||
+ | tt_content.gridelements_pi1.20.10.setup.10 < lib.gridelements.defaultGridSetup | ||
+ | tt_content.gridelements_pi1.20.10.setup.10 { | ||
+ | cObject = FLUIDTEMPLATE | ||
+ | cObject { | ||
+ | file = EXT:anclwhaasindex/Resources/Private/Templates/Extensions/gridelements/ncCols_34_14.html | ||
+ | } | ||
+ | } | ||
+ | |||
+ | tt_content.gridelements_view < tt_content.gridelements_pi1 | ||
+ | </source> | ||
+ | |||
+ | * typo3conf/ext/ancextension/Configuration/TypoScript/setup.ts | ||
+ | |||
+ | <source lang=typoscript> | ||
+ | <INCLUDE_TYPOSCRIPT: source="DIR:EXT:ancextension/Configuration/TypoScript/Extensions/gridelements" extensions="txt,ts"> | ||
+ | </source> | ||
+ | |||
+ | * typo3conf/ext/ancextension/Resources/Private/Templates/Extensions/gridelements/ncCols_34_14.html | ||
+ | |||
+ | <source lang=html> | ||
+ | <div class="ncCols_34_14 row <f:if condition="{data.flexform_bgcolor}!=''"> {data.flexform_bgcolor}</f:if>"> | ||
+ | <div class="col-md-9"> | ||
+ | <f:format.raw>{data.tx_gridelements_view_columns.10}</f:format.raw> | ||
+ | </div> | ||
+ | <div class="col-md-3"> | ||
+ | <f:format.raw>{data.tx_gridelements_view_columns.20}</f:format.raw> | ||
+ | </div> | ||
+ | </div> | ||
+ | |||
+ | </source> | ||
+ | |||
+ | === gridelement 8 CSS Klassen Layout & Frame und ID wieder nutzen können === | ||
+ | |||
+ | gridelement Erscheinungsbild > Layout des Inhaltselements > Layout und Frame wieder funktionsfähig machen (inkl. id=c{id}) | ||
+ | |||
+ | z.B. in | ||
+ | * typo3conf/ext/ancextension/Configuration/TypoScript/Extensions/gridelements/GridElements.ts | ||
+ | folgenden Typoscript wrap hinzufügen | ||
+ | |||
+ | <source lang=typoscript> | ||
+ | tt_content.gridelements_pi1.stdWrap.wrap = <div class="gridWrap frame-{field:frame_class} frame-layout-{field:layout}" id="c{field:uid}">|</div> | ||
+ | tt_content.gridelements_pi1.stdWrap.wrap.insertData = 1 | ||
+ | |||
+ | |||
+ | </source> | ||
+ | |||
+ | * Quellen | ||
+ | ** https://www.typo3.net/forum/thematik/zeige/thema/123423/ | ||
+ | ** http://www.typo3forum.net/discussion/79696/gridelements-typo3-8-7-1-und-fluid-styled-content-wrap | ||
+ | |||
+ | |||
+ | |||
+ | alternativ immer alles wrappen (wrapt dann aber alle anderen inhaltselemente doppelt) | ||
+ | |||
+ | <source lang=typoscript> | ||
+ | tt_content.stdWrap.dataWrap = <div class="allWrap frame-{field:frame_class} frame-layout-{field:layout}" id="c{field:uid}" style="background-color:green;">|</div> | ||
+ | </source> | ||
+ | * https://docs.typo3.org/typo3cms/extensions/cewrap/ | ||
+ | |||
+ | |||
+ | weitere sinn befreite wraps, beim versuch in den wraps ein else einzubauen | ||
+ | <source lang=typoscript> | ||
+ | ## wenn {field:layout} != ncContainerFluid dann folgender wrap - BOF | ||
+ | tt_content.gridelements_pi1.stdWrap.wrap = <div class="gridWrap frame-{field:frame_class} frame-layout-{field:layout}" id="c{field:uid}">|</div> | ||
+ | tt_content.gridelements_pi1.stdWrap.wrap.insertData = 1 | ||
+ | tt_content.gridelements_pi1.stdWrap.if.equals.field = layout | ||
+ | tt_content.gridelements_pi1.stdWrap.if.value = ncContainerFluid | ||
+ | tt_content.gridelements_pi1.stdWrap.if.negate = 1 | ||
+ | ## wenn {field:layout} != ncContainerFluid dann folgender wrap - EOF | ||
+ | |||
+ | |||
+ | # wenn {field:layout} != ncContainerFluid dann folgender wrap, ansonsten wrap nicht, aber gib inhalt aus - BOF | ||
+ | tt_content.gridelements_pi1.stdWrap.wrap = <div class="gridWrap frame-{field:frame_class} frame-layout-{field:layout}" id="c{field:uid}" style="background-color:green;">|</div> | ||
+ | tt_content.gridelements_pi1.stdWrap.wrap.insertData = 1 | ||
+ | tt_content.gridelements_pi1.stdWrap.wrap.if.equals.field = layout | ||
+ | tt_content.gridelements_pi1.stdWrap.wrap.if.value = ncContainerFluid | ||
+ | tt_content.gridelements_pi1.stdWrap.wrap.if.negate = 1 | ||
+ | # wenn {field:layout} != ncContainerFluid dann folgender wrap, ansonsten wrap nicht, aber gib inhalt aus - EOF | ||
+ | </source> | ||
= upgrade von typo3 7.6 = | = upgrade von typo3 7.6 = | ||
− | + | == Grund Update / Installation == | |
* Datenbank backup | * Datenbank backup | ||
<source lang=bash> | <source lang=bash> | ||
Zeile 53: | Zeile 366: | ||
Argument 1 passed to TYPO3\CMS\Extensionmanager\Utility\InstallUtility::injectInstallToolSqlParser() must be an instance of TYPO3\CMS\Install\Service\SqlSchemaMigrationService, instance of TYPO3\CMS\Dbal\Service\SqlSchemaMigrationService given, called in /var/www/calmeyer.netz.coop/TYPO3.CMS/typo3/sysext/extbase/Classes/Object/Container/Container.php on line 233 | Argument 1 passed to TYPO3\CMS\Extensionmanager\Utility\InstallUtility::injectInstallToolSqlParser() must be an instance of TYPO3\CMS\Install\Service\SqlSchemaMigrationService, instance of TYPO3\CMS\Dbal\Service\SqlSchemaMigrationService given, called in /var/www/calmeyer.netz.coop/TYPO3.CMS/typo3/sysext/extbase/Classes/Object/Container/Container.php on line 233 | ||
+ | == Feinheiten in den Extensions == | ||
+ | |||
+ | === css_styled_content => fluid_styled_content === | ||
+ | * mit css_styled_content sieht mensch was, mit fluid_styled_content nahezu keine Inhalte | ||
+ | ** http://www.itfoo.de/web/wechsel-von-css-styled-content-zu-fluid-styled-content/ | ||
+ | * evt. entscheidend scheint zu sein: css_styled_content zu installieren und fluid_styled_content deinstallieren und dann wieder retour, zumindest danach ohne weitere Änderung funzt es | ||
+ | * https://docs.typo3.org/typo3cms/extensions/fluid_styled_content/7.6/Installation/Upgrading/Index.html | ||
− | |||
− | |||
− | |||
− | |||
* ERROR: Content Element with uid "2" and type "textmedia" has no rendering definition! | * ERROR: Content Element with uid "2" and type "textmedia" has no rendering definition! | ||
+ | |||
+ | ==== bei aktivieren von Seiten Content/Inhaltselemente kein Template ==== | ||
+ | * Layoutname darf nicht default heißen!!! | ||
+ | ** Layoutname muß mit einem Großbuchstaben anfangen, gefolgt von Kleinbuchstaben! | ||
+ | <source lang=html> | ||
+ | |||
+ | <!-- kein inhalt, kein layout, kein template ... mist --> | ||
+ | <f:layout name="Default" /> | ||
+ | |||
+ | |||
+ | <!-- alles gut !!!! --> | ||
+ | <f:layout name="Test" /> | ||
+ | |||
+ | </source> | ||
+ | |||
+ | * die Layout dateien müssen natürlich auch umbenannt werden! | ||
+ | typo3conf/ext/ancextension/Resources/Private/Layouts/Default.html | ||
+ | => | ||
+ | typo3conf/ext/ancextension/Resources/Private/Layouts/Test.html | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | * http://www.typo3forum.net/discussion/79977/typo3-8-7-css-styled-conetent-umstellen-auf-fluid-styled-content | ||
= Unterschiede zu vorigen Versionen = | = Unterschiede zu vorigen Versionen = | ||
Zeile 68: | Zeile 408: | ||
* https://docs.typo3.org/typo3cms/CoreApiReference/ExtensionArchitecture/ExtendingTca/StoringChanges/Index.html | * https://docs.typo3.org/typo3cms/CoreApiReference/ExtensionArchitecture/ExtendingTca/StoringChanges/Index.html | ||
* http://www.typo3forum.net/discussion/79689/typo3-cms-8-7-1-fehler-bei-den-modulen-protokoll-und-erweiterungen | * http://www.typo3forum.net/discussion/79689/typo3-cms-8-7-1-fehler-bei-den-modulen-protokoll-und-erweiterungen | ||
+ | * https://blog.plan2.net/2016/05/11/tca-konfiguration-und-der-typo3-cache/ | ||
Grundsätzlich müssen Befehle wie | Grundsätzlich müssen Befehle wie | ||
<source lang=php> | <source lang=php> |
Aktuelle Version vom 30. Juni 2020, 11:58 Uhr
TYPO3 LTS 9 | TYPO3 LTS 8 | TYPO3.CMS 7.6 Schnipsel | Typo3 | Typo3 Entwicklereinstellungen | Typo3 Endbenutzer Hilfe
Inhaltsverzeichnis
Dokumentationen
erste Schritte
- https://www.visionbites.de/blog/artikel/hands-on-typo3-7-lts-das-setup-des-enterprise-cms-mit-bootstrap-3.html
- https://www.thomaskieslich.de/blog/132-typo3-8-menues-mit-fluid-und-menuprocessor-erstellen/
- https://wwagner.net/typo3/eigene-rahmen-inhaltselemente-typo3-8-lts/ Eigene Rahmen für Inhaltselemente in TYPO3 8 LTS
BackendLayouts
page TSConfig
- typo3conf/ext/ancext/Configuration/PageTS/ancextTSconfig.ts
mod.web_layout.BackendLayouts {
ncsliderBELayoutKey {
title = mod.web_layout.BackendLayouts: ncslider
# icon = EXT:example_extension/Resources/Public/Images/BackendLayouts/default.gif
config {
backend_layout {
colCount = 1
rowCount = 2
rows {
1 {
columns {
1 {
name = ncslider
colPos = 1
}
}
}
2 {
columns {
1 {
name = Inhalte
colPos = 2
}
}
}
}
}
}
}
}
- typo3conf/ext/ancext/Configuration/TCA/Overrides/pages.php
<?php
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile(
'ancext',
'Configuration/PageTS/ancextTSconfig.ts',
'ancext special tsconfig'
);
- jetzt kann im Backend bei den Einstellungen einer Seite unter Ressourcen das PageTS "ancext special tsconfig" eingebunden werden
Typoscript
- typo3conf/ext/ancext/Configuration/TypoScript/setup.ts
# ....
page {
10 = FLUIDTEMPLATE
10 {
# file = EXT:ancext/Resources/Private/Templates/ancextindex.html
file.stdWrap.cObject = CASE
file.stdWrap.cObject {
key.data = pagelayout
default = TEXT
default.value = EXT:ancext/Resources/Private/Templates/ncDefault.html
pagets__ncsliderBELayoutKey = TEXT
pagets__ncsliderBELayoutKey.value = EXT:ancext/Resources/Private/Templates/ancextindex.html
}
# ....
- typo3conf/ext/ancext/ext_tables.php
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript', 'ancext template');
- jetzt kann im Backend bei einem Template einer Seite unter Enthält das TypoScript 'ancext template' eingebunden werden
Extensions
CKEditor - Rich Text Editor - rte_ckeditor
ist veraltet
htmlArea RTE rtehtmlarea 8.7.0 obsolete Local
ist der neue
CKEditor Rich Text Editor rte_ckeditor 8.7.6 stable System
zusätzliche Plugins
CKEditor Rich Text Editor Image Support rte_ckeditor_image 8.7.4 stable Local
- Achtung:
es muss
page.includeCSS.ancbootstrap = EXT:ancbootstrap/Resources/Public/Stylesheets/style.css
das css extra eingebunden werden, sonst passiert im frontend nichts
tt_address
2 Änderungen damit die Bilder funktionieren (und nicht irgendwelche falsche Bilder angezeigt werden
[constant]
plugin.tx_browser_pi1.templates.listview.image.0{
FAL = disabled
file = tt_address.image
path = fileadmin/user_upload/
default =
}
[/constant]
In TYPO3 8, in class.tx_ttaddress_pi1.php line 394, this MUST be:
'data' => 'file:current:originalUid'
Otherwise no image will be shown.
gridelements
gridelement hinzufügen @addGridelement
- typo3conf/ext/ancextension/Configuration/FlexForms/Extensions/gridelements/Farbleitsystem.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- @addGridelement -->
<T3DataStructure>
<ROOT type="array">
<type>array</type>
<el type="array">
<bgcolor>
<TCEforms>
<label>Hintergrundfarbe</label>
<config>
<type>select</type>
<items type="array">
<numIndex index="0" type="array">
<numIndex index="0">keins</numIndex>
<numIndex index="1"></numIndex>
</numIndex>
<numIndex index="2" type="array">
<numIndex index="0">css Klasse ncCssClass hinzufügen</numIndex>
<numIndex index="1">ncCssClass</numIndex>
</numIndex>
</items>
<maxitems>1</maxitems>
<size>1</size>
</config>
</TCEforms>
</bgcolor>
</el>
</ROOT>
</T3DataStructure>
- typo3conf/ext/ancextension/Configuration/PageTS/Extensions/gridelements/gridelementsPageTS.ts
tx_gridelements {
# TS Elemente haben Vorrang vor Datensätzen mit gleichen IDs
overruleRecords = 1
setup {
10 {
title = ncCols_34_14
description = ncCols 3/4 1/4
frame = 1
# icon = EXT:ancextension/Resources/Public/Icons/Backend/Grids/Grid-Container.png
flexformDS = FILE:EXT:ancextension/Configuration/FlexForms/Extensions/gridelements/Farbleitsystem.xml
topLevelLayout = 0
config {
colCount = 2
rowCount = 1
rows {
1 {
columns {
1 {
name = 3/4 links
colPos = 10
}
2 {
name = 1/3 rechts
colPos = 20
}
}
}
}
}
}
}
}
- typo3conf/ext/ancextension/Configuration/TCA/Overrides/pages.php
<?php
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile(
'ancextension',
'Configuration/PageTS/Extensions/gridelements/gridelementsPageTS.ts',
'ancextension special tsconfig'
);
- typo3conf/ext/ancextension/Configuration/TypoScript/Extensions/gridelements/GridElements.ts
## loaded ts after install the ext:gridelements #[userFunc = TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('gridelements')] # <INCLUDE_TYPOSCRIPT: source="FILE:EXT:gridelements/Configuration/TypoScript/setup.ts" extensions="ts"> #[global] # @addGridelement tt_content.gridelements_pi1.20.10.setup.10 < lib.gridelements.defaultGridSetup tt_content.gridelements_pi1.20.10.setup.10 { cObject = FLUIDTEMPLATE cObject { file = EXT:anclwhaasindex/Resources/Private/Templates/Extensions/gridelements/ncCols_34_14.html } } tt_content.gridelements_view < tt_content.gridelements_pi1
- typo3conf/ext/ancextension/Configuration/TypoScript/setup.ts
<INCLUDE_TYPOSCRIPT: source="DIR:EXT:ancextension/Configuration/TypoScript/Extensions/gridelements" extensions="txt,ts">
- typo3conf/ext/ancextension/Resources/Private/Templates/Extensions/gridelements/ncCols_34_14.html
<div class="ncCols_34_14 row <f:if condition="{data.flexform_bgcolor}!=''"> {data.flexform_bgcolor}</f:if>">
<div class="col-md-9">
<f:format.raw>{data.tx_gridelements_view_columns.10}</f:format.raw>
</div>
<div class="col-md-3">
<f:format.raw>{data.tx_gridelements_view_columns.20}</f:format.raw>
</div>
</div>
gridelement 8 CSS Klassen Layout & Frame und ID wieder nutzen können
gridelement Erscheinungsbild > Layout des Inhaltselements > Layout und Frame wieder funktionsfähig machen (inkl. id=c{id})
z.B. in
- typo3conf/ext/ancextension/Configuration/TypoScript/Extensions/gridelements/GridElements.ts
folgenden Typoscript wrap hinzufügen
tt_content.gridelements_pi1.stdWrap.wrap = <div class="gridWrap frame-{field:frame_class} frame-layout-{field:layout}" id="c{field:uid}">|</div>
tt_content.gridelements_pi1.stdWrap.wrap.insertData = 1
- Quellen
alternativ immer alles wrappen (wrapt dann aber alle anderen inhaltselemente doppelt)
tt_content.stdWrap.dataWrap = <div class="allWrap frame-{field:frame_class} frame-layout-{field:layout}" id="c{field:uid}" style="background-color:green;">|</div>
weitere sinn befreite wraps, beim versuch in den wraps ein else einzubauen
## wenn {field:layout} != ncContainerFluid dann folgender wrap - BOF
tt_content.gridelements_pi1.stdWrap.wrap = <div class="gridWrap frame-{field:frame_class} frame-layout-{field:layout}" id="c{field:uid}">|</div>
tt_content.gridelements_pi1.stdWrap.wrap.insertData = 1
tt_content.gridelements_pi1.stdWrap.if.equals.field = layout
tt_content.gridelements_pi1.stdWrap.if.value = ncContainerFluid
tt_content.gridelements_pi1.stdWrap.if.negate = 1
## wenn {field:layout} != ncContainerFluid dann folgender wrap - EOF
# wenn {field:layout} != ncContainerFluid dann folgender wrap, ansonsten wrap nicht, aber gib inhalt aus - BOF
tt_content.gridelements_pi1.stdWrap.wrap = <div class="gridWrap frame-{field:frame_class} frame-layout-{field:layout}" id="c{field:uid}" style="background-color:green;">|</div>
tt_content.gridelements_pi1.stdWrap.wrap.insertData = 1
tt_content.gridelements_pi1.stdWrap.wrap.if.equals.field = layout
tt_content.gridelements_pi1.stdWrap.wrap.if.value = ncContainerFluid
tt_content.gridelements_pi1.stdWrap.wrap.if.negate = 1
# wenn {field:layout} != ncContainerFluid dann folgender wrap, ansonsten wrap nicht, aber gib inhalt aus - EOF
upgrade von typo3 7.6
Grund Update / Installation
- Datenbank backup
# export
mysqldump --single-transaction --default-character-set=utf8 -u _username_ -p _databasename_ > mysql.yyyymmdd.sql
- Datenbankbackup und Installationsdateien auf einen neuen Server schieben, auf dem php7 läuft
- Datenbank import
# import
mysql -u _username_ -p _databasename_ < mysql.yyyymmdd.sql
- Source Code aktualisieren und fürs Webbackend Upgrade vorbereiten
cd TYPO3.CMS
git pull
git checkout -b 8.7.4 8.7.4
error: Your local changes to the following files would be overwritten by checkout:
composer.lock
Please commit your changes or stash them before you switch branches.
Aborting
mv composer.lock composer.lock_20170810
git checkout -b 8.7.4 8.7.4
Switched to a new branch '8.7.4'
composer update
touch typo3conf/ENABLE_INSTALL_TOOL
- im Browser im Installtool den Upgrade-Wizard ausführen https://domain.tld/typo3/sysext/install/Start/Install.php
(ext:rtehtmlarea)
- -compatibility7
Probleme mit fluid_styled_content
- -compatibility6
Core: Exception handler (WEB): Uncaught TYPO3 Exception: Call to a member function push() on null
- -adodb&dbal
Oops, an error occurred! Argument 1 passed to TYPO3\CMS\Extensionmanager\Utility\InstallUtility::injectInstallToolSqlParser() must be an instance of TYPO3\CMS\Install\Service\SqlSchemaMigrationService, instance of TYPO3\CMS\Dbal\Service\SqlSchemaMigrationService given, called in /var/www/calmeyer.netz.coop/TYPO3.CMS/typo3/sysext/extbase/Classes/Object/Container/Container.php on line 233
Feinheiten in den Extensions
css_styled_content => fluid_styled_content
- mit css_styled_content sieht mensch was, mit fluid_styled_content nahezu keine Inhalte
- evt. entscheidend scheint zu sein: css_styled_content zu installieren und fluid_styled_content deinstallieren und dann wieder retour, zumindest danach ohne weitere Änderung funzt es
- https://docs.typo3.org/typo3cms/extensions/fluid_styled_content/7.6/Installation/Upgrading/Index.html
- ERROR: Content Element with uid "2" and type "textmedia" has no rendering definition!
bei aktivieren von Seiten Content/Inhaltselemente kein Template
- Layoutname darf nicht default heißen!!!
- Layoutname muß mit einem Großbuchstaben anfangen, gefolgt von Kleinbuchstaben!
<!-- kein inhalt, kein layout, kein template ... mist -->
<f:layout name="Default" />
<!-- alles gut !!!! -->
<f:layout name="Test" />
- die Layout dateien müssen natürlich auch umbenannt werden!
typo3conf/ext/ancextension/Resources/Private/Layouts/Default.html => typo3conf/ext/ancextension/Resources/Private/Layouts/Test.html
Unterschiede zu vorigen Versionen
extbase
Extensions change TCA in ext_tables.php Check for ExtensionManagementUtility and $GLOBALS["TCA"].
- https://docs.typo3.org/typo3cms/CoreApiReference/ExtensionArchitecture/ExtendingTca/StoringChanges/Index.html
- http://www.typo3forum.net/discussion/79689/typo3-cms-8-7-1-fehler-bei-den-modulen-protokoll-und-erweiterungen
- https://blog.plan2.net/2016/05/11/tca-konfiguration-und-der-typo3-cache/
Grundsätzlich müssen Befehle wie
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript', 'ancbootstrap');
aus der
ext_tables.php
raus und in die
Configuration/TCA/Overrides/sys_template.php
fluid
f:if
<f:if condition="{var} == 'something'">
<f:then>do something</f:then>
<f:else if="{other-var} == 'something else'">do something else</f:else>
<f:else>do the other thing</f:else>
</f:if>
<f:if condition="{something} || {someOtherThing}">
Something or someOtherThing
</f:if>