Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

MVC i konfiguracija URL RUTE (parametar za jezik)

[es] :: PHP :: MVC i konfiguracija URL RUTE (parametar za jezik)

[ Pregleda: 2885 | Odgovora: 16 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zgas

Član broj: 74613
Poruke: 334
*.ptt.rs.

Sajt: odbrojavanje.com


Profil

icon MVC i konfiguracija URL RUTE (parametar za jezik)27.11.2009. u 12:12 - pre 142 meseci
Pravim visejezicni sajt na srpskom i engleskom.
Koristim MVC Zend Framewrok.
Zend Framework iscitava URL RUTU na klasican nacin po semi:

http://domen.com/module/controller/action

zelim da u ovoj url ruti pre svih parametara imam parametar jezika:

http://domen.com/language/module/controller/action

da li imate ideju kako to implementirati?

Klasican nacina rade zend rutera je:
ako ne postoji modul pod tim imenom on trazi da li pod tim imenom postoji kontroler,
ako ne postoji kontroler pod tim imenom on trazi akciju po istim tim imenom.



Aukcije, www.Odbrojavanje.com
Aukcija može biti osvojena jeftino - za 30 sekundi a 6 dinara!
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Humanity d.o.o.
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.

Sajt: www.nikolaposa.in.rs


+33 Profil

icon Re: MVC i konfiguracija URL RUTE (parametar za jezik)27.11.2009. u 13:40 - pre 142 meseci
Za početak moraš da kreiraš novu rutu:
Code:

$route = new Zend_Controller_Router_Route(
    ':lang/:controller/:action/*',
    array(
        'lang'       => 'sr',
        'module'     => 'default',
        'controller' => 'index',
        'action'     => 'index'
    )
);

Takva ruta će da "hvata" ovako nešto:
http://www.test.com/ -> jezik - srpski, modul - default, kontroler - index
http://www.test.com/en/foo/bar -> jezik - engleski, modul - default, kontroler - foo, akcija - bar.
 
Odgovor na temu

zgas

Član broj: 74613
Poruke: 334
*.ptt.rs.

Sajt: odbrojavanje.com


Profil

icon Re: MVC i konfiguracija URL RUTE (parametar za jezik)27.11.2009. u 14:35 - pre 142 meseci
Da, to je moglo bi se reci brzo i efikasno resenje, ali ono ima nedostatak(ke) koji zelim da izbegnem:

Ako zelim da pozovem "default" modul, "indeks" kontroler, "kontakt" akciju na srpskom moram da pisem:

http://domen.com/sr/default/index/kontakt/

a zeleo bi da to pisem kao standarno sto se koristi:

http://domen.com/sr/kontakt/

Onaj dugacki oblik jedino dolazi u obzir ako modul nije 'default', a kontroler nije 'index'.

Sta tu moze da se uradi?

Aukcije, www.Odbrojavanje.com
Aukcija može biti osvojena jeftino - za 30 sekundi a 6 dinara!
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Humanity d.o.o.
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.

Sajt: www.nikolaposa.in.rs


+33 Profil

icon Re: MVC i konfiguracija URL RUTE (parametar za jezik)27.11.2009. u 14:57 - pre 142 meseci
E pa ja najpre nisam znao da će taj tvoj sajt imati više modula, tako da bi ona ruta koju sam poslao bila neupoterbljiva, jer njoj nikako ne možeš da proslediš neki drugi modul kao parametar. To bi onda trebalo izmeniti ovako:
Code:

$route = new Zend_Controller_Router_Route(
    ':lang/:module/:controller/:action/*',
    array(
        'lang'       => 'sr',
        'module'     => 'default',
        'controller' => 'index',
        'action'     => 'index'
    )
);

E sad, za to prepravljanje koje tražiš moraš da dodaš još jednu rutu, preko ove prethodne, npr. ovako nešto:
Code:

$route1 = new Zend_Controller_Router_Route(
    ':lang/:action/*',
    array(
        'lang'       => 'sr',
        'module'     => 'default',
        'controller' => 'index',
        'action'     => 'index'
    )
);

I sad bi trebalo da kad dođe neki ovakav zahtev: http://domen.com/sr/kontakt, da ga on prerutira na tu drugu rutu, odnosno, na "default" modul, "index" kontroler i "kontakt" akciju.
 
Odgovor na temu

batika

Član broj: 72401
Poruke: 67
*.adsl.eunet.rs.



Profil

icon Re: MVC i konfiguracija URL RUTE (parametar za jezik)27.11.2009. u 15:22 - pre 142 meseci
Savetujem ti da za svaki tip url-a pises novu routu da bi imao user friendly linkove.

Upravo ovakav problem sam i ja imao, i resio sam ga sa 30-tak routa.

Pozdrav
 
Odgovor na temu

zgas

Član broj: 74613
Poruke: 334
*.ptt.rs.

Sajt: odbrojavanje.com


Profil

icon Re: MVC i konfiguracija URL RUTE (parametar za jezik)27.11.2009. u 15:28 - pre 142 meseci
Auuu 'phpandjelko' šta ako imam preko 200 stranica?!

Nadam se Nikola da ce raditi to sto si predlozio.
Aukcije, www.Odbrojavanje.com
Aukcija može biti osvojena jeftino - za 30 sekundi a 6 dinara!
 
Odgovor na temu

kazil
Robert Bašić
Full time PHP dev :)
Bačka Topola - Novi Sad

Član broj: 120044
Poruke: 686
*.telenor.rs.

Jabber: robertbasic@elitesecurity.org
ICQ: 446475288
Sajt: robertbasic.com


+2 Profil

icon Re: MVC i konfiguracija URL RUTE (parametar za jezik)27.11.2009. u 16:35 - pre 142 meseci
A jeste se vec poigrali sa chain-ovima? ;)

http://framework.zend.com/issu...Acomment-tabpanel#action_30871

http://framework.zend.com/manu...controller.router.routes.chain
 
Odgovor na temu

kazil
Robert Bašić
Full time PHP dev :)
Bačka Topola - Novi Sad

Član broj: 120044
Poruke: 686
*.telenor.co.yu.

Jabber: robertbasic@elitesecurity.org
ICQ: 446475288
Sajt: robertbasic.com


+2 Profil

icon Re: MVC i konfiguracija URL RUTE (parametar za jezik)27.11.2009. u 17:33 - pre 142 meseci
Evo jedan primer sa chain-ovima:

Code:

     public function _initRoutes()
    {
        $this->bootstrap('FrontController');
        $this->_frontController = $this->getResource('FrontController');
        $router = $this->_frontController->getRouter();

        $langRoute = new Zend_Controller_Router_Route(':lang', array('lang' => 'en'));
        $fooRoute = new Zend_Controller_Router_Route_Static(
            'contact',
            array('controller'=>'index', 'action'=>'index')
        );
        $defaultRoute = new Zend_Controller_Router_Route(
            ':controller/:action',
            array(
                'module'=>'default',
                'controller'=>'index',
                'action'=>'index',
            )
        );

        $fooRoute = $langRoute->chain($fooRoute);
        $defaultRoute = $langRoute->chain($defaultRoute);
        
        $router->addRoute('langRouter', $langRoute);
        $router->addRoute('defaultRouter', $defaultRoute);
        $router->addRoute('fooRouter', $fooRoute);
    }


/ => /index/index/lang/en
/sr => /index/index/lang/sr
/sr/contact => /index/index/lang/sr
/sr/foo/ => /foo/index/lang/sr
/sr/foo/bar => /foo/bar/lang/sr

:)

Edit: dodao "langRouter" na router.

[Ovu poruku je menjao kazil dana 27.11.2009. u 18:54 GMT+1]
 
Odgovor na temu

zgas

Član broj: 74613
Poruke: 334
*.ptt.rs.

Sajt: odbrojavanje.com


Profil

icon Re: MVC i konfiguracija URL RUTE (parametar za jezik)27.11.2009. u 18:08 - pre 142 meseci
Ne mogu da shvatim chain-ove.

Ono što je Nikola Poša napisao o registraciji više ruta jedna preko druge mi je mnogo razumljivije i mogu da shvatim princip rada, a nadam se da će i raditi.
Aukcije, www.Odbrojavanje.com
Aukcija može biti osvojena jeftino - za 30 sekundi a 6 dinara!
 
Odgovor na temu

kazil
Robert Bašić
Full time PHP dev :)
Bačka Topola - Novi Sad

Član broj: 120044
Poruke: 686
*.telenor.rs.

Jabber: robertbasic@elitesecurity.org
ICQ: 446475288
Sajt: robertbasic.com


+2 Profil

icon Re: MVC i konfiguracija URL RUTE (parametar za jezik)27.11.2009. u 18:21 - pre 142 meseci
Pa prvo napravis route za jezik, pa posle svi ostali route-ovi nasledjuju, nadovezuju - chain-uju - taj route:

Code:

// na langouge route chain-uj default route
$defaultRoute = $langRoute->chain($defaultRoute);


Ovo zapravo daje :lang/:controller/:action

Ovako route za jezik definises samo na jednom mestu, a i kod ostalih route-a ne moras jos dodatno da vodis racuna o jeziku.
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Humanity d.o.o.
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.

Sajt: www.nikolaposa.in.rs


+33 Profil

icon Re: MVC i konfiguracija URL RUTE (parametar za jezik)27.11.2009. u 18:22 - pre 142 meseci
Baci pogled na ovaj tutorijal. Tu imaš primer sa chain-ovanjem "language" i standardne rute.
 
Odgovor na temu

zgas

Član broj: 74613
Poruke: 334
*.ptt.rs.

Sajt: odbrojavanje.com


Profil

icon Re: MVC i konfiguracija URL RUTE (parametar za jezik)27.11.2009. u 18:37 - pre 142 meseci
Hvala 'kazil' sada mi je jasno.
Hvala i Nikola bas je kompletan tutorijal.

Radim ponekad u Zendu i sada mi je jasno kako cu to izvesti.

Jednino ne znam kako to da izvrdem u sopstvenom Framework-u koji sam razvio.
Uradio sam dinamcko i staticko rutovanje kao kod zenda, ali nema chain
i ne znam koliko je komplikovana da ga razvijam i implementiram u moj Framework.


Aukcije, www.Odbrojavanje.com
Aukcija može biti osvojena jeftino - za 30 sekundi a 6 dinara!
 
Odgovor na temu

batika

Član broj: 72401
Poruke: 67
*.adsl.eunet.rs.



Profil

icon Re: MVC i konfiguracija URL RUTE (parametar za jezik)27.11.2009. u 20:16 - pre 142 meseci
Ok. Nisam imao toliko URL-ova.

A nisam radio sa chainovima.

Basicu, sad si pisao blog o chainovanju...
 
Odgovor na temu

kazil
Robert Bašić
Full time PHP dev :)
Bačka Topola - Novi Sad

Član broj: 120044
Poruke: 686
*.telenor.co.yu.

Jabber: robertbasic@elitesecurity.org
ICQ: 446475288
Sajt: robertbasic.com


+2 Profil

icon Re: MVC i konfiguracija URL RUTE (parametar za jezik)27.11.2009. u 20:27 - pre 142 meseci
Da, pretocio sam ovaj primer od malopre u post :P

Btw, ne znam da li znate za prevodjenje route-a, mozda ce vam i to biti interesantno:
http://framework.zend.com/manu...s.standard.translated-segments
 
Odgovor na temu

batika

Član broj: 72401
Poruke: 67
*.adsl.eunet.rs.



Profil

icon Re: MVC i konfiguracija URL RUTE (parametar za jezik)27.11.2009. u 20:36 - pre 142 meseci
Basicu brate jel ti ikad odmaras?
Sa posla na posao...
 
Odgovor na temu

kazil
Robert Bašić
Full time PHP dev :)
Bačka Topola - Novi Sad

Član broj: 120044
Poruke: 686
*.telenor.rs.

Jabber: robertbasic@elitesecurity.org
ICQ: 446475288
Sajt: robertbasic.com


+2 Profil

icon Re: MVC i konfiguracija URL RUTE (parametar za jezik)27.11.2009. u 20:39 - pre 142 meseci
Kad se bavis sa onim sto volis, onda to i nije posao ;)
 
Odgovor na temu

gidraa1

Član broj: 231118
Poruke: 41
95.180.83.*



+1 Profil

icon Re: MVC i konfiguracija URL RUTE (parametar za jezik)28.11.2009. u 22:30 - pre 142 meseci
Imam jednostavno pitanje za poznavaoce Zend Frameworka pa posto se tice ruta da ne otvaram novu temu.Imam ovakvu rutu
Code:

$Router->addRoute("test", new Zend_Controller_Router_Route("test1/test",array("controller" => "test1", "action" => "blablabla") ));


E sad to radi i to je ok.Nego posledica toga je da za svaki nov url MORAM praviti rutu da bi se view scripta mogla pozvati.Primer, imam kontroler test1, i u njemu sad akciju novaAction() { } i u view/scripts/nova.phtml, i sad kada pozovem localhost/test1/nova izbaci kao da stranica ne postoji, a kada dodam rutu za tu novaAction onda normalno radi.Pitanje moje bi glasilo, da li to tako treba da bude i da li se moze izbeci nekako.Glupo mi je sad da moram za svaki url praviti rutu samo zato sto sam za jedan url hteo.
 
Odgovor na temu

[es] :: PHP :: MVC i konfiguracija URL RUTE (parametar za jezik)

[ Pregleda: 2885 | Odgovora: 16 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.