Pro více url jeden presenter
- h4kuna
- Backer | 740
Zdravím hraju si s routama a potřeboval jsem udělat jednoduché odchytavani nekolika url a predavat je jednomu presenteru.
- example.com/o-firme
- example.com/reference
krásně pro to funguje
<?php
//takto jednoduchý zápis se mi opravdu líbi
$static ="<o-firme><reference>";
$router[] = new Route($static, array(
Route::PRESENTER_KEY => 'Front:Static',
'action' => 'default',
'id' => NULL,
));
?>
nejsem si jist zda tento zapis je pro to určen a když do url zadám example.com/p-reference tak mi to routa taky zachytí, což nechci, když už tak ONE_WAY, ale to nemaka, respektive to vygeneruje nejakou hruzu /front.static/?o-firme=front.stati&reference=c. Tak jsem zkusil tomu dat <o-firme><?reference> a to se zasmyčkuje při přesměrování (toto jsem chtěl uvést jako bug).
Otázka zní jak to lépe udělat?
EDIT:
Teď jsem zjistil že to špatně generuje odkazy, což se dalo předpokladat, není to pro toto určené :)
Editoval matata (31. 5. 2010 22:57)
- Ondřej Mirtes
- Člen | 1536
$router[] = new Route('<id o-firme|reference>', array(
'presenter' => 'Front:Static',
'action' => 'default',
));
- h4kuna
- Backer | 740
Ahoj diky to je ono avsak muzes mi jeste napsat jak vygeneruju spravny odkaz v sablone?
pac tady davam to o-firme jako presenter ze?
<?php
<a href="{link o-firme}">o-firme</a>
?>
a ja to potrebuju dat jako id
EDIT:
tak jsem nasel toto pro zapis v prirezene sablone
<?php
<a href="{link default, 'id' => 'o-firme'}">o-firme</a>
?>
ale kdyz to dam nekam jinam tak to nejde to bude asi tim default
Editoval matata (1. 6. 2010 11:09)
- Honza Kuchař
- Člen | 1662
Jak to, že ne? Já myslel, že to tak je? Zapsal bych ty routy obráceně (v opačném pořadí), ale to by v tomto případě snad nemělo mít vliv.
Ale při generování odkzu odkazuješ na prenter nikoli na nějaký text v routě. Generování odkazu je v tomto odhledu neávislé na routách. Ty při generování odkazu vlastně určuješ, kam chceš aby uživatel po kliknutí doputoval.
- radecek
- Člen | 23
Zkousel jsem udelat to same.. Nastavil jsem routy.. nevim proc ale
<onas|aktivity>
nechtelo fungovat, protoze retezec neni
alfanumericky..
$router[] = new Route('onas', array(
'presenter' => 'Text',
'action' => 'default',
));
$router[] = new Route('aktivity', array(
'presenter' => 'Text',
'action' => 'default',
));
Pokud napisu adresu do prohlizece example.cz/onas
, nebo
example.cz/aktivity
zobrazi se prezentr text. Ale nedari se mi
vytvorit na nej odkaz, protoze mi {link}
hlasi chybu, ze prezentry
neexistuji.
Nemel by si z routy vytahnout jejich alternativny prezentery?
Editoval radecek (4. 3. 2011 15:09)
- bojovyletoun
- Člen | 667
$router[] = new Route('<node>', array(
'presenter' => 'Front:Static',
'action' => 'default',
));
class StaticPresenter{
function actionDefault($node){}};
Akorát to neřeší, když zadám neexistující node ( ->Vyhodit třeba
BadRequestException). Když jde o statické stránky mužeš pak volat třeba
$this->setView($node)
( → automaticky pošle šablonu
s názvem $node).
PS: z tohoto dotazu mám pocit, že nejde o 100% čisté řešení, ale asi to nevadí.
- radecek
- Člen | 23
Nejde mi o staticky web, ale spise o to abych si mohl v administraci vytvorit stranky typu – text, clanky, galerie, soubory, a pak by se volali jednotlive prezentery, ktere by nebyli zavisle na url..
Dulezite je to aby stranka mela pak jednotnou administraci pro vsechny typy prezenteru..
Editoval radecek (4. 3. 2011 15:47)