Trieda čo dedí od BasePresenteru

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
iNviNho
Člen | 352
+
0
-

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
+
0
-

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)

iNviNho
Člen | 352
+
0
-

Len som si to chcel oddeliť kvôli prehladnosti, ale v poriadku, Ďakujem.

Šaman
Člen | 2668
+
0
-

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.