TYPO3 - Troubleshooting Version 8: Unterschied zwischen den Versionen
| Zeile 81: | Zeile 81: | ||
=== cHash und JavaScript Links === | === cHash und JavaScript Links === | ||
| − | Wenn man einen Link per JS zusammenbaut, dann hat man keine Möglichkeit den cHash mitzuschicken. | + | Wenn man einen Link per JS zusammenbaut, dann hat man keine Möglichkeit den cHash mitzuschicken. Sobald ein Plugin eine Action ausführt z.B. so: |
| − | + | https://www.self-storage4u.de/kontakt?tx_powermail_pi1%5Baction%5D=create&tx_powermail_pi1%5Bcontroller%5D=Form#c289 | |
| − | '''Möglichkeiten:''' | + | möchte Typo3 einen gültigen cHash. Man kann aber für alle Extensions diesen Check abschalten. In dem Beispiel z.B. im TypoScript |
| + | plugin.tx_powermail.features.requireCHashArgumentForActionArguments = 0 | ||
| + | |||
| + | '''Weitere Möglichkeiten:''' | ||
Ein eigenes Plugin für den (oder alle) AJAX-Request(s) zu bauen (z.B. Pi2) und dort den Check auszuschalten: | Ein eigenes Plugin für den (oder alle) AJAX-Request(s) zu bauen (z.B. Pi2) und dort den Check auszuschalten: | ||
plugin.tx_extkey_pi2.features.requireCHashArgumentForActionArguments = 0 | plugin.tx_extkey_pi2.features.requireCHashArgumentForActionArguments = 0 | ||
| − | + | Parameter aus dem cHash Check in der Konfiguration auschalten | |
| − | // für mehrere... | + | // für mehrere Parameter und Extensions... |
$GLOBALS['TYPO3_CONF_VARS']['FE']['cHashExcludedParameters'] = 'L, pk_campaign, pk_kwd, utm_source, utm_medium, utm_campaign, utm_term, utm_content,tx_extkey_pi1[myparameter]'; | $GLOBALS['TYPO3_CONF_VARS']['FE']['cHashExcludedParameters'] = 'L, pk_campaign, pk_kwd, utm_source, utm_medium, utm_campaign, utm_term, utm_content,tx_extkey_pi1[myparameter]'; | ||
// für einzelne Extensions | // für einzelne Extensions | ||
$GLOBALS['TYPO3_CONF_VARS']['FE']['cHashExcludedParameters'] .= ',tx_extkey_pi1[myparameter]'; | $GLOBALS['TYPO3_CONF_VARS']['FE']['cHashExcludedParameters'] .= ',tx_extkey_pi1[myparameter]'; | ||
Version vom 9. Januar 2020, 13:35 Uhr
FlashMessages in Fluid Templates
FlashMessages:renderMode funktioniert nicht mehr. Den Parameter renderMode aus Fluid Templates entfernen (ist jetzt immer im Mode div)
Beispiel
<ul class="typo3-flashMessages">
<f:for each="{flashMessages}" as="flashMessage">
<li class="alert {flashMessage.class}">
<h4>{flashMessage.title}</h4>
{flashMessage.message}
</li>
</f:for>
</ul>
</f:flashMessages>
Zugriff auf Settings in Fluid Templates klappt nicht mehr
TCA Konfiguration
http://t3-developer.com/1/ext-programmierung/basics/das-tca-im-detail/
Die Definition der Backend TableContentArray muss jetzt in eine eigene Datei statt in die ext_tables.php
Früher hat man in der ext_tables die crtl Section gehabt und darin eine Zeile wie:
'dynamicConfigFile' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath($_EXTKEY) . 'Configuration/TCA/Category.php',
In der Datei auf die Verwiesen wird hat man den Rest definiert. Jetzt legt man in
Configuration/TCA für jede Tabelle eine eigene Datei an: tx_meineextension_domain_model_meinetabelle.php
und definiert darin
// alle TCA Infos für die Tabelle return array( 'ctrl'=>(...), 'interface'=>, ... );
Die dynamicConfigFile Zeile muss ganz raus.
Deprecation: #70514 - dynamicConfigFile is deprecated
See Issue #70514 Description
The TCA configuration dynamicConfigFile within the ctrl section of a table has been marked as deprecated and must not be used any longer. Impact
Using dynamicConfigFile within the ctrl section of a table will trigger a deprecation log entry. Migration
The setting is typically used in ext_tables.php files of extensions. The table configuration (TCA) must be moved to an own file in Configuration/TCA/<table_name>.php. The dynamicConfigFile setting isn’t needed anymore since the whole TCA array definition is in this file.
Furthermore, any other TCA manipulation of third party tables must be moved to Configuration/TCA/Overrides and no TCA setting must remain in ext_tables.php. This is highly encouraged since TYPO3 CMS 6.2 already for performance reasons. If this change is not applied to extensions, extension compatibility6 must be loaded or further migration may not be applied to this portion of TCA leading to all sorts of possible issues.
Fluid in JavaScript funktioniert nicht mehr
Das Problem liegt daran, das der ViewHelper Parser die geschweiften Klammern erhalten möchte, er denkt das gehört zum JavaScript. Man muss ihn dazu bringen die Detection abzuschalten.
https://docs.typo3.org/m/typo3/guide-extbasefluid/master/en-us/Fluid/ThingsToKnow/JsAndInline.html
Bei mir hat es am Besten geholfen den ersten Wert so zu verpacken:
<f:format.raw>{settings.rows}</f:format.raw>
Für die restlichen hat es dann seltsamerweise auch funktioniert. Wahrscheinlich ist die detection dann ausgeschalten und er verhält sich wie früher.
cHash Probleme
http://typo3.3.n7.nabble.com/TYPO3-8-6-amp-cHash-empty-td287591.html https://github.com/einpraegsam/training/issues/2 https://docs.typo3.org/m/typo3/book-extbasefluid/master/en-us/b-ExtbaseReference/Index.html
Page Not Found Reason: Request parameters could not be validated (&cHash empty)
Der cHash wird für das caching benötigt.
Das Problem ist, dass TYPO3 8.x den cHash grundsätzlich validieren möchte. Wenn keiner vorhanden ist wird das als Fehler interpretiert. Man kann das mit folgender TypoScript Konfiguration unterbinden:
plugin.tx_aimeos.features.requireCHashArgumentForActionArguments = 0
Oder das Caching ausschalten ? Oder man muss schauen, das bei der Link generierung auch immer der cHash mit geht.
cHash und JavaScript Links
Wenn man einen Link per JS zusammenbaut, dann hat man keine Möglichkeit den cHash mitzuschicken. Sobald ein Plugin eine Action ausführt z.B. so:
https://www.self-storage4u.de/kontakt?tx_powermail_pi1%5Baction%5D=create&tx_powermail_pi1%5Bcontroller%5D=Form#c289
möchte Typo3 einen gültigen cHash. Man kann aber für alle Extensions diesen Check abschalten. In dem Beispiel z.B. im TypoScript
plugin.tx_powermail.features.requireCHashArgumentForActionArguments = 0
Weitere Möglichkeiten:
Ein eigenes Plugin für den (oder alle) AJAX-Request(s) zu bauen (z.B. Pi2) und dort den Check auszuschalten:
plugin.tx_extkey_pi2.features.requireCHashArgumentForActionArguments = 0
Parameter aus dem cHash Check in der Konfiguration auschalten
// für mehrere Parameter und Extensions... $GLOBALS['TYPO3_CONF_VARS']['FE']['cHashExcludedParameters'] = 'L, pk_campaign, pk_kwd, utm_source, utm_medium, utm_campaign, utm_term, utm_content,tx_extkey_pi1[myparameter]'; // für einzelne Extensions $GLOBALS['TYPO3_CONF_VARS']['FE']['cHashExcludedParameters'] .= ',tx_extkey_pi1[myparameter]';