Trieda čo dedí od BasePresenteru
- iNviNho
- Člen | 352
Ahoj,
Chcem sa opýtať či je možné si vytvoriť niečo ako druhý BasePresenter?
Loginform potrebujem mať prítomný kdekoľvek sa uživateľ nachádza(presenter alebo šablona) a nechcem to všetko pchať do BasePresentera, preto si chcem vytvoriť LoginPresenter.
Avšak nefungujú mi riešenia, čo som skúšal, napr:
<?php
abstract class BasePresenter extends LoginPresenter
{
}
class LoginPresenter extends \Nette\Application\UI\Presenter {
public function createComponentLoginForm() {
/**
login
*/
}
}
?>
a potom v hociktorej šablone
<?php
{control loginForm}
?>
Ako teda na to?
Editoval iNviNho (19. 6. 2014 16:16)
- David Matějka
- Moderator | 6445
No pokud ten loginForm ma byt dostupny v kazde sablone (a tedy v kazdem presenteru), tak ta createComponentLoginForm ma byt prave v BasePresenteru (nebo muzes pouzit traity jako alternativu)
Editoval matej21 (19. 6. 2014 16:21)
- Šaman
- Člen | 2668
iNviNho napsal(a):
Ahoj,
Chcem sa opýtať či je možné si vytvoriť niečo ako druhý BasePresenter?
Loginform potrebujem mať prítomný kdekoľvek sa uživateľ nachádza(presenter alebo šablona) a nechcem to všetko pchať do BasePresentera, preto si chcem vytvoriť LoginPresenter.
Avšak nefungujú mi riešenia, čo som skúšal, napr:
<?php abstract class BasePresenter extends LoginPresenter { } class LoginPresenter extends \Nette\Application\UI\Presenter { public function createComponentLoginForm() { /** login */ } } ?>
a potom v hociktorej šablone
<?php {control loginForm} ?>
Ako teda na to?
Co ti na tom nefunguje? Sice to je hezká ukázka nadužívání dědičnosti, ale fungovat by to mělo.