NComponent is not attached to ‚Presenter‘

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

Mam maly problem. Po tom ako som zacal pouzivat prefixovane Nette, mi tento kus kodu prestal fungovat. Doplnil som N-ka, kde som mal, ale uz neviem ako dalej.

<?php

class AuthPresenter extends NPresenter
	{
		/** @persistent int */
		public $backlink = '';

		public function actionLogin($backlink)
		{
			$form = new NAppForm($this, 'loginForm');
			$form->addGroup('Prihlásenie');
			$form->addText('username', 'Prihlasovacie meno:');
			$form->addPassword('password', 'Heslo:');
			$form->addSubmit('login', 'Prihlásiť');
			$form->onSubmit[] = array($this, 'loginFormSubmitted');

			$this->template->form = $form;
		}

		public function actionLogout()
		{
			NEnvironment::getUser()->signOut();
			$this->redirect('Auth:login');
		}

		public function loginFormSubmitted(NAppForm $form)
		{
			$user = NEnvironment::getUser();
			$user->authenticate($form['username']->getValue(), sha1($form['password']->getValue()));
			$this->getApplication()->restoreRequest($this->backlink);
			$this->redirect('Evidence:list');
		}
	}
?>

Mozete mi prosim pomoct

Jod
Člen | 701
+
0
-

Máš nejaký pádny dôvod používať Nkovú verziu?

NComponent is not attached to ‚Presenter‘

O ktorý komponent konkrétne ide? NAppForm? Neak tam chybu nevidim odoka.

jchorvat
Člen | 12
+
0
-

Musim pouzivat Nkovu verziu, pretoze na hostingu je PECL rozsirenie Http.

Uz som to vyriesil, v Nkovej verzii je chyba v subore AppForm.php na riadku 57 – chyba tam ‚N‘.

Ked som to opravil, tak tam vyskocila ina chyba: Service ‚IAuthenticator‘ not found.

A to uz neviem vyriesit…

Jod
Člen | 701
+
0
-

Skús sa mrknuť v NServiceLocator::getService.

Chyba nastane asi v Nette/Web/User tu:


	/**
	 * Returns authentication handler.
	 * @return IAuthenticator
	 */
	final public function getAuthenticationHandler()
	{
		if ($this->authenticationHandler === NULL) {
			$this->authenticationHandler = NEnvironment::getService('Nette\Security\IAuthenticator');
		}
		return $this->authenticationHandler;
	}

Skús si ten interface includnut na zaciatku suboru, možno to pojde =D

Editoval Jod (14. 2. 2009 14:02)

jchorvat
Člen | 12
+
0
-

Skusil som a nefunguje. Zistil som, ze nefunguje ani priklad Akrabat.forms, ktory je v tej Nkovej distribucii…

David Grudl
Nette Core | 8282
+
0
-

Pokusil jsem se vylepšit generátor N-verze, snad to bude už OK.

jchorvat
Člen | 12
+
0
-

Dakujem, uz to funguje super.

Yrwein
Člen | 45
+
0
-

David Grudl napsal(a):

Pokusil jsem se vylepšit generátor N-verze, snad to bude už OK.

Možná by bylo fajn přidat link na prázdnou hlavní stránku API dokumentace. Člověk se tam dle mého jinak bez křišťálové koule (google a tušení, že to existuje?) nedostane.