[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Startartikel einer Kategorie - REDAXO Forum
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/
Southtown_m
Beiträge: 95
Registriert: 23. Feb 2009, 14:32

Startartikel einer Kategorie

19. Sep 2012, 13:13

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

Ingo
Beiträge: 782
Registriert: 24. Jun 2010, 00:34

Re: Startartikel einer Kategorie

19. Sep 2012, 14:55

Code: Alles auswählen

echo '<pre>';
print_r($this->getValue("path"));
echo '</pre>';
Schau dir das mal an.

Benutzeravatar
Thomas.Blum
Entwickler
Beiträge: 5063
Registriert: 24. Aug 2004, 22:11
Wohnort: Dresden
Kontaktdaten: Website

Re: Startartikel einer Kategorie

19. Sep 2012, 15:11

Hej,

Code: Alles auswählen

<?php
// Getränkekategorie
$cat = OOCatgeory::getCategoryById(REX_CATEGORY_ID);

// Speisekarteobjekt holen (Elternkategorie)
$parent = $cat->getParent();

// Namen ausgeben
echo $parent->getName();
?>
vg Thomas

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

Re: Startartikel einer Kategorie

19. Sep 2012, 18:47

Eigentlich sucht er doch OOArticle::getArticleById(REX_CATEGORY_ID), oder?
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Southtown_m
Beiträge: 95
Registriert: 23. Feb 2009, 14:32

Re: Startartikel einer Kategorie

19. Sep 2012, 19:22

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

Benutzeravatar
Thomas.Blum
Entwickler
Beiträge: 5063
Registriert: 24. Aug 2004, 22:11
Wohnort: Dresden
Kontaktdaten: Website

Re: Startartikel einer Kategorie

20. Sep 2012, 09:37

Hej,
Xong hat geschrieben:Eigentlich sucht er doch OOArticle::getArticleById(REX_CATEGORY_ID), oder?
kommt drauf an. Ich bin davon ausgegangen das Getränke uns Speisen Unterkategorien von Speisekarte sind.

Daher die Frage. Was sind Getränke und Speisen? Normale Artikel oder Kategorien?

vg Thomas

Southtown_m
Beiträge: 95
Registriert: 23. Feb 2009, 14:32

Re: Startartikel einer Kategorie

20. Sep 2012, 11:23

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

Benutzeravatar
Thomas.Blum
Entwickler
Beiträge: 5063
Registriert: 24. Aug 2004, 22:11
Wohnort: Dresden
Kontaktdaten: Website

Re: Startartikel einer Kategorie

20. Sep 2012, 19:56

Hej,

dann probier mal obigen Code.

Das sollte dir den Namen "Speisekarte" ausgeben, wenn du es in Getränke oder Speisen integrierts.

vg Thomas

Southtown_m
Beiträge: 95
Registriert: 23. Feb 2009, 14:32

Re: Startartikel einer Kategorie

21. Sep 2012, 08:59

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

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

Re: Startartikel einer Kategorie

21. Sep 2012, 09:14

Eigentlich willst du ja eine Schleife und immer weiter nach oben schauen, ob in den Metadaten ein Wert existiert:

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;
}
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.
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Southtown_m
Beiträge: 95
Registriert: 23. Feb 2009, 14:32

Re: Startartikel einer Kategorie

21. Sep 2012, 09:38

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

Southtown_m
Beiträge: 95
Registriert: 23. Feb 2009, 14:32

Re: Startartikel einer Kategorie

21. Sep 2012, 10:03

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

Aber ob es so korrekt ist von der Programmierung her bin ich mir selber nicht sicher.

Hauptsache es funzt :mrgreen: :mrgreen:

Vielen Dank
Viele Grüße
Southi

Zurück zu „Allgemeines [R4]“