TYPO3 LTS 8: Unterschied zwischen den Versionen
Aus Vosp.info
F (Diskussion | Beiträge) (→erste Schritte) |
F (Diskussion | Beiträge) |
||
Zeile 8: | Zeile 8: | ||
* https://www.thomaskieslich.de/blog/132-typo3-8-menues-mit-fluid-und-menuprocessor-erstellen/ | * 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 | * https://wwagner.net/typo3/eigene-rahmen-inhaltselemente-typo3-8-lts/ Eigene Rahmen für Inhaltselemente in TYPO3 8 LTS | ||
+ | |||
+ | == BackendLayouts == | ||
+ | * 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> | ||
+ | |||
+ | * 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> | ||
+ | |||
+ | <source lang=typoscript> | ||
+ | </source> | ||
= Extensions = | = Extensions = |
Version vom 8. Oktober 2017, 16:24 Uhr
Typo3 - TYPO3.CMS 7.6 Schnipsel
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
- 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'
);
- 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
}
# ....
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.
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/anclwhaasindex/Resources/Private/Layouts/Default.html => typo3conf/ext/anclwhaasindex/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>