Hallo, lieber Forumbenutzer. Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen Möglichkeiten der Kommunikation ist das Forum ein wenig eingeschlafen und weniger Nutzer benutzen das Forum aktiv (trotzdem lohnt es sich evtl. hier nach Lösungen zu suchen oder seine Frage zu stellen).

Wir empfehlen, für deine Fragen/Probleme aktuell (zusätzlich) Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: http://redaxo.org/slack/
DoKü
Beiträge: 9
Registriert: 3. Dez 2011, 15:47

Probleme mit getCategory

3. Dez 2011, 16:17

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 :(

Benutzeravatar
Markus.Lorch
Beiträge: 682
Registriert: 21. Okt 2007, 17:22
Wohnort: Walheim

Re: Probleme mit getCategory

4. Dez 2011, 19:56

ä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.
Grüße,
Markus Lorch

Tschüssle sagt Herr Nüssle

DoKü
Beiträge: 9
Registriert: 3. Dez 2011, 15:47

Re: Probleme mit getCategory

9. Dez 2011, 17:45

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

Benutzeravatar
Markus.Lorch
Beiträge: 682
Registriert: 21. Okt 2007, 17:22
Wohnort: Walheim

Re: Probleme mit getCategory

9. Dez 2011, 17:57

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.
Grüße,
Markus Lorch

Tschüssle sagt Herr Nüssle

Zurück zu „Allgemeines [R4]“