Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework]Zend_Navigation + Zend_Router problem
R4D3K
post
Post #1





Grupa: Zarejestrowani
Postów: 144
Pomógł: 12
Dołączył: 16.03.2007

Ostrzeżenie: (0%)
-----


Witam wszystkich, ostatnio zacząłem używać Zend_Navigation. I posiadam następujący bootstrap:
  1. <?php
  2.  
  3. class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
  4. {
  5. protected function _initViewHelpers() {
  6. $this->bootstrap('layout');
  7. $layout = $this->getResource('layout');
  8. $view = $layout->getView();
  9. //init doctype
  10. $view->doctype('XHTML1_STRICT');
  11. //init Zend_Navigation
  12. $configNav = new Zend_Config_Xml(APPLICATION_PATH . '/configs/navigation.xml','main');
  13. $view->navigation(new Zend_Navigation($configNav));
  14. //init Zend_Router
  15. $configRoute = new Zend_Config_Xml(APPLICATION_PATH . '/configs/route.xml','route');
  16. $router = Zend_Controller_Front::getInstance()->getRouter();
  17. $router->addConfig($configRoute);
  18. }
  19.  
  20. }


Oraz pliki xml:

navigation.xml:
Kod
<?xml version="1.0" encoding="UTF-8"?>
<root>
  <main>
      <start>
          <label>START</label>
          <controller>index</controller>
          <action>start</action>
      </start>

      <imprezy>
          <label>IMPREZY</label>
          <controller>index</controller>
          <action>imprezy</action>
      </imprezy>

      <oferta>
          <label>OFERTA</label>
          <controller>index</controller>
          <action>oferta</action>
      </oferta>

      <galeria>
          <label>GALERIA</label>
          <controller>index</controller>
          <action>galeria</action>
      </galeria>

      <kontakt>
          <label>KONTAKT</label>
          <controller>index</controller>
          <action>kontakt</action>
      </kontakt>
  </main>
</root>


Oraz, route.xml:

Kod
<?xml version="1.0" encoding="UTF-8"?>
<root>
<main>
    <imprezy type="Zend_Controller_Router_Route_Static">
        <route>imprezy.html</route>
        <defaults>
            <controller>index</controller>
            <action>imprezy</action>
        </defaults>
    </imprezy>
    <oferta type="Zend_Controller_Router_Route_Static">
        <route>oferta.html</route>
        <defaults>
            <controller>index</controller>
            <action>oferta</action>
        </defaults>
    </oferta>
    <oferta type="Zend_Controller_Router_Route_Static">
        <route>oferta.html</route>
        <defaults>
            <controller>index</controller>
            <action>oferta</action>
        </defaults>
    </oferta>
    <kontakt type="Zend_Controller_Router_Route_Static">
        <route>kontakt.html</route>
        <defaults>
            <controller>index</controller>
            <action>kontakt</action>
        </defaults>
    </kontakt>
</main>
</root>


A problem jest generowanie linków przez Zend_Navigation, za chiny nie mogę znaleźć w dokumentacji oraz w necie w jaki sposób zmusić Zend_Navigation do generowania tras, które zdefiniowałem w route.xml. Czy jest jakiś sposób na zdefiniowanie np w navigation.xml nazwy trasy, która będzie używana ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
batman
post
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat
Czy jest jakiś sposób na zdefiniowanie np w navigation.xml nazwy trasy, która będzie używana
Tak. Z pomocą przyjdzie Zend_Navigation_Page_Mvc, a dokładniej parametr route. Zamiast kontrolera i akcji podajesz nazwę ścieżki.
Powód edycji: [batman]:


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
R4D3K
post
Post #3





Grupa: Zarejestrowani
Postów: 144
Pomógł: 12
Dołączył: 16.03.2007

Ostrzeżenie: (0%)
-----


Dzięki batman, poprawiłem swój plik routes.xml, jednak to zrodziło moje kolejne pytanie. W momencie gdy usunę tagi <controller> i <action> i wstwie <route> z nazwą ścieżki owszem jest gitara Zend_Navigation generuje mi menu z właściwym linkiem, ale co w przypadku gdy chce pozostać przy domyślnym routerze a tylko cześć linków niech korzysta z routerów ?

Kod
<?xml version="1.0" encoding="UTF-8"?>
<root>
  <main>
      <start>
          <label>START</label>
          <controller>index</controller>
      </start>

      <imprezy>
          <label>IMPREZY</label>
          <route>imprezy</route>
      </imprezy>

      <oferta>
          <label>OFERTA</label>
          <route>oferta</route>
      </oferta>

      <galeria>
          <label>GALERIA</label>
          <controller>index</controller>
          <action>galeria</action>
      </galeria>

      <kontakt>
          <label>KONTAKT</label>
          <route>kontakt</route>
      </kontakt>
  </main>
</root>


Co ciekawe odkrycie, że w momencie gdy wpisuje localhost linki są generowane poprawnie,natomiast po wejściu na stronę np oferta.html, opcja menu START prowadzi do strony oferta.html (tak samo się dzieje z działem galeria) proszę o pomoc.
Go to the top of the page
+Quote Post
batman
post
Post #4





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Tak na szybkiego, to jedyne co przychodzi mi do głowy to brak domyślnego routera, czyli takiego, który będzie przepisywał pierwszy człon adresu na kontroler, a drugi na akcję. Ale to tylko strzał na ślepo. Dopiero jutro będę mógł przysiąść z kodem.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
R4D3K
post
Post #5





Grupa: Zarejestrowani
Postów: 144
Pomógł: 12
Dołączył: 16.03.2007

Ostrzeżenie: (0%)
-----


Domyślny router jest i działa bo jak wpisze w URL: /controller/action to wszystko gra, z resztą nie usuwałem go tylko użyłem addConfig co powinno dodać te ścieżki do bieżącej, chyba, że się mylę (Używam ZF 1.10.8)

Przepraszam , że nowy post ale jakoś nie mogę znaleźć przycisku edytuj, problem rozwiązałem ! Problemem był kontroler zenda używał do generowanie menu aktywnej ścieżki route, dlatego nadpisywał mi inne pozycje w menu
Go to the top of the page
+Quote Post
batman
post
Post #6





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cieszę się, że udało Ci się rozwiązać problem. Dopiero dzisiaj znalazłem chwilę, aby siąść do kodu.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 03:30