Navi mit verschiedenen Klassen

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

Navi mit verschiedenen Klassen

Beitragvon Havard » 17. Aug 2005, 15:23

Hallo, folgendes Problem:
Ich habe diese Navigation auf meiner Seite eingebaut (Redaxo v2.7) - nun will ich auf Version 3 umsteigen, nur wird folgende Fehlermeldung ausgegeben, sofern auf einer Unterseite die 2nd-Level-Navi ausgegeben werden soll:
Code: Alles auswählen
Fatal error: Call to a member function on a non-object in .../cmstest/redaxo/redaxo/include/generated/templates/9.template on line 13

Die Side-Navi wird gar nicht erst ausgeben, sofern man über den Inhalt zu der nächsten Seite gelangt.

kills hat geschrieben:Top-Level-Navi:

Code: Alles auswählen
<?php

$path = explode("-",$this->getValue("path"));
array_shift( $path);
$cat_id = $path[0];

echo '<ul class="navi">';

foreach ( OOCategory::getRootCategories(true) as $oCategory) {
$name = $oCategory->getName();
$url = $oCategory->getUrl();
$cid = $oCategory->getId();
 
$class = '';
if ( $cat_id == $cid) {
  $class = 'active';
}

  echo '<li class="'. $class .'"><a href="'. $url .'">'. $name .'</a></li>';
}

echo '</ul>';

?>


2nd-Level-Navi:

Code: Alles auswählen
<?php

$path = explode("-",$this->getValue("path"));
array_shift( $path);

$cat_id = $path[0];
$subcat_id = $path[1];

$oCurrCat = OOCategory::getCategoryById($cat_id);

echo '<ul class="subnavi">';

foreach ( $oCurrCat->getChildren( true) as $oCategory) {
$name = $oCategory->getName();
$url = $oCategory->getUrl();
$cid = $oCategory->getId();

$class = '';
if ( $subcat_id == $cid) {
  $class = 'active';
}

  echo '<li class="'. $class .'"><a href="'. $url .'">'. $name .'</a></li>';
}

echo '</ul>';

?>


Side-Navi:

Code: Alles auswählen
<?php

$path = explode("-",$this->getValue("path"));
array_shift( $path);

$cat_id = $path[0];
$oCat = OOCategory::getCategoryById($cat_id);
$Articles = $oCat->getArticles( true);

if ( isset( $path[1])) {
  $subcat_id = $path[1];
  $oSubCat = OOCategory::getCategoryById($subcat_id);
  $Articles = array_merge( $Articles, $oSubCat->getArticles( true));
}

echo '<ul class="sidenavi">';

foreach ( $Articles as $oArticle) {
$name = $oArticle->getName();
$url = $oArticle->getUrl();
$cid = $oArticle->getId();

$class = '';
if ( $subcat_id == $cid) {
  $class = 'active';
}

  echo '<li class="'. $class .'"><a href="'. $url .'">'. $name .'</a></li>';
}

echo '</ul>';

?>


Ich hoffe ihr könnt mir helfen - php ist absolut nicht meine Stärke.

Hier kann man die Struktur, so wie sie werden soll, anschauen.

Vielen Dank schon mal.
Liebe Grüße
Havard
 
Beiträge: 156
Registriert: 20. Jan 2005, 18:59

Beitragvon Thomas.Blum » 17. Aug 2005, 15:29

Hej,

was ich auf die schnelle gesehen habe ist das:

Dein Code
Code: Alles auswählen
explode("-",$this->getValue("path"));


Neuer Code
Code: Alles auswählen
$path = explode("|",$this->getValue("path").$this->getValue("article_id")."|");


Wie du siehst wird der Pfad in der Datenbank nicht mehr dur "-" getrennt, sondern durch "|"

Thomas
blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel
Benutzeravatar
Thomas.Blum
Entwickler
 
Beiträge: 4670
Registriert: 24. Aug 2004, 21:11
Wohnort: Dresden

Beitragvon Havard » 19. Aug 2005, 12:56

hey,
vielen dank erstmal für den tip: funktioniert teilweise =)

in v2.7 war es bei diesem code so, dass keine unterkategorie erstellt worden sein und/oder online gesetzt werden musste.
nun schmeißt v3 aber genau in einem der obigen fälle die in meiner problembeschreibung geschrieben warnung aus.

was kann ich nun also tun, um dieses problem auch zu lösen?

vielen dank
gruß
Havard
 
Beiträge: 156
Registriert: 20. Jan 2005, 18:59

Beitragvon Gast » 9. Sep 2005, 20:05

tbaddade hat geschrieben:Wie du siehst wird der Pfad in der Datenbank nicht mehr dur "-" getrennt, sondern durch "|"

Danke, auch für mich war das sehr hilfreich. Es steht nämlich in der Doku noch falsch drin... (Beispiel Navigation)
Gast
 

Beitragvon Thomas.Blum » 12. Sep 2005, 08:03

Hej,

Anonymous hat geschrieben:Danke, auch für mich war das sehr hilfreich. Es steht nämlich in der Doku noch falsch drin... (Beispiel Navigation)


In der Doku steht es wiederum richtig drin, da diese sich auf die Version 27 bezieht und nicht auf die 30. Die Doku für die neue Version wird aber hoffenlicht bald erscheinen.

Thomas
blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel
Benutzeravatar
Thomas.Blum
Entwickler
 
Beiträge: 4670
Registriert: 24. Aug 2004, 21:11
Wohnort: Dresden


Zurück zu Templates/Navigationen [R3]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste