Vytvorenie jednoduchej komponenty
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- blabla
- Člen | 2
Prosim o radu pri vytvoreni jednoduchej komponenty menu.
Komponenta je tvorena dvomi subormi:
Menu.latte
<ul n:inner-foreach="$menuItems as $item => $link">
<li><a n:href="$link">{$item}</a></li>
</ul>
a Menu.php
<?php
use Nette\Application\UI;
class Menu extends UI\Control
{
public function __construct()
{
parent::__construct();
}
public function render()
{
$this->template->setFile(__DIR__ . '/Menu.latte');
$this->template->menuItems = array(
'Polozka 1' => 'Link1:',
'Polozka 2' => 'Link2:',
'Polozka 3' => 'Link3:',
'Polozka 4' => 'Link4:',
);
$this->template->render();
}
}
V HomepagePresenter
je definovana funkcia:
protected function createComponentMenu()
{
$menu = new Menu;
return $menu;
}
a v sablone volam {control menu}
Ladenka hodi takuto chybu:
`Nette\InvalidArgumentException
Component with name ‚Link1‘ does not exist.`
Urcite prehliadam nejaku samozrejmu vec.
- Jan Tvrdík
- Nette guru | 2595
<li><a n:href="$link">{$item}</a></li> -> <li><a href="{plink $link}">{$item}</a></li>