[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Navigation mit Zusatz - 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/
Fanello
Beiträge: 336
Registriert: 24. Mai 2006, 14:01
Wohnort: Riedt (Schweiz)

Navigation mit Zusatz

26. Jul 2012, 11:57

Liebe Redaxo-Gemeinde

Ich möchte gerne die Redaxo-Navigation so anpassen, dass neben dem jeweiligen Kategorie-Namen ein kleiner Textzusatz gezeigt wird.

- Home - hier findest du alles
- Über uns - wer sind wir überhaupt
- Aktuelles - was wann wo

Der Textzusatz wird in einer anderen Schrift angezeigt als der Navipunkt. Meine Idee war es nun, diesen Zusatz ins Beschreibung-Feld des jeweiligen Startartikels zu schreiben (also unter Metadaten/Sonstiges).

Ich nehme mal an, dazu müsste ich das File class.rex_navigation.inc.php anpassen, richtig? Den Ausgabe-Code für die Navi habe ich in diesem File gefunden. Wie bringe ich ihn nun aber dazu, vom Startartikel auch die Beschreibung auszugeben?

Vielen Dank

Fanello
Beiträge: 336
Registriert: 24. Mai 2006, 14:01
Wohnort: Riedt (Schweiz)

Re: Navigation mit Zusatz

26. Jul 2012, 13:36

Ich habe selber eine Lösung gefunden.. Ist denke ich gar nicht mal so schlecht!

Code: Alles auswählen

$startartikel = $nav->getStartArticle();
$zusatz = $startartikel->getValue('art_zusatz');
$return .= '<a'. $linkClass .'href="'.$nav->getUrl().'">'.htmlspecialchars($nav->getName()).'<span>'.$zusatz.'</span></a>';
Das ganze muss beim File class.rex_navigation.inc.php ab Zeile 232 ergänzt werden.

Benutzeravatar
ralf.schlott
Beiträge: 625
Registriert: 5. Dez 2007, 21:22
Wohnort: Hamburch
Kontaktdaten: Website

Re: Navigation mit Zusatz

6. Sep 2012, 16:39

Klingt interessant. Wie gestaltest du die Ausgabe?

Aber sowas könnte man doch auch darüber erreichen, dass du Kategorie und Artikel unterschiedlich beschriftest!
- Danke für Redaxo! -
http://www.prenzlweb.de

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

Re: Navigation mit Zusatz

6. Sep 2012, 17:11

Ich leite mir für sowas immer eine Klasse von rex_navigation ab.

Hier mal eine Beispielklasse, bei der die Navigationszugehörigkeit über die Metadaten (cat_domain) bestimmt werden kann.

Code: Alles auswählen

class foobar_navigation extends rex_navigation
{
  var $domain;
  
  /*public*/ function factory()
  {
    static $class = null;

    if(!$class)
    {
      // ----- EXTENSION POINT
      $class = rex_register_extension_point('REX_NAVI_CLASSNAME', 'foobar_navigation');
    }

    return new $class();
  }
  
  /*public*/ function get($category_id = 0,$depth = 3,$open = FALSE, $ignore_offlines = FALSE, $domain = 'main')
  {
    if(!$this->_setActivePath()) return FALSE;

    $this->domain = $domain;

    return parent::get($category_id, $depth, $open, $ignore_offlines);
  }
  
  /*protected*/ function _getNavigation($category_id,$ignore_offlines = TRUE)
  {
    static $depth = 0;

    if($category_id < 1)
      $nav_obj = OOCategory::getRootCategories($ignore_offlines);
    else
      $nav_obj = OOCategory::getChildrenById($category_id, $ignore_offlines);

    $return = "";

    $count = 0;
    foreach($nav_obj as $nav)
    {
      //echo '<pre>';var_dump($nav);echo '</pre>';exit;
      if(false === strpos($nav->getValue('cat_domain'), '|'.$this->domain.'|'))
        continue;
      
      $liClass = '';
      $linkClass = '';

      // classes abhaengig vom pfad
      if($nav->getId() == $this->current_category_id)
      {
        $liClass .= ' rex-current';
        $linkClass .= ' rex-current';
      }
      elseif (in_array($nav->getId(),$this->path))
      {
        $liClass .= ' rex-active';
        $linkClass .= ' rex-active';
      }
      else
      {
        $liClass .= ' rex-normal';
      }

      // classes abhaengig vom level
      if(isset($this->classes[$depth]))
        $liClass .= ' '. $this->classes[$depth];

      if(isset($this->linkclasses[$depth]))
        $linkClass .= ' '. $this->linkclasses[$depth];



      $linkClass = $linkClass == '' ? '' : ' class="'. ltrim($linkClass) .'"';

      $return .= '<li class="rex-article-'. $nav->getId() . $liClass .'">';
      $return .= '<a'. $linkClass .' href="'.$nav->getUrl().'"><strong>'.htmlspecialchars($nav->getName()).'</strong>';
      if(!$depth AND (0 !== strcmp($nav->getValue('catname'), $nav->getValue('name'))))
        $return .= ' <em>'.htmlspecialchars($nav->getValue('name')).'</em>';
      $return .= '</a>';

      $depth++;
      if(($this->open OR
          $nav->getId() == $this->current_category_id OR
          in_array($nav->getId(),$this->path))
         && ($this->depth > $depth OR $this->depth < 0))
      {
        $return .= $this->_getNavigation($nav->getId(),$ignore_offlines);
      }
      $depth--;

      $return .= '</li>';
      
      $count++;
    }

    if($count)
      $return = '<ul class="rex-navi'. ($depth+1) .'">'.$return.'</ul>';

    return $return;
  }
}
LG,
Xong

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

Benutzeravatar
ralf.schlott
Beiträge: 625
Registriert: 5. Dez 2007, 21:22
Wohnort: Hamburch
Kontaktdaten: Website

Re: Navigation mit Zusatz

6. Sep 2012, 22:51

Meine Güte, wo du überall mitliest. Das muss ich mir wirklich mal ansehen. Melde mich dann, wenn es gut geworden ist!

Danke! Ralf
- Danke für Redaxo! -
http://www.prenzlweb.de

Zurück zu „Allgemeines [R4]“