[GELÖST] Navileiste mit unterpunkten

Ich schon wieder.

mal sehen. Wahrscheinlich fällt mir die Lösung an, während ich poste ;)

Es geht um folgendes. hab ein neues label an meine navileiste geheftet.

allerdings findet der link nicht die page… obwohl sie existiert und gefüllt ist.

Des weiteren wäre eine Frage, ob man an eine navileiste unterpunkte peppen kann. also wie ein baum aufbauen.

der erstepunkt ist der home link da drunter vielleicht sowas wie home2 oder so.

einfahc mal als beispiel…

Home

-home2

-home3

Allerdings soll das auch auf der page angezeigt werden. sprich wenn ich mti der maus drüber gehe, soll sich so ne art popup öffnen und die sachen anzeigen. wie das plus beim browsen im explorer.

zum ersten problem.


<?php $this->widget('zii.widgets.CMenu',array(

			'items'=>array(

				array('label'=>'Unternehmen', 'url'=>array('/site/index')),

				array('label'=>'Über uns', 'url'=>array('/site/page', 'view'=>'about')),

				array('label'=>'Kontakt', 'url'=>array('/site/contact')),

				array('label'=>'Login', 'url'=>array('/site/login'), 'visible'=>Yii::app()->user->isGuest),

				array('label'=>'Logout ('.Yii::app()->user->name.')', 'url'=>array('/site/logout'), 'visible'=>!Yii::app()->user->isGuest),

				array('label'=>'Impressum', 'url'=>array('/site/impressum'))

			),

		)); ?>

es geht um das impressum. Angezeigt wird es. nur halt die url geht da net hin. muss ich das auf noch irgendeiner site ändern?

Ok das mit dem Baum habe ich gerade durhc zufall gefunden. Allerdings verstehe ich dann nciht, wieso er mit den 404 Fehler wirft.

Lass die / bei der Angabe deiner URLs weg. Die Parameter stellen Routen dar, und die haben keinen / vorne:


'url'=>array('site/logout')

Das solltest du übrigens auch selber rausfinden, wenn du dir die generierten URLs mal genauer ansiehst ;).

Also das ist das standrt ding. hab da nix verändert. nur eins hinzugefügt. hab mich halt an die koventionen gehlaten.

es klappt aber immer noch nicht :(

und das mit dem tree funktioniert auch nciht so wie gedacht…

Aber erstmal problem eins lösen… :confused:

Ooops, da hast du recht :).

Hast du URL-Regeln definiert? Wenn ja, mach die mal weg, damit du siehst obs damit ein Problem gibt.

ich habe nichts vom standart her verändert. weiß also nciht ob urls definiert sind.

habs aber hinbekommen. die seite ist keine action. sondern static. impressum verändert sich ja nciht. habs also so gelöst:


array('label'=>'Impressum', 'url'=>array('site/page', 'view'=>'impressum')),

weiß aber nciht, ob das richtig ist oder nicht.

wo kann ich den die url regeln festlegen?

außerdem habe ich noch da eine frage bezüglich des baums, bzw. der struktur die ich aufbauen will.

So soll das aussehen:




Produkt

 - Verkehrsrechner

   - teil1

   - teil2

 - zubehör

   - teil1

   - teil2



Wie soll dann außerdem dei Ordnerstruktur aussehn?

ich krieg das irgendwie noch nciht ganz hin mit den ganzen labels und items… schäm

hab gerade nachgeschaut. Die Regel habe ich nicht definiert.

wie hast du das mit dem Baum gelöst? Code?

hab jetzt eine extension. sMenu. Sieht ganz nett aus und erfüllt seinen zweck.

Allerdings habe ich trotzdem irgendwie Probleme mit statischen Sites.

Die baumstruktur bringe ich noch ein. War heute in der Arbeit etwas abgelenkt… :confused:


<?php $this->widget('application.extensions.smenu.SMenu',array(

			'menu'=>array(

				array('url'=>array('route'=>'/site/index'), 'label'=>'Unternehmen'),

				array('url'=>array('route'=>'/site/contact'), 'label'=>'Kontakt'),

				array('url'=>array('link'=>'/about.php'), 'label'=>'Über Uns'),

Bei der Seite Über uns. die kann ich nicht öffnen.

habe e sdort mit dem link probiert. route wird mir das selbe zurück nur von yii generierte Fehlermeldung.

weil es keine action gibt.

Muss ich da noch was einstellen? bezüglich der action?

So langsam versteh ich das alles.

Es geht jetzt um folgende.

Ich habe statig sites, die ich mit SMenu darstellen will.

Nur wie kriege ich das hin?

Mit Cmenu funktioniert es ja über das view.

Nur funktioniert das nicht so im SMenu.

Kann ich eventuell beide widgets für ein menü benutzen?

Ehrlichgesagt klingen deine Posts leicht durcheinander :).

Vorschlag: Schau dir doch erst mal an, wie man eine Action für statische Seiten mit der CViewAction in einen Controller einbindet. Erst wenn das funktioniert (und begriffen wurde ;) ) kannst du dich dem Menü widmen.

Ich hab z.B. in meinem SiteController eine Action "static" so importiert:


    // Über diese Funktion werden Actionklassen in den Controller "importiert":

    public function actions()

    {

        return array(

            // Liefert statische Seiten, die in protected/views/site/static liegen

            'static'=>array(

                'class'=>'CViewAction',

                'basePath'=>'static',

            ),

    }



Sry wenn er so durcheinander klingt. Ist echt net meine absicht.

Das was du gepostet hast, verstehe ich ja. in der main wir das dann so angesprochen:


array('label'=>'Über uns', 'url'=>array('site/static', 'view'=>'about')),

meine frage ist aber, wie ich mit hilfe der extension SMenu statische seiten anzeigen lassen kann?

im prinzip geht es mir ledigleich um den codeschnipsel den ich gepostet habe. nur zugeschnitten für das SMneu und nicht das Cmenu.

Ich weiß nämlich nicht, ob ddie klasse CviewAction auch angesprochen wird über SMenu.

verstehste mich jetzt?

Zu SMenu kann ich nichts sagen, da ich die Extension noch nicht verwendet hab. Du hast glaub ich schon eine Nachricht in den entsprechenden Beitrag hier im Forum geschickt, also mal abwarten, was der Autor sagt.

Aber trotzdem nochmal zum Verständnis: Das Menü muss gar nichts von irgendeiner Action wissen. Es erwartet immer eine Route + zusätzliche Parameter. Daraus wird dann eine URL gebaut. Oder man übergibt gleich eine fertige URL (z.B. für externe Links).

Erst wenn die URL aufgerufen wird, muss Yii das in einen Controller + Action übersetzen können.

Also: Schau dir doch einfach mal die Links an, die deine Menükomponente jetzt erzeugt. Und nimm diese URLs und untersuch, was Yii damit macht. Wenn eine Fehlermeldung kommt, liegts wohl nicht am Menü, sondern daran, dass Yii die Route in der URL nicht versteht.

der Autor hat mir gerade eine Pm geschickt. Mal sehen. ich werde es weiter mit ihm besprechen. denn mir fehlt so gesehen die funktion view der klasse CViewAction. ich weiß halt nciht wie das im Zusammenhang mit SMenu funktioniert.

Zur not einfach MbMenu benutzen. Sieht auch schick aus und erfüllt auhc seinen Zweck ;)