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.