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

Sitemap Oberkategorie ermitteln

Verfasst: 7. Dez 2015, 09:36
von claudihey
Guten Morgen zusammen,

gerade stehe ich ein bisschen auf dem Schlauch...
Ich möchte eine Sitemap erstellen, in der die Unterkategorien ausgelesen werden, die in einer bestimmten Kategorie (ID wird über REX_VALUE[1] geliefert) stehen. Das klappt auch. Aber jetzt möchte ich noch die Oberkategorie mit Namen und URL ausgeben. Da weiß ich gerade nicht weiter...

Code: Alles auswählen

<?php


$category = OOCategory::getCategoryById(REX_VALUE[1]);
$categories = $category->getChildren();
echo $lev1;
echo '<div class="sitemap">';
echo '<ul>';
foreach ($categories as $c)
{
  
  if ($c->getId() == $path2)
  {
    echo '<li><a class="active" href="'.rex_getURL($c->getId()).'">';
    echo $c->getName();
    echo '</a></li>';
  }
  else
  {
    echo '<li><a href="'.rex_getURL($c->getId()).'">';
    echo $c->getName();
    echo '</a></li>';    
  } 
    

}

echo  '</ul></div>';
?>
Kann jemand helfen?
Danke und Gruß,
Claudia

Re: Sitemap Oberkategorie ermitteln

Verfasst: 7. Dez 2015, 10:02
von RexDude
Hi,

OOCategoty hat eine getParent() Methode über die man das Elternteil der Kategorie bekommt, siehe http://blumbeet.com/files/cheatsheet_redaxo_42.pdf. Ich vermute das du das suchst.

Re: Sitemap Oberkategorie ermitteln

Verfasst: 7. Dez 2015, 10:48
von claudihey
Danke, RexDude,

mit getParent() bin ich irgendwie nicht weitergekommen.
Ich hatte ja eigentlich schon die ID der Oberkategorie, daher habe ich es jetzt anders gelöst.
Manchmal braucht man halt ein paar Sekunden für eine Erleuchtung.. :D

Falls es jemanden interessiert, hier der komplette Code:

Eingabe:

Code: Alles auswählen

Bitte geben Sie die ID des Hauptmenüpunktes ein: <br />
<input type="text" size="30" name="VALUE[1]" value="REX_VALUE[1]" />
Ausgabe

Code: Alles auswählen

<?php
// EXPLODE PATH
$PATH = explode("|",$this->getValue("path").$this->getValue("article_id")."|");

// GET CURRENTS
$path1 = $PATH[1];
$path2 = $PATH[2];

$category = OOCategory::getCategoryById(REX_VALUE[1]);
$categories = $category->getChildren();
$art = OOArticle::getArticleById(REX_VALUE[1]);

echo '<div class="sitemap">';
echo '<ul>';  
if ("REX_VALUE[1]" == $path1)
  {
    echo '<li><a class="active" href="'.rex_getURL(REX_VALUE[1]).'">';
    echo $art->getName();
    echo '</a></li>';
}
else
{
    echo '<li><a href="'.rex_getURL(REX_VALUE[1]).'">';
    echo $art->getName();
    echo '</a></li>';
}

foreach ($categories as $c)
{
  
  if ($c->getId() == $path2)
  {
    echo '<li><a class="active" href="'.rex_getURL($c->getId()).'">';
    echo $c->getName();
    echo '</a></li>';
  }
  else
  {
    echo '<li><a href="'.rex_getURL($c->getId()).'">';
    echo $c->getName();
    echo '</a></li>';    
  } 
    

}

echo  '</ul></div>';
?>