Zavolání jeného presenteru ze šablony

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

Mám následující presenter který využívá modul AuthModule

/**
 * Přihlášení uživatele
 */
class Auth_AuthPresenter extends Auth_BasePresenter {

	public $defaultModule = ':Desktop:Desktop:default';

	/**
	 * Vytvoření komponenty formuláře přihlášení
	 *
	 * @return NAppForm Rukojeť přihlašovacího formuláře
	 */
	protected function createComponentLoginForm() {
		$form = new NAppForm;
		$form->addText('username', 'Jméno : ');
		$form->addPassword('password', 'Heslo : ');
		$form->addSubmit('login', 'Přihlásit');
		$form->addProtection('Byl jste odhlášen.');
		$form->onSubmit[] = callback($this, 'loginFormSubmitted');
		return $form;
	}

	/**
	 * Obsluha odeslaného formuláře
	 *
	 * @param NAppForm $form Rukojeť přihlašovacího formuláře
	 */
	public function loginFormSubmitted($form) {
		try {
			$user = $this->getUser();
			$user->login($form['username']->getValue(), $form['password']->getValue());
			$this->redirect($this->defaultModule);
		} catch (NAuthenticationException $e) {
			$form->addError($e->getMessage());
		}
	}

	/**
	 * Odhlášení přihlášeného uživatele
	 */
	public function actionLogout() {
		$this->user->logout();
		$this->flashMessage('Byl jste odhlášen.');
		$this->redirect('Auth:login');
	}

}

Některé moduly maji společný lauyout, některé mají svuj layout. A teď řeším to že chci z libovolné nebo solečné šablony třeba přes odkaz zavolat AuthModul presenter AuthPresenter.php a v něm metodu actionLogout. Tím by pak došlo k odhlášení uživatele a redirect na login stránku.

arron
Člen | 464
+
0
-

A coz treba takhle

<a href="{plink :Auth:Auth:logout}">Logout</a>

Editoval arron (29. 9. 2010 13:13)