Meta-Navigation umsetzen

Wie verwendet man Templates oder erstellt Navigationen und passt diese an.

Meta-Navigation umsetzen

Beitragvon spac776 » 27. Mai 2011, 20:40

Hallo zusammen,

wie setzt man eine Meta-Navigation in Redaxo um?
Ich habe leider über die Suchfunktion und bei google keine Hilfe gefunden.

Es wäre toll, wenn mir hier jemand helfen könnte!

Vielen Dank schon mal im Vorraus!
spac776
 
Beiträge: 1
Registriert: 27. Mai 2011, 20:34

Re: Meta-Navigation umsetzen

Beitragvon Oliver.Kreischer » 27. Mai 2011, 21:41

Hi,

willkommen bei Redaxo. Es gibt einige Weg um so etwas zu realisieren.

Wenn es OK ist, dass Du die Links der Meta Navigation von Hand setzten musst mache ich das meistens so:

Erst baue ich ein Modul für die Auswahl der Links

Eingabe
Code: Alles auswählen
REX_LINKLIST_BUTTON[1]

Ausgabe
Code: Alles auswählen
<?php
if($REX['REDAXO'] != '1') {
echo '<ul class="metanavi">'."\r\n";
$zaehler = 0;
$aktiv = '';
$first = '';

$aktuelleArtikelID = $REX['ARTICLE_ID'];

$arr = explode(',','REX_LINKLIST[1]');
foreach ($arr as $value)
{
  $article = OOArticle::getArticleById($value);

  if(is_object($article))
  {

   if ($zaehler == 0) {
      $first = 'class="first"';
   } else {
      $first = "";
   }

   $zaehler = 1;
      
   if ($aktuelleArtikelID == $value) {
      $aktiv = 'class="aktiv"';
   } else {
      $aktiv = '';
   }
   
    echo '<li '.$first.'><a '.$aktiv.' href="'.rex_getUrl($value, $REX['CUR_CLANG']).'" title="'.$article->getName().'">'.$article->getName().'</a></li>'."\r\n";
   
  }
}
echo '</ul>'."\r\n";

} else {
   echo '<ul>'."\r\n";
   $arr = explode(',','REX_LINKLIST[1]');
   foreach ($arr as $value)
   {
     $article = OOArticle::getArticleById($value);

     if(is_object($article))
     {
       echo '<li>'.$article->getName().'</li>'."\r\n";
     }
   }
   echo '</ul>'."\r\n";
}

?>
(Hier freue ich mich selbstverständlich über jegliche Verbesserungsvorschläge!)

Dann erstelle z.B. im Root den (Hilfs)Artikel "Metanavigation". Dort nutzt Du das angelegte Modul und wählst die betreffenden Artikel aus (Startseite, Impressum usw..).

Diesen Artikel includierst Du einfach in das Template an der Stelle wo die Navigation angezeigt werden soll (REX_ARTICLE[xx]). Der Rest is CSS...

Da die Artikel in der Hauptnaviagation nicht auftauchen sollen können die einfach auf "offline" gestellt werden. (Dies natürlich nur wenn Du keine Abfrage einbaust die den Aufruf von offline gestellten Seiten verhindert. Dann müsstest Du die Hauptnavigation noch etwas anpassen).

Ich hoffe es hilft.
Oliver
http://kreischer.de - "It's very simple - you read the protocol and write the code." - Bill Joy
Benutzeravatar
Oliver.Kreischer
 
Beiträge: 1821
Registriert: 16. Dez 2004, 23:03
Wohnort: Feldafing

Re: Meta-Navigation umsetzen

Beitragvon darwin » 3. Jun 2011, 08:47

@Oliver ...
hmm... so kann man es auch machen (*staun*) ...
und is wirklich easy, die idee ;) ...

Danke. grz. Chris
Benutzeravatar
darwin
 
Beiträge: 1261
Registriert: 2. Jan 2007, 16:10
Wohnort: LA

Re: Meta-Navigation umsetzen

Beitragvon Oliver.Kreischer » 3. Jun 2011, 08:50

Hey Chris,

ich muss ja immer den einfachsten Weg gehen :-)

LG
Oliver
http://kreischer.de - "It's very simple - you read the protocol and write the code." - Bill Joy
Benutzeravatar
Oliver.Kreischer
 
Beiträge: 1821
Registriert: 16. Dez 2004, 23:03
Wohnort: Feldafing

Re: Meta-Navigation umsetzen

Beitragvon soleil83 » 7. Jun 2011, 22:01

Hallo,

ich bin blutige Anfängerin und arbeite mich gerade in das Thema ein. Die Meta-Navigation ist ein Punkt, über den ich gerade gestolpert bin und ich habe es schonmal geschafft, das Modul zu erstellen und es auch anzuwenden. Eine Frage bleibt mir aber noch:

Ich habe ein Default-Template in dem die Meta-Navi immer auftauchen soll. In diesem Template habe ich ein ctype angelegt und die Metanavi per REX_ARTICLE[ctype=3] eingebunden.

Code: Alles auswählen
<?php


// ------ DESCRIPTION/KEYWORDS
$OOStartArticle = OOArticle::getArticleById($REX['START_ARTICLE_ID'], $REX['CUR_CLANG']);
$meta_beschreibung = $OOStartArticle->getValue("art_description");
$meta_suchbegriffe = $OOStartArticle->getValue("art_keywords");

if($this->getValue("art_description") != "")
   $meta_beschreibung = $this->getValue("art_description");
   
if($this->getValue("art_keywords") != "")
   $meta_suchbegriffe = $this->getValue("art_keywords");


?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <title><?php print $REX['SERVERNAME'].' | '.$this->getValue("name"); ?></title>
   <meta name="keywords" content="<?php print htmlspecialchars($meta_suchbegriffe); ?>" />
   <meta name="description" content="<?php print htmlspecialchars($meta_beschreibung); ?>" />

   <link rel="stylesheet" type="text/css" href="<?php echo $REX['HTDOCS_PATH'] ?>files/main.css" media="screen" />
   <link rel="stylesheet" type="text/css" href="<?php echo $REX['HTDOCS_PATH'] ?>files/navigation.css" media="screen" />
   <link rel="stylesheet" type="text/css" href="<?php echo $REX['HTDOCS_PATH'] ?>files/content.css" media="screen" />
   <link rel="stylesheet" type="text/css" href="<?php echo $REX['HTDOCS_PATH'] ?>files/solacom.css" media="screen" />


</head>

<body>
   
   <div class="wrapper">
   
      <div class="header">
         <div class="logo">
            <a href="<?php echo $REX['HTDOCS_PATH'] ?>index.php" title="Zur&uuml;ck zur Startseite"><img src="./files/logo.gif" /></a>
         </div>
         <div class="meta">
            REX_ARTICLE[ctype=3]
         </div>
      </div>
      
      REX_TEMPLATE[5]
      
      <div class="content">
           <div class="left">
REX_ARTICLE[ctype=1]
</div>
<div class="right">
REX_ARTICLE[ctype=2]
</div>
         
      </div>
      
      
   </div>
   
</body>
</html>


Ist das erst mal so richtig gedacht? Jetzt merke ich nämlich, dass ich in jedem Artikel, den ich anlege, auch den Block mit dem Links definieren muss :roll:

Ist doch sicher nicht Sinn der Übung, oder? Wie geht das besser?
Der (Hilfs)Artikel liegt derzeit in einer Kategorie "Home". Im Root hat er mir gar nichts angezeigt ;)

Ich wäre dankbar für Tipps :)
soleil83
 
Beiträge: 1
Registriert: 7. Jun 2011, 21:54

Re: Meta-Navigation umsetzen

Beitragvon Peter.Bickel » 10. Jun 2011, 08:04

Es gibt ja unzählige Wege, sowas umzusetzen. Im Gegensatz zu Oli mag ich den Weg mit der manuellen Erstellung nicht so gern. Ich nehme entweder alle Root-Artikel, die online sind oder die ich über ein Meta-Feld "In der Meta-Navi anzeigen" oder so ähnlich aktiviere, oder ich erstelle eine Kategorie und hole mir alle Artikel aus dieser Kategorie für die Meta-Navi. Damit diese Kategorie nicht in der Hauptnavigation erscheint, lässt man sie entweder offline oder man schreibt die Hauptnavi eben so, dass diese spezielle Kategorie auf jeden Fall ausgeschlossen ist.

Zu Deiner letzten Frage: Wenn diese Meta-navi nur an einer Stelle gepflegt und immer auftauchen soll, sollte man es nicht so wie Du über ein Modul und eine ctype lösen. Sondern entweder wie von mir oben beschrieben (hier würde man einfach eine kleine Meta-Navigation ins Template schreiben, die die entsprechenden Artikel zusammenstellt) oder Du packst Dein Meta-Navi-Modul in einen Artikel, der nur als Container dafür dient, und includest die Ausgabe dieses Artikels dann in den Dein Template.

Sind die unterschiedlich Herangehensweisen klar geworden?
Du müsstest DIch entscheiden, welchen der vier Wege Du beschreiten willst.

Grüße,
Peter.
Benutzeravatar
Peter.Bickel
 
Beiträge: 1642
Registriert: 25. Jan 2005, 20:17
Wohnort: Schleswig-Holstein


Zurück zu Templates/Navigationen [R4]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast