Negeneruje se formulář +něco málo k modulům

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

Dobrý den,

mám problém, negeneruje se mi formulář… Teď jsem s Nette asi týden nic nedělal, tak mám pocit, že problém bude v nějaké hlouposti, ale nedaří se mi na ni přijít.
Mám presenter Post a jeho akci show, v šabloně akci show volám widget addComment, který je napsaný v PostPreseneteru i s událostí.
A k modelu: když mám strukturu aplikace:

app/
	AdminModule/
		presenters/
		templates/
	FrontModule/
		presenters/
		templates/
	models/
	presenters/
	templates/
	...
...

pak mi robotLoader nenajde template k určeným modulům a musím mít neprůhlednou strukturu aplikace

app/
	AdminModule/
		presenters/
	FrontModule/
		presenters/
	models/
	presenters/
	templates/
		AdminModule/
		FrontModule/
		...
	...
...

Nevíte, proč mi to dělá? Budete k tomu potřebovat víc informací? Tak to je asi vše k úvodu.

PostPresenter

<?php
final class Front_PostPresenter extends BasePresenter
{
	private $__posts;
	private $__comments;

	public function actionShow($id)
	{
		$this->template->post = $this->posts->findPostById($id);
	}

	public function createComponentAddComment()
	{
		$toId = $this->getParam('id');
		$post = $this->posts->findPostById($toId);

		if (!$post)
		{
			throw new BadRequestException('Post don\'t exist.');
		}

		dump($post);
		// TADY SE VYPÍŠE OBJEKT, TAKŽE JE NALEZEN

		$form = new AppForm();

		$form->addHidden('id', $post->id);
		$form->addText('name', 'Jméno')->addRule(Form::FILLED, 'Jméno je povinná položka, bez ní nelze vkládat komentář.');
		$form->addText('email', 'E-Mail')->addRule(Form::EMAIL, 'E-Mail musí mít platný tvar.');
		$form->addTextArea('text', 'Text', 60)->addRule(Form::FILLED, 'Text nemůže být prázdný.');
		$form->addSubmit('save', 'Přidat');

		$form->onSubmit[] = callback($this, 'onAddComment');

		return $form;
	}

	public function onAddComment(AppForm $form)
	{
		if ($form['save']->isSubmittedBy())
		{
			$comment = new Comment();

			$values = $form->getValues();

			$comment->id_post = $values['id'];
			$comment->name = $values['name'];
			$comment->email = $values['email'];
			$comment->posted = new DateTime();
			$comment->text = $values['text'];
			$comment->create();

			$this->flashMessage('Díky za Váš komentář.', 'information');
		}
		$this->redirect($this);
	}

	public function getPosts()
	{
		if (!isset($his->__posts))
		{
			$this->__posts = new Posts();
		}

		return $this->__posts;
	}

	public function getComments()
	{
		if (!isset($this->__comments))
		{
			$this->__comments = new Comments();
		}

		return $this->__comments;
	}
}
?>

show.phtml

<?php

// ...

<img class="border" src="{$basePath}/design/grbrd-right.png" alt="" />
<a name="comments"></a>

{widget comments $post->id}

<img class="border" src="{$basePath}/design/grbrd-left.png" alt="" />

{widget addComment $post->id}
?>

Editoval Mesiah (14. 8. 2010 17:09)

mojeto
Člen | 4
+
0
-

do BasePresenteru si přidej

<?php
...
public $oldLayoutMode = FALSE;

public $oldModuleMode = FALSE;
...
?>
Mesiah
Člen | 240
+
0
-

jo, teďkom jsem to zrovna četl, bylo to pár topicu pod tímhle :) díky :)
a teď už jen problém s tím formem… nápady?

Mesiah
Člen | 240
+
0
-

tak jo, když jsem oddělal $post->id na tvar {widget addComment} formulář se zobrazuje. Teď mě jen trápí problém, jak na redirect. Přesněji redirect na stránku, odkud je volaný control. Poradíte?
$this->redirect($this); nefakčí…

22
Člen | 1478
+
0
-

a?

$this->redirect('this')

dokumentace a vyhledávání je nefunkční?