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

  • hmader hmader
    Sternenflotten-Admiral
    0 x
    253 Beiträge
    0 Hilfreiche Beiträge
    12. 05. 2012, 17:05

    Liebe Gemeinde,
    Beim Versuch, die neue Version einer Webpage, die ich in einem eigenen Workspace zusammengebastelt habe, freizuhalten ('publish') bekam ich folgende Fehlermeldung:

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


  • 1
  • hmader hmader
    Sternenflotten-Admiral
    0 x
    253 Beiträge
    0 Hilfreiche Beiträge
    12. 05. 2012, 17:43

    Zur Info: Folgendes steht in den betreffenden Zeilen:

    Zeile 887:

    1. $table, $field, $fieldConf['config'], $curVersion, $swapVersion, $tcemainObj;

    Zeile 1045 ist noch ein Kommentar, danach:

    1. protected function version_swap_procBasedOnFieldType($table, $field, array $conf, array &$curVersion, array &$swapVersion, t3lib_TCEmain $tcemainObj)

  • juergen69 juergen69
    TYPO3-Anwärter
    0 x
    6 Beiträge
    0 Hilfreiche Beiträge
    28. 09. 2012, 13:57

    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

  • juergen69 juergen69
    TYPO3-Anwärter
    0 x
    6 Beiträge
    0 Hilfreiche Beiträge
    28. 09. 2012, 22:45

    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

  • hmader hmader
    Sternenflotten-Admiral
    0 x
    253 Beiträge
    0 Hilfreiche Beiträge
    07. 10. 2012, 12:16

    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 :)
    Liebe Grüße aus dem 9.,
    Herwig

  • juergen69 juergen69
    TYPO3-Anwärter
    0 x
    6 Beiträge
    0 Hilfreiche Beiträge
    08. 10. 2012, 10:55

    Core Bug oder nicht - da bin ich mir nicht sicher ;-) (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. ;-)

  • 1