neues modul :: splittedNavigation

wosch

Beitrag von wosch » Mi 18. Apr 2007, 08:30

Heru hat geschrieben:... indem du mir den "richtigen" aus den 74 einfach direkt nennst!
Schau auf Seite 3 dieses Thread und probier aus ob das den Fehler produziert.

maveric2001
Beiträge: 112
Registriert: Mi 21. Jun 2006, 07:00
Wohnort: Nordhausen
Kontaktdaten:

Beitrag von maveric2001 » Mi 18. Apr 2007, 09:51

einfach alle new suchen und nacheinander auskommentieren. irgenwann veraendert sich die fehlermeldung und *pling* der aaaahhhdahabichmistgebaut-effekt tritt ein

und nur am rande, fuer kohle macht dir auch jemand den fehler wech

Heru
Beiträge: 22
Registriert: Sa 2. Jul 2005, 23:44
Kontaktdaten:

Beitrag von Heru » Mi 18. Apr 2007, 10:30

@maveric2001: Danke für die Tipps, da bekommt man wenigstens mal ein Ende eines Fadens in die Hand und kann weiterarbeiten.
@wosch: Langsam werde ich ärgerlich: Die Seite 3 habe ich so ziemlich als erstes gelesen, lange lange lange bevor ich hier gepostet habe. Leider hat das nicht geholfen. Wenn du mal genau liest, wirst du auch feststellen, das in diesem Topic mehrmals auf dieses Problem aufmerksam gemacht wurde, dass aber bisher keiner eine Lösung genannt hat.
Grundsätzlich: Natürlich ist es ärgerlich, wenn Leute sich gar keine Mühe machen, selbst zu einer Lösung ihrer Probleme zu kommen. Ich habe aber den Eindruck, dass einige regelmäßige Nutzer dieses Forums gar nicht mehr mitdenken, sondern einfach auf jeden Frager losschießen. Es ist ja einfacher zu posten: "Such doch mal selbst" als jemandem zu helfen. Toll!
Es kann aber immer noch sein, dass es neue Arten von Problemen gibt, die noch nicht hier besprochen wurden, auch sollte man für Anfänger und "Nichtprofis" immer noch einen Rest Verständnis aufbringen.
So, genug Dampf abgelassen, jetzt versuche ich mal wieder ernsthaft das Problem zu lösen. Melde mich dann später wieder.

wosch

Beitrag von wosch » Mi 18. Apr 2007, 11:42

@Heru,
schau dir dein erstes Post an.
Du stellst die lapidare Frage:
"Kann mir einer helfen"

Diese Fehlermeldung tritt häufiger auf.
Du hast 2 Antworten bekommen.

Anstatt nun zu sagen: ich habe das oder jenes versucht/getan/gesucht/gemacht polterst du los.

Du machst es damit niemanden, auch dem nettesten Poster, leicht, sich Zeit für _dein_ Problem zu nehmen.

Viel Glück beim Suchen.

matt.loker
Beiträge: 203
Registriert: Mo 7. Mai 2007, 09:05
Kontaktdaten:

Ich brauch eure Hilfe

Beitrag von matt.loker » Mi 9. Mai 2007, 16:31

Hallo Leute,
ich bin relativ neu hier im Forum und im Umgang mit Contenido. Ich wollte auch versuchen meine Navigation zu splitten. Doch egal was ich mache oder wie sehr ich grüble, ich bekomme es nicht zum laufen.
Ich habe versucht alles richtig zu machen. Ich will mal schildern was ich gemacht habe, damit ihr euch vielleicht vorstellen könnt wo der Hase begraben liegt.

- Ich habe das Modul mit dem Input und Output-Code von kummer angelegt und "Navi Geteilt" genannt.
- Als nächstes habe ich das kleine Modulchen

Code: Alles auswählen

$navigation->showNavigation(1);
für die Subnavi angelegt und habe es "Navi Geteilt 1" angelegt.
- Als nächstes habe ich mein Layout angepasst. Die Ebene 0 der Navi habe ich in diesen Container gepackt.

Code: Alles auswählen

<container id="40" name="Navi Geteilt" types="Navigation" mode="optional" default="Navi Geteilt">Navi Geteilt</container>
.
Die Ebene 1 (also die Subnavi) habe ich in diesen Container gepackt

Code: Alles auswählen

<container id="44" name="Navi Geteilt 1" types="Navigation" mode="optional" default="Navi Geteilt 1">Navi Geteilt 1</container>
- Danach hab ich unter "Templates" das Template das ich überall benutze (das Standard-Template) angepasst. Bei "Navi Geteilt (Container 40)" habe ich "Geteilte Navi" ausgewählt und bei "Navi Geteilt 1 (Container 44)" habe ich "Geteilte Navi 1" ausgewählt.

Wenn ich jetzt die Seite anschauen will bekomme ich diese Fehlermeldung

Code: Alles auswählen

Fatal error: Call to a member function on a non-object in /srv/www/vhosts/smoco.de/httpdocs/contenido/cms/front_content.php(884) : eval()'d code on line 83
Was ist da los? Ich bekomme dieses Problem einfach nicht gelost.
Wenn ich zurück gehe in mein Backend und dort bei dem benutzten Template (Standard) Navi Geteilt 1 (Container 44) von "Navi Geteilt 1" auf "-- kein --" stelle, dann bekomme ich zwar zwar diese Fehlermeldung nicht mehr, jedoch zeigt er mir dann nur die Ebene 0 der Menus an. Die unterpunkte zeigt er mir dann nicht an.

Ich hab wie bekloppt hier im Forum gesucht, bevor ich mich entschieden habe euch um Hilfe zu bitten, aber ich habe einfach nichts gefunden.

Ich hoffe ihr könnt mir Helfen und meine Fehlerbeschreibung war nicht verwirrend.!!

Vielen Dank
Matt

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 » Mi 9. Mai 2007, 16:53

@matt.loker: Kann es sein, dass der Container für die Ebene 1 im Layout vor dem der Ebene 0 zu finden ist?

matt.loker
Beiträge: 203
Registriert: Mo 7. Mai 2007, 09:05
Kontaktdaten:

Beitrag von matt.loker » Mi 9. Mai 2007, 17:06

Also die Ebene 0 (Container 40) ist im Layout unten angeördnet und die Ebene 1 (Container 44) ist links im layout.

bedeutet das, dass erst Container 44 abgearbeitet wird und dann Container 40 ??? ist da etwa der fehler???

ich fühle mich wie der Ochse vorm Berg!!!

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 » Mi 9. Mai 2007, 19:45

Aus dem ersten Post hier:
derjenige container, der als erstes abgearbeitet werden wird, sollte einfach die klasseninstantiierung vornehmen.
Das Modul mit der Klasse "navigation" muss also dem Container zugewiesen werden, der zuerst im Quelltext (Layout) steht. Deshalb einfach mal in den beiden Modulen jeweils bei

Code: Alles auswählen

$navigation->showNavigation(0);
die Zahl, welche die Ebene definiert, ändern.

ichier
Beiträge: 12
Registriert: Do 26. Apr 2007, 13:07
Kontaktdaten:

rekursion

Beitrag von ichier » Fr 18. Mai 2007, 11:43

ist jetzt nicht grad hübsch, aber funxt

da man ja durchaus auch mal untermenus in geteilten menus eingebettet haben will hier ein kleines workaround

nebenbei: es sind natürlich auch der after-bug und languagebug ausm forum eingebaut (lanaguage untested...)

und wer mag kann auch noch einschalten daß automatisch inkrementierte css-klassen auf die links vergeben werden ('eins', 'zwei' usw.) für farbschnödelkram

Code: Alles auswählen

<?php
/**
  * $Revision: 1.22 $
  * $Source: D:/cvs/cvsrepo/test/PPI_Nade/module/mainNavigation/output.php,v $
  * $Date: 2005/11/28 10:20:39 $
  */

/**
 * navigation
 * @author Andreas Kummer
 * @copyright Copyright &copy; 2005 w3concepts AG
 
 * modified by Ichier 17.5.07
 * fixed & added recursion
 
 */

if (!class_exists('navigation')) {

   class navigation {

      /**
       * Konstruktor der Klasse.
       * @param Integer  Primärschlüssel der Startkategorie.
       */
      function navigation($startId) {

         global $client, $lang, $idcat;

         $this->startId = $startId;

         $this->client = $client;
         $this->lang = $lang;
         $this->idcat = $idcat;

         $this->before = '';
         $this->beforeEach = '';
         $this->between = '';
         $this->after = '';

         $this->db = new DB_Contenido();

         $this->setStartIds();

         $this->getNavigation();
		 
		 $this->addcounterclass = false;
		 $this->counter = 0;

		 $this->recursive = false;
		 $this->recursive_cnt = 0;
 		 $this->recursive_depth = 1;
		 $this->recursive_type = 'after';
		 $this->recursive_before = '';
         $this->recursive_beforeEach = '';
         $this->recursive_beforeSelected = '';
         $this->recursive_between = '';
		 $this->recursive_after = '';
      }

      /**
       * Auslesen der Navigationsstruktur aus der Datenbank.
       */
      function getNavigation() {

         global $cfg;

         if ($this->startId != $this->id[0]) {
            /*
             * Wenn die StartId nicht identisch ist mit der höchsten Ebene der
             * aktuell selektierten Kategorie, dann liegt die gewählte Kategorie
             * folgerichtig ausserhalb des für die Navigation gewählten Baumes.
             * In diesem Fall ist nur die Hauptnavigation einzublenden.
             */
            $this->id[0] = $this->startId;
            for ($i = 1; $i <= 3; $i++) {
               $this->id[$i] = -1;
            }
         }

         $this->db->query("" .
               "SELECT " .
               "   a.idcat, " .
               "   a.parentid, " .
               "   a.preid, " .
               "   a.postid, " .
               "   a.parentid, " .
               "   b.visible, " .
               "   b.name, " .
               "   b.idlang " .

               "   FROM {$cfg['tab']['cat']} AS a " .
               "INNER JOIN {$cfg['tab']['cat_lang']} AS b ON a.idcat = b.idcat " .
               "WHERE " .
               "   b.idlang = ". $this->lang." " .
               "   AND a.idclient = {$this->client} " .
               "   AND (" .
               "      a.parentid = {$this->id[0]} " .
               "      OR a.parentid = {$this->id[1]} " .
               "      OR a.parentid = {$this->id[2]} " .
               "      OR a.parentid = {$this->id[3]} " .
               "   ) " .
               "");

// sprachenbug ausm forum
/*               "   FROM {$cfg['tab']['cat']} AS a " .
               "LEFT JOIN {$cfg['tab']['cat_lang']} AS b ON a.idcat = b.idcat " .
               "WHERE " .
               "   a.idclient = {$this->client} " .
               "   AND (" .
               "      a.parentid = {$this->id[0]} " .
               "      OR a.parentid = {$this->id[1]} " .
               "      OR a.parentid = {$this->id[2]} " .
               "      OR a.parentid = {$this->id[3]} " .
               "   ) " .
               "");*/

         $this->navigationTree = array();

         $this->firstId[0] = 0;
         $this->firstId[1] = 0;
         $this->firstId[2] = 0;
         $this->firstId[3] = 0;
         while ($this->db->next_record()) {
            for ($i = 0; $i <= 3; $i++) {
               if (($this->firstId[$i] == 0 && $this->db->f('parentid') == $this->id[$i] && $this->db->f('preid') == 0 && $this->db->f('idlang') == $this->lang) || ($this->firstId[$i] == 0 && $this->db->f('parentid') == $this->id[$i] && $this->db->f('preid') == 0 && $this->db->f('idlang') == null)) {
                  $this->firstId[$i] = $this->db->f('idcat');
               }
            }
            $this->navigationTree[$this->db->f('parentid')][$this->db->f('idcat')] = array('preid'=>$this->db->f('preid'), 'postid'=>$this->db->f('postid'), 'visible'=>$this->db->f('visible'), 'name'=>$this->db->f('name'), 'idlang'=>$this->db->f('idlang'));
         }
      }


      /**
       * Rekursives Aufrufen, zwischenspeichern der aktuellen Werte
       * Ichier 2007
       */
      function ShowRecursive($type) {
			$bkp_counter = $this->counter;
			$bkp_before = $this->before;
			$bkp_beforeEach = $this->beforeEach;
			$bkp_beforeSelected = $this->beforeSelected;
			$bkp_between = $this->between;
			$bkp_after = $this->after;
			$this->before = $this->recursive_before;
			$this->beforeEach = $this->recursive_beforeEach;
			$this->beforeSelected = $this->recursive_beforeSelected;
			$this->between = $this->recursive_between;
			$this->after = $this->recursive_after;
			$this->recursive_cnt++;
			$this->showNavigation($type+1);
			$this->recursive_cnt--;
			$this->before = $bkp_before;
			$this->beforeEach = $bkp_beforeEach;
			$this->beforeSelected = $bkp_beforeSelected;
			$this->between = $bkp_between;
			$this->after = $bkp_after;
			$this->counter = $bkp_counter;
	  }

      /**
       * Ausgabe der Navigation an die Standardausgabe.
       * @param String  Navigationstyp
       */
      function showNavigation($type, $next = -1) {

         static $first;
         static $output = false;

         if ($next == 0) {
			echo $this->after; //modified as posted in forum, fixes no-after-bug
            return false;
         }

         if ($next == -1) {
		 	$this->counter = 0;
            echo $this->before;
            $next = $this->firstId[$type];
            $first = true;
         }

         $parentId = $this->id[$type];

         $link = 'front_content.php?idcat='.$next;

         if ($this->navigationTree[$parentId][$next]['visible'] == 1 && $this->navigationTree[$parentId][$next]['idlang'] == $this->lang) {
            if (!$first) {
               echo $this->between;
            }
            if ($this->isSelected($next)) {
			   if($this->recursive && $this->recursive_cnt<$this->recursive_depth && $this->recursive_type=='before') {
			   		$this->ShowRecursive($type);
			   }
               echo $this->beforeSelected;
            } else {
               echo $this->beforeEach;
            }

			if($this->addcounterclass) {
				$this->counter++;
				switch($this->counter) {
					case 1 : $cssclassadd = 'eins'; break;
					case 2 : $cssclassadd = 'zwei'; break;
					case 3 : $cssclassadd = 'drei'; break;
					case 4 : $cssclassadd = 'vier'; break;
					case 5 : $cssclassadd = 'fuenf'; break;
					case 6 : $cssclassadd = 'sechs'; break;
					case 7 : $cssclassadd = 'sieben'; break;
					case 8 : $cssclassadd = 'acht'; break;
					case 9 : $cssclassadd = 'neun'; break;
					case 10 : $cssclassadd = 'zehn'; break;
				}
				$cssclassadd = ' class="'.$cssclassadd.'"';
			}
            echo '<a href="'.$link.'"'.$cssclassadd.'>'.$this->navigationTree[$parentId][$next]['name'].'</a>';
            $first = false;
            $output = true;
		    if($this->isSelected($next) && $this->recursive && $this->recursive_cnt<$this->recursive_depth && $this->recursive_type=='after') {
			      $this->ShowRecursive($type);
		    }
         } elseif (!$output && $this->navigationTree[$parentId][$next]['postid'] == 0) {
            /*
             * Die Navigation enthält nichts.
             */
             echo 'nada ';
         }

         $this->showNavigation($type, $this->navigationTree[$parentId][$next]['postid']);
      }

      /**
       * Ausgabe vor der Navigation
       * @param String  Ausgabe vor der Navigation.
       */
      function before($text) {
         $this->before = $text;
      }

      /**
       * Ausgabe vor jedem Eintrag
       * @param String  Ausgabe vor jedem Eintrag.
       */
      function beforeEach($text) {
         $this->beforeEach = $text;
      }

      /**
       * Ausgabe vor jedem selektierten Menueintrag
       * @param String  Ausgabe vor jedem selektierten Menueintrag.
       */
      function beforeSelected($text) {
         $this->beforeSelected = $text;
      }

      /**
       * Ausgabe zwischen zwei Hauptmenupunkten
       * @param String  Ausgabe zwischen zwei Hauptmenupunkten.
       */
      function between($text) {
         $this->between = $text;
      }

      /**
       * Ausgabe nach der Navigation
       * @param String  Ausgabe nach der Navigation.
       */
      function after($text) {
         $this->after = $text;
      }

      /**
       * Gibt das Level der Kategorie zurück.
       * @param Integer  Primärschlüssel der Kategorie.
       * @return Integer Level der spezifizierten Kategorie.
       */
      function getLevel($idcat) {

         global $cfg;

         if (empty($idcat)) {
            return 0;
         }

         $this->db->query("" .
               "SELECT level FROM {$cfg['tab']['cat_tree']} " .
               "WHERE " .
               "   idcat = $idcat" .
               "");
         if ($this->db->next_record()) {
            return $this->db->f('level');
         } else {
            return 0;
         }
      }

      /**
       * Gib die Tiefe relativ zum Hauptmenu an.
       * @param Integer  Primärschlüssel der Kategorie
       * @return Integer Level relativ zum Hauptmenu
       */
      function getNetLevel($idcat) {

         return $this->getLevel($idcat) - $this->getLevel($this->startId);
      }

      /**
       * Ermittlung des jeweils ersten Kategorieeintrages jeder Ebene. Die
       * Speicherung dieser Daten erfolgt in das Klassenattribut id.
       */
      function setStartIds() {

         $id = $this->idcat;

         $level = $this->getNetLevel($id);
         $this->id[$level] = $id;

         while ($level > 0) {
            $this->id[$level-1] = $this->getParentId($id);
            $id = $this->id[$level-1];
            $level = $this->getNetLevel($id);
         }

         if (empty($this->id)) {
            $this->id[0] = $this->startId;
         }
         for ($i = 1; $i <= 3; $i++) {
            if (empty($this->id[$i])) {
               $this->id[$i] = -1;
            }
         }
         ksort($this->id);
      }

      /**
       * Ermittlung des Elternelementes der Kategorie mit dem Primärschlüssel
       * idcat
       * @param Integer  Primärschlüssel des Kindelementes, dessen Elternelement
       * ermittelt werden soll.
       * @return Integer Primärschlüssel des Elternelementes.
       */
      function getParentId($idcat) {

         global $cfg;

         $this->db->query("" .
               "SELECT parentid FROM {$cfg['tab']['cat']} " .
               "WHERE " .
               "   idcat = $idcat " .
               "");
         if ($this->db->next_record()) {
            return $this->db->f('parentid');
         } else {
            return 0;
         }
      }

      /**
       * Anzeige, ob eine Navigationsebene Elemente enthält oder nicht.
       * @param Integer  Navigationsstufe.
       * @return Boolean True, wenn die Navigationsstufe leer ist (keine Elemente
       * enhält). Sonst false.
       */
      function navigationEmpty($level) {

         if ($this->firstId[$level] == 0) {
            return true;
         }

         return false;
      }

      /**
       * Anzeige, ob eine Kategorie selektiert ist oder nicht. Eine Kategorie gilt
       * als selektiert, wenn sie die aktuelle Kategorie ist oder ein direktes
       * oder indirektes Elternelement der aktuellen Kategorie.
       * @param Integer  Primärschlüssel der Kategorie, deren Status gefragt ist.
       * @return Boolean True, wenn die gefragte Kategorie mit der aktuellen
       * Kategorie übereinstimmt oder ein direktes oder indirektes Elternelement
       * der aktuellen Kategorie darstellt.
       */
      function isSelected($idcat) {
         return in_array($idcat, $this->id);
      }
   }
}

?>

nutzung:

Code: Alles auswählen

// class="eins" etc.
$navigation->addcounterclass = true;

// rekursion
$navigation->recursive = true;  //aktivieren
$navigation->depth = 2;  //maximale tiefe
$navigation->recursive_type = 'after';  //vor oder nach dem aktivem übermenu-link
$navigation->recursive_before = '<ul class="sub">';
$navigation->recursive_beforeEach = '<li>';
$navigation->recursive_beforeSelected= '<li class="aktiv">';
$navigation->recursive_between = '</li>';
$navigation->recursive_after = '</li></ul>';

typo
Beiträge: 52
Registriert: So 13. Mai 2007, 18:25
Kontaktdaten:

Beitrag von typo » Di 26. Jun 2007, 20:59

Hallo!
Vielen Dank nochmals an den Autor für das tolle Script!

Ich habe folgende Output für das Submenu - Plugin:

Code: Alles auswählen

<?php

// Settings
cInclude('classes', 'atelierq.navigation.class.inc.php');
$cApiClient = new cApiClient($client);
$aQnavigation = new aQnavigation(1); // id der hauptkategorie 


// SUBMENU

$aQnavigation->between(1, '');
$aQnavigation->maskNormal(1, '<div class="submenu"><a target="_self" href="{link}">{name1}</a></div>');
$aQnavigation->maskSelected(1, '<div class="submenu_offen"><a target="_self" href="{link}">{name1}</a></div>');
$aQnavigation->maskSelectedSub(1, '<div class="submenu"><a target="_self" href="{link}">{name1}</a></div>{sub}');
$aQnavigation->setSub(1, $aQnavigation->showNavigation(2));

// SUBSUB MENU

$aQnavigation->between(2, '');
$aQnavigation->maskNormal(2, '<div class="subsubmenu"><a target="_self" href="{link}">{name1}</a></div>');
$aQnavigation->maskSelected(2, '<div class="subsubmenu_offen"><a target="_self" href="{link}">{name1}</a></div>');
$aQnavigation->maskSelectedSub(2, '<div class="subsubmenu"><a target="_self" href="{link}">{name1}</a></div>{sub}');
$aQnavigation->setSub(2, $aQnavigation->showNavigation(3));


// AUSGEBEN!

echo $aQnavigation->showNavigation(1);
echo $aQnavigation->showNavigation(2);
?> 

Die Contenido Stuktur sieht wie folgt aus:
SUB1
--> SUBSUB1
SUB2


Das Script gib mir aber folgende Reihenfolge aus:

SUB1
SUB2
--> SUBSUB1

Wie kann ich das SubSub1 nun wie im Contenido ausgeben?

Besten Dank!
Gruss

typo
Beiträge: 52
Registriert: So 13. Mai 2007, 18:25
Kontaktdaten:

Beitrag von typo » Di 3. Jul 2007, 14:34

Hat keiner eine Lösung bzw. Idee?

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Mi 11. Jul 2007, 18:00

aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

nicnac
Beiträge: 326
Registriert: Do 6. Jan 2005, 15:21
Wohnort: Bln
Kontaktdaten:

Problem bei der Ausgabe der Navigationsebenen

Beitrag von nicnac » Mo 21. Jul 2008, 15:06

Hallo,
kann es sein, dass wenn ich $navigation->showNavigation(2); ausgeben lasse in folgender Form:

Code: Alles auswählen

$navigation->addcounterclass = false;
$navigation->before('<p id="supDescription">Beispiele</p><ul class="sup">');
$navigation->beforeEach('<li>');
$navigation->beforeSelected('<li class="current">');
$navigation->between('</li>');
$navigation->after('</li></ul>');
das auch ausgegeben wird, wenn gar keine subsub-navi vorhanden ist?

Mir wird immer das Wort "Beispiele" ausgegeben, also auch, wenn es keine subsub Navigation gibt. Im Quelltext steht dann folgendes
<p id="supDescription">Beispiele</p><ul class="sup"></li></ul>
Sprich das Listenelement wird nicht geöffnet, aber geschlossen. Ist ja eigentlich nicht korrektes XHTML.

Leider finde ich nicht den Fehler, bzw. wie ich es gestalten kann, das das Wort "Beispiele" nur ausgegeben wird, wenn auch showNavigation(2) vorhanden ist und ansonsten nicht und wie ich sauberes XHTML ausgegeben kann, bzw. erst gar keine Liste ausgegeben wird (denn dann erübrigt sich das ja mit dem unsauberen Quellcode).
Gruß nicnac
---------------
arbeite seit Contenido Version 4.4.5 mit dem System, ca. 30 Websites mit Contenido umgesetzt auf domainfactory, Strato und 1und1.

nicnac
Beiträge: 326
Registriert: Do 6. Jan 2005, 15:21
Wohnort: Bln
Kontaktdaten:

Beitrag von nicnac » Mi 23. Jul 2008, 09:05

Hallo.
würde mich freuen, wenn ich hierzu Feedback bekommen könnte.
Gruß nicnac
---------------
arbeite seit Contenido Version 4.4.5 mit dem System, ca. 30 Websites mit Contenido umgesetzt auf domainfactory, Strato und 1und1.

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Mi 23. Jul 2008, 09:22

die methode showNavigation hat ja nur eine rückgabe und macht selber kein echo. du kannst also folgendes machen:

1. lass das before und after leer
2. lass dir den werte von showNavigation in eine variable zurück geben (ohne gleich ein echo zu machen).
3. dann prüfst du, ob die variable einen inhalt hat (strlen > 0).
4. wenn das der fall ist, gibst du das ul-eingangstag an den browser aus, gefolgt vom inhalt der varialbe und einem schliessenden ul-tag.

etwas in der art sollte nach meiner einschätzung funktionieren:

Code: Alles auswählen

$output = $navigation->showNavigation(2);
if (strlen(trim($output) > 0)  {
   echo '<ul>';
   echo $output;
   echo '</ul>';
}
ansonsten würde ich dir empfehlen, die navigationUniversell zu verwenden. diese unterscheidet dann zwischen einem navigationspunkt mit unterpunkten und solche ohne unterpunkte. vgl. signatur.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

Gesperrt