TYPO3 LTS 8: Unterschied zwischen den Versionen
Aus Vosp.info
F (Diskussion | Beiträge) (→gridelement hinzufügen @addGridelement) |
F (Diskussion | Beiträge) (→gridelement Erscheinungsbild > Layout des Inhaltselements > Layout und Fram wieder funktionsfähig machen (inkl. id=c) |
||
Zeile 267: | Zeile 267: | ||
</source> | </source> | ||
− | === gridelement Erscheinungsbild > Layout des Inhaltselements > Layout und Fram wieder funktionsfähig machen (inkl. id=c === | + | === gridelement Erscheinungsbild > Layout des Inhaltselements > Layout und Fram wieder funktionsfähig machen (inkl. id=c{id}) === |
z.B. in | z.B. in |
Version vom 17. Oktober 2017, 12:39 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
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 Erscheinungsbild > Layout des Inhaltselements > Layout und Fram 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
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>