[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • Probleme mit getCategory
Seite 1 von 1

Probleme mit getCategory

Verfasst: 3. Dez 2011, 16:17
von DoKü
Hallo zusammen,

nachdem ich nun bereits mehrfach über dieses Problem gestolpert bin und irgendwie nie zu einer Lösung komme, möchte ich euch nun gerne mal um Rat bitten.
Mein Grundproblem ist, dass

Code: Alles auswählen

$this->getCategoryId
nicht funktioniert.
Konkret bei dem aktuellen Projekt erhalte ich sogar GAR keine Meldung, sondern wird nur die Code-Ausführung komplett angehalten - aber das ist ein anderes Problem. Selber Code auf anderem Server sagt
Fatal error: Call to undefined method rex_article::getCategoryId()
Hintergrund dessen: Ich will bereits im HTML-Header des Templates die Kategorie feststellen, um in dessen Abhängigkeit ein Stylesheet zu laden.
Wenn ich aufs Cheatsheet schaue, ist doch aber getCategoryId eine gültige Objektmethode eines Artikels, was doch $this durchaus ist?

Hoffe, mir kann jemand die Nase mal auf den Fehler drücken :)
LG
Dominic

PS: $this->getValue("category_id") funktioniert dagegen, aber OOCategory::getCategoryById($cat); wiederum dann nicht, was ich zum weitermachen dann bräuchte :(

Re: Probleme mit getCategory

Verfasst: 4. Dez 2011, 19:56
von Markus.Lorch
ähm. ja nein und so.

innerhalb eines Templates ist $this vom Typ rex_article - also nicht OOArticle (das sind zwei paar Schuhe). Drum ist $this->getValue('category_id') vollkommen richtig.

Code: Alles auswählen

$cat = OOCategory::getCategoryById(ID);
hingegen müsste schon funktionieren.

Re: Probleme mit getCategory

Verfasst: 9. Dez 2011, 17:45
von DoKü
Moin,
vom Typ rex_article - also nicht OOArticle (das sind zwei paar Schuhe)
... das hat mir grad die Augen geöffnet. Hab das beides als ein und das selbe verstanden. Dafür schonmal an dickes "Danke sehr", Markus. mit der Ordnung im Kopf konnte ich schonmal mein Problem prima lösen.

Ich lerne also, dass das im Grunde zwei verschiedene, unabhängige Objekt-Modelle sind?
Wenn ich da nun richtig liege: Warum gibt es die beiden bzw. wann macht es Sinn das eine oder andere zu benutzen?
Hab immer so schöne Cheatsheets mit den ganzen OOF-Klassen, aber gibt es denn so eine Übersicht auch irgendwie für $this bzw. den rex_article? Oder wäre das http://docs.redaxo.com/de/4.2.1/classrex__article.html - wobei das natürlich recht abstrakt ist?

Gruß
Dominic

Re: Probleme mit getCategory

Verfasst: 9. Dez 2011, 17:57
von Markus.Lorch
OOArticle erleichtert einem den Zugriff und Selektion von Artikeln. Etwa wenn du alle Artikel einer Kategorie haben möchtest, oder alle Root-Artikel und so zeug. Das ist cool um Teaser, Menüs, Listen etc zu erstellen.

rex_article hingegen ist das Artikelobjekt mit dem die Seite generiert wird und die wirkliche Arbeit verrichtet. Alles was du unter "Template" eingibst wird innerhalb einer Funktion von rex_article abgearbeitet und ist deshalb ist $this natürlich vom typ rex_article (da ja innerhalb dieser Klasse ausgeführt).

OOArticle kann man deshalb als eine Art Hilfe betrachten die einem das Leben etwas leichter macht wenn es darum geht mehrere Artikel zu erfassen und damit irgend was anzustellen. Man verwendet es häufig dort, wo ich innerhalb des aktuellen Artikels etwas über einen oder viele andere Artikel wissen möchte.