Odkaz na druhé kolo v šabloně
- CZechBoY
- Člen | 3608
Zdravim,
zakládám nové téma pro spam :)
Snažím se udělat mojí první aplikaci, na bázi Todo (které je teď mimo
provoz na webu v dokumentaci).
Doma mám (nebo budu mít) dvě kola: Amulet, Ravo – z těch budu
vybírat vždycky to druhé, v tom je problém.
v šabloně mám:
{block content}
{var druheKolo $kolo=='Amulet' ? 'Ravo' : 'Amulet'}
potom nějaký blbosti a odkaz na druhé kolo:
<a href="{link this, 'kolo' => !$druheKolo}">{$druheKolo}</a>
to mi však vyhodí jen odkaz: „<a
href="cesta/?kolo=“>Amulet</a> proměnnou to tam nedosadí, avšak
text odkazu dosadí
Nevíte kde je chyba?
Díky moc
Editoval CZechBoY (13. 6. 2011 22:56)
- nanuqcz
- Člen | 822
Ahoj, chyba bude asi v tom vykřičníku před $druheKolo
–
neguješ tím její obsah.
<a href="{link this, 'kolo' => !$druheKolo}">{$druheKolo}</a>
Vykřičník má v šablonách funkci „neescapuj mě“ jen, když je
bezprostředně za znakem {
(např {!$druheKolo}
)
Jinak, nevím co používáš za verzi Nette, ale od 2.0 se makro
{var }
píše i s rovnítkem
{var druheKolo = $kolo=='Amulet'? 'Ravo': 'Amulet'}
- CZechBoY
- Člen | 3608
používám tu jak je v tutoriálu (byla) což je 0.9.asi 6, asi upgradnu na nejnovější, hodil jsem si na hostingu PHP 5.3
<a href="{link this, 'kolo' => $druheKolo}">{$druheKolo}</a>
taky nejede, to právě nevypíše ani ?kolo= do toho odkazu za href=
Editoval CZechBoY (13. 6. 2011 22:24)
- CZechBoY
- Člen | 3608
jenom když tam dám to rovnítko, jinak nic :(
v HTML kodu zobrazuje pouze <a href=„bike/show/“>Amulet</a>
(možná ještě nějaký parametry u A, ale takhle to je :( )
- nanuqcz
- Člen | 822
Problém bude zakopaný možná ještě jinde… Na URL
http://www.testing.jabko.net/Nette_test/document_root/bike/show/?kolo=Ravo
by se měl objevit odkaz s textem „Amulet“, že? Místo toho se
přesměruje na URL bez parametru kolo
.
Ukaž, jak máš definované routy (v bootstrap.php), určitě tam máš
někde defaultní parametr 'kolo' => 'Ravo'
(tak ho smaž a
uvidíme, co to bude dělat pak).
- CZechBoY
- Člen | 3608
nemám páru co je v bootstrap, tak daleko nejsem, mám vše v originálu
:D
hráli jste NFS:Underground 2 ne? tam je taková hláška, když vyhrajete
pouliční závod :D
hodim to teda sem co mám v BootStrapu (pro jistotu)
<?php
// Step 4: Setup application router
$router = $application->getRouter();
$router[] = new NRoute('index.php', array(
'presenter' => 'Homepage',
'action' => 'default',
), NRoute::ONE_WAY);
$router[] = new NRoute('<presenter>/<action>/<id>', array(
'presenter' => 'Homepage',
'action' => 'default',
'id' => NULL,
));
?>
Editoval CZechBoY (13. 6. 2011 22:57)
- CZechBoY
- Člen | 3608
ten presenter mám skoro stejnej jako v tom tutoriálu :-)
<?php
final class BikePresenter extends BasePresenter
{
private $bikeManager = null;
function actionShow($kolo='Ravo')
{
$this->template->casy = $this->model->najdiCasy(Array('kolo'=>$kolo));
}
function renderShow($kolo)
{
$this->template->kolo = $kolo;
}
function getModel() {
If(!IsSet($this->bikeManager))
$this->bikeManager = new BikeManager;
return $this->bikeManager;
}
}
// zde mám ještě formulář, ale ten sem psát snad nemusim, nešlo to ani bez něj
?>
- voda
- Člen | 561
Pro $kolo == 'Ravo'
ti to v kolo url nezobrazí, protože ho
máš jaky výchozí parametr u actionShow
. Podle ‚Zobrazuji
časy na všech kolech‘ tam máš ještě třetí stav? Na začátku jsi psal,
že zobrazuješ jedno nebo druhé.
Jinak bych doporučil mít u action* i render* stejně definované parametry – výchozí hodnoty.
- CZechBoY
- Člen | 3608
no tak buď je zadaný kolo v URL (mám 2 kola) nebo zobrazuju všechny údaje z obou kol
OK vyhodim tu výchozí hodnotu u action
áá díky, funguje to po odebrání parametru :-))
tákže jdu spát s klidným svědomím, že už mi funguje první stránka a
dokonce to tahá (DB je prázdná tak to snad pojede) z DataBáze :)
- CZechBoY
- Člen | 3608
na DiBi návodu jsem našel, že tam %end ani být nemusí, ale ani s ním to nejede
mám toto:
<?php
function najdiCasy($where)
{
return dibi::query(
'SELECT * FROM [kola_casy]',
'if%',!Empty($where),'WHERE [kolo]=%s', $where, '%end'
)->setRowClass('Bike');
}
?>
volám funkci takto: najdiCasy($kolo) – to $kolo z URL
OMG !! já tam měl if% místo %if !!!
tak tohle téma opravdu končím
děkuji vám pánové ponocníci a teď už jdeme ais všichni
spát že? :)
Editoval CZechBoY (14. 6. 2011 0:05)