Seite 1 von 1

cApiCategoryLanguage deprecated

Verfasst: Do 29. Okt 2015, 09:24
von chnussbaumer
Hallo zusammen

Mir ist ein Fehler in der Doku aufgefallen. In der Version 4.9.8 stimmt die Beschreibung der Funktion: loadByArticleAndLanguageId nicht.
Anscheinend wurde die Methode _getArticleContent als deprecated markiert. Somit können auch nicht mehr alle Contents eines Artikel geladen werden.
Dies ist in der Doku nicht nachgeführt, dort ist immernoch die alte Version hinterlegt.

Somit müssen bei einem Update auf die Version 4.9.8 sämtliche Module welche die auf die cApiCategoryLanguage zugreifen umgeschrieben werden.

Alt:
$art = new cApiArticleLanguage();
$art->loadByArticleAndLanguageId($idart, $lang,TRUE); // 3 Parameter für das laden aller Contents des Artikels

Neu:
$art = new cApiArticleLanguage();
$art->loadByArticleAndLanguageId($idart, $lang);

//Danach die Contents mit folgendem Aufruf auslesen:
$art->getContent();

Achtung: auch hier stimmt die Doku nicht. Es reicht wenn man die Funktion getContent() aufruft.
Gibt man einen Parameter (Content-Typ) gem. Doku mit, erhält man nicht wie beschrieben alle Contents dieses Typs, sonder immer alle Contents.

Grüsse aus der Schweiz

Re: cApiCategoryLanguage deprecated

Verfasst: Do 29. Okt 2015, 09:34
von frederic.schneider_4fb
Vielen Dank für den Hinweis. Offensichtlich ist bei der API-Generierung in dem Punkt etwas schief gelaufen. Wir nehmen uns dem an und aktualisieren das dann entsprechend! Beste Grüße zurück in die Schweiz :)

Re: cApiCategoryLanguage deprecated

Verfasst: Sa 31. Okt 2015, 10:00
von marcus.gnass_4fb
Guten morgen!

Das Verhalten der Klasse cApiArticleLanguage wurde zwischen den Versionen 4.9.7 und 4.9.8 teilweise angepaßt.

- DIe geschützte Methode _getArticleContent wurde in _loadArticleContent umbenannt. Das ist folgerichtig, da es sich hier nicht um einen Getter handelt, also eine Methode die etwas zurückgibt. Die Methode _getArticleContent gibt es aber dennoch (für den Fall, daß jemand von der Klasse cApiArticleLanguage abgeleitet hat, was sehr unwahrscheinlich ist) in Form eines Wrappers und wurde als deprecated markiert.

- Das sofortige Auslesen des Contents in der Methode loadByArticleAndLanguageId wurde entfernt, ebenfalls der dritte Parameter, der dies bewirkte. Hier wurde allerdings die Doku nicht korrekt angepaßt. Dort steht immer noch etwas von "Flag to fetch content". Dies muß noch entfernt werden. Die Änderung wirkt sich aber nicht wirklich aus, da die Methode getContent immer prüft, ob der Content bereits ausgelesen wurde. Wenn nicht wird dies beim ersten Zugriff nachgeholt. Es ist also nicht notwendig bestehenden Code anzupassen.

- Das Fehlverhalten von getContent in Bezug auf das Auslesen des Contents eines Typen kann ich (ungetestet) nicht nachvollziehen. Hier finde ich im Code folgendes Fragment, das korrekt sein sollte: if (is_null($id)) {return $this->content[$type];}

Re: cApiCategoryLanguage deprecated

Verfasst: Sa 31. Okt 2015, 10:43
von Faar
Das war jetzt aber anschaulich erklärt :lol:
</ironie>
:roll:

Re: cApiCategoryLanguage deprecated

Verfasst: Sa 31. Okt 2015, 13:06
von marcus.gnass_4fb
Mit anderen Worten: Paßt scho', nur eine Zeile aus 'nem Kommentar sollte entfernt werden. Besser?