Joomla 1.0 mit PHP 5.3.x – Warning: Parameter 3 to showItem()

Es sind noch Joomla 1.0-Systeme im Umlauf. Sie werden weniger, aber es gibt noch immer haufenweise Projekte im Netz, die auf der Uralt-Version des CMS basieren.

Es kann natürlich auch sein, dass ein Backup eines alten Projektes übergangsweise reaktiviert werden muss, so wie in meinem aktuellen Fall.

Joomla 1.0 wird von PHP ab 5.3.x nicht mehr unterstützt. Das System läuft zwar, gibt aber keinen Content aus sondern quittiert jeden Aufruf einer Seite mit

Warning: Parameter 3 to showItem() expected to be a reference

Um diesen „Fehler“ zu umgehen und das Joomla-System nutzen zu können, sind minimale Änderungen an der Datei von Joomla 1.0

/includes/Cache/Lite/Function.php

nötig.

1. Änderung
ersetze: $result = call_user_func_array(array($class, $method), $arguments);
durch: $result = call_user_func_array(array($class, $method), &$arguments);

2. Änderung
ersetze: $result = call_user_func_array(array($$object_123456789, $method), $arguments);
durch: $result = call_user_func_array(array($$object_123456789, $method), &$arguments);

3. Änderung
ersetze: $result = call_user_func_array($target, $arguments);
durch: $result = call_user_func_array($target, &$arguments);

Damit ist es wieder möglich, die Seite auf einem aktuellen Testserver zu nutzen.

 

Weiteres Thema: Assigning the return value … in joomla.php

 

Auch diese Meldung kann im Zusammenhang mit einem alten Joomla 1.0-System auftauchen.

Deprecated: Assigning the return value of new by reference is deprecated in ..includesjoomla.php on line 836

Die betreffende Zeile sieht so aus

$params =& new mosParameters( $my->params, $file, ‚component‘ );

„&“ wird in PHP < 5 verwendet werden, um ein Objekt an eine Methode zu übergeben. PHP 5 erledigt dies standardmäßig, daher ist die Angabe unnötig geworden und wird daher jeweils mit einer Meldung quittiert. Um diese loszuwerden muss die Zeile 836 einfach folgendermaßen geändert werden

$params = new mosParameters( $my->params, $file, ‚component‘ );

Das war’s.

4 Kommentare

  • Danke, das hat mir sehr geholfen; suche nun auch noch eine Lösung für Joomla Version 1.5.26, selbst dort gibt es bei mir Probleme nach dem auf die PHP Version 5.3.14 gestellt wurde. Aber danke nochmal!

    Antworten
    • Bekommst du Fehlermeldungen ausgegeben? Ich habe diverse Livesysteme mit 1.5.26 in Betreuung und für diese derzeit (absichtlich) noch PHP 5.2.13 aktiviert. Kann aber gerne auch mal testen.

      Antworten
      • der Browser gab die Meldung aus; dass die Seite nicht geöffnet werden kann; mittlerweile weiß ich aber das es (nur) an einem Plugin lag; und zwar das Glossary Plugin von http://remository.com Joomla selber läuft ohne Probleme; habe das Plugin deaktiviert; ein anders Modul lief auch nicht mehr; aber wie gesagt Joomla 1.5.26 selber hat keine Probleme mit php 5.3; danke noch mal . . .

        Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.