TYPO3 LTS 8: Unterschied zwischen den Versionen

Aus Vosp.info
Wechseln zu:Navigation, Suche
(upgrade von typo3 7.6)
 
(43 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]]
  
[[Typo3]] - [[TYPO3.CMS 7.6 Schnipsel]]  
+
= 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 18: Zeile 331:
 
</source>
 
</source>
  
* Source Code aktualisieren
+
* Source Code aktualisieren und fürs Webbackend Upgrade vorbereiten
 
<source lang=bash>
 
<source lang=bash>
 
cd TYPO3.CMS
 
cd TYPO3.CMS
Zeile 36: Zeile 349:
  
 
composer update
 
composer update
 +
 +
touch typo3conf/ENABLE_INSTALL_TOOL
  
 
</source>
 
</source>
 +
 +
* 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
 +
** 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!
 +
 +
==== 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 =
 
== extbase ==
 
== extbase ==
 +
* http://lobacher.de/files/TYPO3-CMS-8.0-Die-Neuerungen-pluswerk.pdf
 +
 +
=== 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
 +
<source lang=php>
 +
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript', 'ancbootstrap');
 +
</source>
 +
aus der
 +
ext_tables.php
 +
raus und in die
 +
Configuration/TCA/Overrides/sys_template.php
 +
 
== fluid ==
 
== fluid ==
  

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

Dokumentationen

erste Schritte

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
  1. ## 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


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


(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


  • 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"].

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>

vorher TYPO3.CMS_7.6_Schnipsel#elseif