Hallo Leud,
mit diesem Code
$OOStartArticle = OOArticle::getArticleById($REX['START_ARTICLE_ID'], $REX['CUR_CLANG']);
lese ich den allgemeinen im Systen, hinterlegten Startartikel aus, oder?
Welchen Code brauche ich um den Startartikel einer Kategorie auslesen zu können?
Beispiel:
Speisekarte(id11)
- Getränke(id23)
- Speisen(id45)
Wenn ich jetzt im Sübmenü Getränke mit der ID23 bin und möchte von dieser den Startartikel dieser Kategrie in diesem Fall Speisekarte(id11) auslesen...
Hab weder was gefunden noch komme ich dahinter welchen Syntax ich brauche...
Jemand einen Rat?
Merci
Viele Grüße
Southi
Hallo,
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 und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme 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: https://redaxo.org/slack/
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 und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme 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: https://redaxo.org/slack/
-
- Beiträge: 95
- Registriert: 23. Feb 2009, 14:32
Re: Startartikel einer Kategorie
Code: Alles auswählen
echo '<pre>';
print_r($this->getValue("path"));
echo '</pre>';
- Thomas.Blum
- Entwickler
- Beiträge: 5063
- Registriert: 24. Aug 2004, 22:11
- Wohnort: Dresden
- Kontaktdaten: Website
Re: Startartikel einer Kategorie
Hej,
vg Thomas
Code: Alles auswählen
<?php
// Getränkekategorie
$cat = OOCatgeory::getCategoryById(REX_CATEGORY_ID);
// Speisekarteobjekt holen (Elternkategorie)
$parent = $cat->getParent();
// Namen ausgeben
echo $parent->getName();
?>
Re: Startartikel einer Kategorie
Eigentlich sucht er doch OOArticle::getArticleById(REX_CATEGORY_ID), oder?
-
- Beiträge: 95
- Registriert: 23. Feb 2009, 14:32
Re: Startartikel einer Kategorie
Danke für die Antworten,
sorry habe mich wohl nicht ganz korrekt ausgedrückt was ich damit machen wollte.
Wollte dadurch von dem Startartikel der Kategorie die Metadaten auslesen im Falle diese im jeweiligen Artikel nicht existieren.
z.B.
$standardartikel = OOArticle::getArticleById($REX['START_ARTICLE_ID'], $REX['CUR_CLANG']);
$keywords6 = $standardartikel->getValue("art_link");
Nur so lese ich das im System angegeben Startartikel aus und nicht die von der Kategorie bzw. Elternelement.
War mein Fehler.
Sorry.
Viele Grüße
Southi
sorry habe mich wohl nicht ganz korrekt ausgedrückt was ich damit machen wollte.
Wollte dadurch von dem Startartikel der Kategorie die Metadaten auslesen im Falle diese im jeweiligen Artikel nicht existieren.
z.B.
$standardartikel = OOArticle::getArticleById($REX['START_ARTICLE_ID'], $REX['CUR_CLANG']);
$keywords6 = $standardartikel->getValue("art_link");
Nur so lese ich das im System angegeben Startartikel aus und nicht die von der Kategorie bzw. Elternelement.
War mein Fehler.
Sorry.
Viele Grüße
Southi
- Thomas.Blum
- Entwickler
- Beiträge: 5063
- Registriert: 24. Aug 2004, 22:11
- Wohnort: Dresden
- Kontaktdaten: Website
Re: Startartikel einer Kategorie
Hej,
Daher die Frage. Was sind Getränke und Speisen? Normale Artikel oder Kategorien?
vg Thomas
kommt drauf an. Ich bin davon ausgegangen das Getränke uns Speisen Unterkategorien von Speisekarte sind.Xong hat geschrieben:Eigentlich sucht er doch OOArticle::getArticleById(REX_CATEGORY_ID), oder?
Daher die Frage. Was sind Getränke und Speisen? Normale Artikel oder Kategorien?
vg Thomas
-
- Beiträge: 95
- Registriert: 23. Feb 2009, 14:32
Re: Startartikel einer Kategorie
Hallo Thomas,
habe soeben noch ein wenig an der Struktur gearbeitet. Das Ergebnis ist, das nun Getränke und Speisen Unterkategorien von Speisekarte sind.
Hoffe mit dieser Information kommen wir weiter
Vielen Dank
Vg
Southi
habe soeben noch ein wenig an der Struktur gearbeitet. Das Ergebnis ist, das nun Getränke und Speisen Unterkategorien von Speisekarte sind.
Hoffe mit dieser Information kommen wir weiter
Vielen Dank
Vg
Southi
- Thomas.Blum
- Entwickler
- Beiträge: 5063
- Registriert: 24. Aug 2004, 22:11
- Wohnort: Dresden
- Kontaktdaten: Website
Re: Startartikel einer Kategorie
Hej,
dann probier mal obigen Code.
Das sollte dir den Namen "Speisekarte" ausgeben, wenn du es in Getränke oder Speisen integrierts.
vg Thomas
dann probier mal obigen Code.
Das sollte dir den Namen "Speisekarte" ausgeben, wenn du es in Getränke oder Speisen integrierts.
vg Thomas
-
- Beiträge: 95
- Registriert: 23. Feb 2009, 14:32
Re: Startartikel einer Kategorie
Danke hat funktioniert. Allerdings habe ich noch ein Problem dies bezüglich.
>>> Hier wird die aktuelle category ausgelesen
$aktuell = OOCategory::getCategoryById($this->getValue("category_id"));
>>> Hier die root Kategorie
$rootkategorie = OOArticle::getArticleById(REX_CATEGORY_ID, $REX['CUR_CLANG']);
$parent = $rootkategorie->getParent();
$standardartikel = $parent;
Das Problem ist wenn es schon in der root Kategerie ist, zerhauts mir die ganze Seite.
Dachte kann das so lösen bzw. abfragen aber das hilft irgendwie au nicht weiter:
Vielleicht weil ich das vorher schon abfragen muss???
if ($aktuell->getValue("category_id") == $standardartikel->getValue("category_id"))
{.......................................
Bitte um diese letzte Hilfe
Merci
Southi
>>> Hier wird die aktuelle category ausgelesen
$aktuell = OOCategory::getCategoryById($this->getValue("category_id"));
>>> Hier die root Kategorie
$rootkategorie = OOArticle::getArticleById(REX_CATEGORY_ID, $REX['CUR_CLANG']);
$parent = $rootkategorie->getParent();
$standardartikel = $parent;
Das Problem ist wenn es schon in der root Kategerie ist, zerhauts mir die ganze Seite.
Dachte kann das so lösen bzw. abfragen aber das hilft irgendwie au nicht weiter:
Vielleicht weil ich das vorher schon abfragen muss???
if ($aktuell->getValue("category_id") == $standardartikel->getValue("category_id"))
{.......................................
Bitte um diese letzte Hilfe
Merci
Southi
Re: Startartikel einer Kategorie
Eigentlich willst du ja eine Schleife und immer weiter nach oben schauen, ob in den Metadaten ein Wert existiert:
Damit fängst du beim aktuellen Artikel an zu suchen und gehst Schritt für Schritt jede Elternkategorie durch, bis du einen Wert gefunden hast. Im Code habe ich als Beispiel mal das Metainfo-Feld "art_description" ausgelesen.
Code: Alles auswählen
$path = explode('|', trim($this->getValue('path'), '|'));
$path[] = REX_CATEGORY_ID;
if(REX_ARTICLE_ID != REX_CATEGORY_ID)
$path[] = REX_ARTICLE_ID;
$description = '';
foreach(array_reverse($path) as $id)
{
$article = OOArticle::getArticleById(intval($id));
$description = $article->getValue('description');
if($description)
break;
}
-
- Beiträge: 95
- Registriert: 23. Feb 2009, 14:32
Re: Startartikel einer Kategorie
Vielen Dank,
ja so ähnlich habe ich es mir gedacht aber da ich noch andere Bedingungen habe kann ich diesen Code in dieser Form nicht verwenden.
So wie ich es gemacht hatte funktioniert es auch ohne Probleme nur sobald ich auf der Elternkategorie bin zerhauts mir.
Im Grunde müsste ich irgendwie eine Abfrage machen können ob ich schon in der Elternkategrie bin oder nicht bzw. ob eines noch existiert.
Denn bei diesem Code
$rootkategorie = OOArticle::getArticleById(REX_CATEGORY_ID, $REX['CUR_CLANG']);
$parent = $rootkategorie->getParent();
zerhauts mir dann, da ich ja schon auf der obersten Ebene bin.
this->Aber Xong dein Code kann ich für zukünftiges gut gebrauchen
Merci
Southi
ja so ähnlich habe ich es mir gedacht aber da ich noch andere Bedingungen habe kann ich diesen Code in dieser Form nicht verwenden.
So wie ich es gemacht hatte funktioniert es auch ohne Probleme nur sobald ich auf der Elternkategorie bin zerhauts mir.
Im Grunde müsste ich irgendwie eine Abfrage machen können ob ich schon in der Elternkategrie bin oder nicht bzw. ob eines noch existiert.
Denn bei diesem Code
$rootkategorie = OOArticle::getArticleById(REX_CATEGORY_ID, $REX['CUR_CLANG']);
$parent = $rootkategorie->getParent();
zerhauts mir dann, da ich ja schon auf der obersten Ebene bin.
this->Aber Xong dein Code kann ich für zukünftiges gut gebrauchen
Merci
Southi
-
- Beiträge: 95
- Registriert: 23. Feb 2009, 14:32
Re: Startartikel einer Kategorie
OK HABS GELÖST
$pfad = explode("|",$this->getValue("path").$this->getValue("article_id")."|");
$pfad_root = $pfad[1];
if ( $pfad_root == $this->getValue("category_id"))
{
.......
Scheint zu funktionieren
Aber ob es so korrekt ist von der Programmierung her bin ich mir selber nicht sicher.
Hauptsache es funzt
Vielen Dank
Viele Grüße
Southi
$pfad = explode("|",$this->getValue("path").$this->getValue("article_id")."|");
$pfad_root = $pfad[1];
if ( $pfad_root == $this->getValue("category_id"))
{
.......
Scheint zu funktionieren
Aber ob es so korrekt ist von der Programmierung her bin ich mir selber nicht sicher.
Hauptsache es funzt
Vielen Dank
Viele Grüße
Southi