php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
Alt 22.07.2011, 17:25  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
Beiträge: 603
PHP-Kenntnisse:
Anfänger
dreamcatcher wird schon bald berühmt werden
Standard Update: Offen (!): Zend Menü an URI anpassen

Was ist das Ziel ?
Ich habe ein Menü welches ich je nachdem auf welchem Link man geht, dahingehend verändern möchte, dass nur die "nächst tieferen" Einträge angezeigt werden.

Dafür habe ich auch eine Demo erstellt (navigation.xml)

Was habe ich bereits getan ?
Durch ~2 Std Googlerecherche habe ich mir eine Demo erstellt mit welcher Breadcrumps angezeigt werden und ich automatisch auch die URI auslesen kann.

Außerdem habe ich alle Punkte exakt so leicht und sauber wie möglich in eine Demo gepackt.

Versucht habe ich u.a. Dinge wie
PHP-Code:
        <div class="subnav">
            <p>Sub menue:</p><br />
            <?php $page $this->navigation()->findOneBy('label''about');
                  echo 
$this->navigation()->menu()->renderMenu($page);
            
?>
        </div>
Leider wird auch dann nur das gesamte Menü ausgegeben und nicht nur die "tieferen" Ebenen der Navigation.

Am Anfang dachte ich es heißt "Breadcrumps" was ich suche... danach wurde ich eines besseren belehrt als die Breadcumps bei mir liefen.

_______________________________

Die entscheidende Stelle fängt bei der layout.phtml an in Zeile 57.

Hier noch ein Bild wie die Demo momentan aussieht:
http://img19.imageshack.us/img19/2791/mainuu.png

Die Subnavigation soll jedoch nur einen Button ("About_Tree_Test") enthalten.
Um es besser zu verdeutlichen hier die Demonavigation:

PHP-Code:
<?xml version="1.0" encoding="UTF-8"?>
    <configdata>
    <nav>
        <home>
            <label>Home</label>
            <uri>/</uri>
            <pages>
                <about>
                    <label>About</label>
                    <uri>/index/about</uri>
                    <pages>
                        <about2>
                            <label>About_Tree_Test</label>
                            <uri>/</uri>
                        </about2>
                    </pages>
                </about>
                <contact>
                    <label>Contact</label>
                    <uri>/index/contact</uri>        
                </contact>
            </pages>        
        </home>
    </nav>
</configdata>
Die Frage ist also:
Wie/Wodurch kann ich es erreichen, dass ein Menü angezeigt wird, welches von dem URI abhängig ist bzw. sich durch den URI automatisch anpasst ?
Ich möchte erreichen, dass ich nicht für jede URI eine extra .xml Datei habe mit einem Menü, sondern dass ich ein Menü habe welche je nach Zweig eine entsprechende "tiefe" dies Menüs anzeigt.
(Siehe Erklärung oben)

Ich bedank mich im voraus für jeglichen Ratschlag !


Download Demo:
http://uploaded.to/file/fwpf8qty

P.S.:
Die Demo ist sofort einsatzfähig, einfach aufspielen und /public aufrufen.
Die Links müssen ggf. manuell mit /public/index/about eingegeben werden.

Geändert von dreamcatcher (24.07.2011 um 12:38 Uhr).
dreamcatcher ist gerade online   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 22.07.2011, 17:43  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
"Breadcrumps" was ich suche... danach wurde ich eines besseren belehrt als die Breadcumps bei mir liefen.
Es heißt Bread crumb, Brotkrumen. Das ist nun nicht so schwer rauszufinden.

Zitat:
Ich bedank mich im voraus für jeglichen Ratschlag !
Erstmal stellst Du bitte eine konkrete Frage. Sonst hat dieser Thread nämlich nichts im FG Bereich zu suchen. Du erwartest doch nicht ernsthaft, dass sich das jetzt jemand installiert und Dir dann das Debugging abnimmt.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 22.07.2011, 17:59  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
PHP-Code:
$this->navigation()->menu()->renderMenu($page); 
PHP-Code:
$this->navigation()->submenu(4711)->renderMenu($page); 
(Den Code gibts bestimmt nicht, das wäre dann dein Part)
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 22.07.2011, 21:02  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
Beiträge: 603
PHP-Kenntnisse:
Anfänger
dreamcatcher wird schon bald berühmt werden
Standard

@Hüter der PHP.de Welt:
Du hast Recht, die Qualität ist wirklich nicht angemessen für das fortgeschrittenen Forum.
Ich hab mir beim Verfassen des Postes Mühe gegeben, leider hab ich den Punkt trotzdem versäumt.
Nun hab ich deinen Ratschlag beherzigt und den ersten Post editiert.
__________________________________

@Istegelitz

Muahahahahaah

Erstmal danke für deinen kurzen Post, das sind meist die knackigsten

Hab durch deine eine Zeile Code bei google nun endlich auch das Wort gefunden wonach ich gesucht habe: "nested"

Ich hab das Wort schon mal gehört, weiß auch was es bedeutet, mir ist es aber einfach in diesem Zusammenhang nicht eingefallen.

Es ist sooooooooooooooooo viel leichter.

Lösung des gesamten Divboxelementes in der layout.phtml:
PHP-Code:
        <div class="subnav">
            <p>Sub menue:</p><br />

            <?php
                
echo $this->navigation()->menu()->renderSubMenu();
            
?>
        </div>
Dann zeigt er automatisch nur das nächst tiefere Level an vom jetzigen Level aus gesehen.

Kurz & knackig, so muss das sein.
Ick liebe dir


Update: Hier noch kurz die Quelle die mich zum Ziel führte:
http://zend-framework-community.6341...td1753813.html

Geändert von dreamcatcher (22.07.2011 um 21:05 Uhr).
dreamcatcher ist gerade online   Mit Zitat antworten
Alt 22.07.2011, 21:13  
Erfahrener Benutzer
 
Registriert seit: 11.04.2011
Beiträge: 260
PHP-Kenntnisse:
Fortgeschritten
lcrash wird schon bald berühmt werden
Standard

PHP-Code:
<div id="navigation">
<?php
print $this->navigation()
           ->
menu()
           ->
renderMenu(null, array('maxDepth' => 0));
 
?>
</div>
<div id="subnavigation">
<?php
print $this->navigation()
           ->
menu()
           ->
renderMenu(
               
null,
               array(
'minDepth' => 1'onlyActiveBranch' => true'renderParents' => false)
           );
?>
</div>
lcrash ist offline   Mit Zitat antworten
Alt 23.07.2011, 19:51  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
Beiträge: 603
PHP-Kenntnisse:
Anfänger
dreamcatcher wird schon bald berühmt werden
Standard

Danke lcrash.

Weiterführende Informationen:
Ich brauchte außerdem noch ein "einzeln gerendertes Menü".
Dafür hat mir der ViewHelper "renderpartial()" gute Dienste geleistet.

http://framework.zend.com/manual/de/...w.helpers.html

____________________

Dazu habe ich noch eine Frage:

In einem Beispiel zum setPartial steht folgendes am Anfang der menu.phtml:
PHP-Code:
// Set the filter option for the Active navigation
$this->navigation()->findByResource(
  
Zend_Controller_Front::getInstance()->getRequest()->module .
  
Zend_Controller_Front::getInstance()->getRequest()->controller
); 
Wenn ich das nun schreibe oder nicht ergibt es bei mir keinen Unterschied.
Was ist dort mit "filter option" gemeint ?
Ist das noch zeitgemäß ?

Ich finde auch in der Doc vom ZF kein "filter" bei Zend_Navigation.

Geändert von dreamcatcher (24.07.2011 um 03:26 Uhr).
dreamcatcher ist gerade online   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
zend uri, zend findoneby, zend menü, zend framework navigation menu(), zend framework navigation nur submenu ausgeben, zend navigation submenu 3.ebene, zend menu rendermenu, zend rendermenu options, $this->navigation()->menu()->rendermenu($page), zend setpartial mindepth, aktuelle uri zend, zend menüpunkt, findbyresource zend, zend findoneby pages, zend navigation 2011, zend navigation nur erste ebene anzeigen, zend navigation.xml file uri, zend navigation submenu code, $this->navigation()->menu()->setpartial, zend nav untermenü auswählen

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:01 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum