TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

Workspace lässt sich nicht veröffentlichen - PHP Fatal Error


Autor Nachricht
Verfasst am: 12. 05. 2012 [17:05]
hmader
Themenersteller
Dabei seit: 08.03.2003
Beiträge: 246
Liebe Gemeinde,
Beim Versuch, die neue Version einer Webpage, die ich in einem eigenen Workspace zusammengebastelt habe, freizuhalten ('publish') bekam ich folgende Fehlermeldung:
TYPOSCRIPT
PHP Catchable Fatal Error: Argument 3 passed to tx_version_tcemain::version_swap_procBasedOnFieldType() must be an array, null given, called in /home/.sites/143/site288/web/typo3/sysext/version/class.tx_version_tcemain.php on line 887 and defined in /home/.sites/143/site288/web/typo3/sysext/version/class.tx_version_tcemain.php line 1045

Ich habe T3 4.5.15 mit TV 1.4.1, warum habe ich diesen Fehler und was kann ich dagegen tun?!?
Liebe Grüße aus Wien,
Herwig
Profil
Verfasst am: 12. 05. 2012 [17:43]
hmader
Themenersteller
Dabei seit: 08.03.2003
Beiträge: 246
Zur Info: Folgendes steht in den betreffenden Zeilen:

Zeile 887:
PHP
$table, $field, $fieldConf['config'], $curVersion, $swapVersion, $tcemainObj;


Zeile 1045 ist noch ein Kommentar, danach:
PHP
protected function version_swap_procBasedOnFieldType($table, $field, array $conf, array &$curVersion, array &$swapVersion, t3lib_TCEmain $tcemainObj)
Profil
Verfasst am: 28. 09. 2012 [13:57]
juergen69
Dabei seit: 22.09.2009
Beiträge: 6
Hallo,

Ich habe bei einem Kunden genau das gleiche Problem. Haben sie es schon lösen können oder einen Tipp parat.

lg auch aus Wien
Jürgen
Profil
Verfasst am: 28. 09. 2012 [22:45]
juergen69
Dabei seit: 22.09.2009
Beiträge: 6
Ich habe einen Workaround gefunden.

1.) Go to docroot/typo3/sysext/version/
2.) cp class.tx_version_tcemain.php class.tx_version_tcemain.php.bak
3.) open the file class.tx_version_tcemain.php in your favorite editor
4.) find line 858 (foreach ($GLOBALS['TCA'][$table]['columns'] as $field => $fieldConf) {)
5.) add the following code in the next line:
if (!is_array($fieldConf['config'])) {
continue;
}

6.) the next line should be the call to $this->version_swap_procBasedOnFieldType

In meinem Fall gab es $fieldConf['config'] nicht für die column tx_realurl_pathsegment. Ich bin mir noch nicht sicher ob es ein Konfigurationsproblem bei RealURL oder ein Core Bug ist
Profil
Verfasst am: 07. 10. 2012 [12:16]
hmader
Themenersteller
Dabei seit: 08.03.2003
Beiträge: 246
Hallo Jürgen,
Ich hab's händisch step by step gemacht. Es dürfte ein Core Bug sein, weil wir auf unserem System realURL gar nicht installiert haben. Oder es zickt wegen TemplaVoilá bzw. unserer "Uralt-Installation", die auch schon einige, nennen wir es, persönliche Eigenheiten hat icon_smile.gif
Liebe Grüße aus dem 9.,
Herwig
Profil
Verfasst am: 08. 10. 2012 [10:55]
juergen69
Dabei seit: 22.09.2009
Beiträge: 6
Core Bug oder nicht - da bin ich mir nicht sicher icon_wink.gif (an sich gehört es ja überprüft).

In diesem Fall wars folgendes
- Auf einer 4.1 Instanz wurde eine Extension geschrieben die für die RealURL die "Exclude from Speaking URL" enable Fields auf 1 gestellt hat damit sie auch in den Benutzerrechten für die User verfügbar sind
- mit 4.5 sind die OOB so gesetzt.

Was mich wundert ist das an sich nur ein Key/Value gesetzt wurde, aber damit trotzdem die gesamt Config weg war (nur noch der key/value im array).

Herausgefunden habe ich das folgendermaßen:
- Debugster installiert (beko_debugster)
- im Core nach (foreach ($GLOBALS['TCA'][$table]['columns'] as $field => $fieldConf) {)
- debugster($field);
- debugster($fieldConf);

ausgegeben. Da sieht man dann alle Extensions mit ihren configs - so habe ich gesehen das bei RealURL keine mehr da war und dann bin ich halt per grep auf die Suche nach dem key gegangen bis ich es in einer Extension gefunden habe.

lg aus dem 18./6. icon_wink.gif

[Dieser Beitrag wurde 2mal bearbeitet, zuletzt am 08.10.2012 um 10:56.]
Profil