Tvorba odkazu v template control(u)
- Mesiah
- Člen | 240
Dobrý den,
vytvořil jsem si komponentu, která generuje menu kategorií. Jenže mám
problém při tvorbě odkazu na presenter Post akci show s parametrem id.
Můžete mi poradit, kde dělám chybu?
CategoriesControl.php
<?php
class CategoriesControl extends Control
{
private $__categories = NULL;
public function render()
{
$c = $this->categories->findCategories();
$template = parent::createTemplate();
$template->setFile(__DIR__ . '/CategoriesControl.phtml');
$template->categories = $c;
$template->render();
}
public function getCategories()
{
if (!isset($this->__categories))
{
$this->__categories = new Categories();
}
return $this->__categories;
}
}
?>
CategoriesControl.phtml
<hr class="sidebar-border" />
<h1 class="sidebar">V kategorii</h1>
<ul class="category">
{foreach $categories as $category}
<li><a class="link" href="{link Post:show $category->id}">{$category->category}</a></li> {* <-- tady je problém... :( *}
{/foreach}
</ul>
- mojeto
- Člen | 4
Zdravím pravděpodobně se to zde už řešilo, ale nikde jsem to nenašel.
Jak vytvořím v šabloně odkaz (použitý v hlavním menu) na prezenter a akci bez perzistentních parametrů?
Příklad:
v UserPresenteru mám persistentní parametr $id
<?php
...
/** @persistent int */
public $id = "";
...
?>
v hlavní šabloně mám menu společné pro všechny pohledy:
<!-- @layout.phtml -->
<div id="menu">
<h3>Menu</h3>
<ul>
<li><a href="{plink User:}">správa uživatelů</a></li>
<li><a href="{plink User:add}">přidat uživatele</a></li>
</ul>
</div>
v šabloně defaultního pohledu mám vygenerovány odkazy na editaci uživatelů pomocí jejich id
<!-- User.default.phtml -->
...
<a href="{plink User:edit id => $userId}">upravit uživatele {$user->name}</a>
...
při přístupu do aplikace na defaultní stránku (User:default) se layoutu
vygeneruje odkaz {plink User:}
jako ‚localhost/user‘
pokud přejdu na editaci uživatele (User:edit = localhost/user/edit/1)
vygeneruje se ten samý odkaz v layoutu {plink User:}
jako
‚localhost/user/default/1‘
jak tomu zabráním, a docílím toho aby se v layoutu generoval odkaz bez perzistentích parametrů?
Vím že mohu použít něco jako {plink User: id => ''}
ale
pokud časem v prezenteru přidám další perzistentní paramter přijde mi
divné hledat všechny takové odkazy a přidávat tam nulováni tohoto
parametru.
Jde nějak vytvořit odkaz na prezenter a jeho akci bez předání perzistentních parametrů?
Editoval mojeto (14. 8. 2010 16:23)
- Patrik Votoček
- Člen | 2221
Nastavením persistentního parametru na defaultní
hodnotu: {plink User:, id => ""}