Zum Inhalt springen

Extensions Update für 4.3 !

Erstellt am 9. Oktober 2008 · 5 Antworten · letzte Antwort am 9. Oktober 2008

Tags: Frage

steffenk ·

Hi,

many extensions using substituteMarkerArrayCached will fail in 4.3 as the function changed. now all arguments has to be an array, otherwise you get following error:

Catchable fatal error: Argument [2,3,4] passed to tslib_cObj::substituteMarkerArrayCached() must be an array, null given

Best is to initialize the vars with empty array.
------------------------------------------------------------------------------

das ist der Text den ich in der dev-Liste gepostet habe, also einfach mal eigene Exts darauf überprüfen.

mm_forum hat das Problem auch, babs aber im Bugtracker eingetragen.

vg Steffen

steffenk ·

kleine Ergänzung:

die Funktion hat ja 4 Parameter:

tslib_cObj::substituteMarkerArrayCached($template, $markerArray, $subpartArray, $linkpartArray)

Man kann Parameter 3 und 4 auch weglassen, wenn man die nicht benötigt, man darf nur nicht eine uninitialisierte Variable (NULL) übergeben, daher empfiehlt sich einfach am Anfang der Funktion ein

$markerArray = $subpartArray = $linkpartArray = array();

man kann natürlich auch casten:

tslib_cObj::substituteMarkerArrayCached($template, (array) $markerArray, (array) $subpartArray, (array) $linkpartArray)

ich halte aber ersteres für besser.

einpraegsam.​net ·

Alte Funktion:

function substituteMarkerArrayCached($content,$markContentArray=array(),$subpartContentArray=array(),$wrappedSubpartContentArray=array())       {
...

Wie sieht die neue dann aus?

steffenk ·

so:

public function substituteMarkerArrayCached($content, array $markContentArray = array(), array $subpartContentArray = array(), $wrappedSubpartContentArray = array()) {

Die Fehlermeldung kommt aber von PHP

steffenk ·

es zeichnet sich ab das das wohl doch noch geändert wird zu

public function substituteMarkerArrayCached($content, array $markContentArray = NULL, array $subpartContentArray = NULL, array $wrappedSubpartContentArray = NULL) {

so das die Fehlermeldung nicht mehr kommt. Ich werde es berichten wenns soweit ist.

Es schadet trotzdem nicht die devs auf die richtige Anwendung der API zu sensibilisieren 🙂