problem s komponentou (sem lama)

- t4nn3r
 - Člen | 4
 
Ahoj, podle datagridu se snazim vytvorit hello world komponentu. Vse funguje tak jak ma, ale mam tu dva problemy.
- <?php $this->paginator->tables = $this->datasource; ?> mi haze:
 
MemberAccessException
Cannot assign to an undeclared property Paginator::$tables.
- samotnou komponentu mi to vypisuje jako raw text
 
Nevim si uy rady, asi mi neco unika … poradte nekdo prosim
componenta:
<?php
require APP_DIR . '/controls/paginator.php';
class zobrazmoduly extends Control
{
public $Paginator;
public $datasource;
public $tables;
	public function __construct()
	{
	parent::__construct();
	$this->Paginator = new paginator;
  }
	public function ShowPaginator ($DataSource)
  {
  $this->datasource = $DataSource;
  //$this->Paginator->tables = $this->datasource;
	}
 	public function renderPaginator()
	{
   $this->paginator->tables = $this->datasource;
	}
}
?>
paginator.php:
{snippet paginator}
<div>{tables}</div>
<?php
Debug::dump($tables);
?>
{/snippet}
layout:
...
<body>
	...
	{capture $content}
	...
</body>
...
a nakonec sablona:
{block $content}
@{control dg:paginator}
				
- redhead
 - Člen | 1313
 
asi by sis měl pořádně pročíst dokumentaci, protože například vůbec nenáš kód nastavující Template k té komponentně, ani nesetuješ do Template tu proměnnou $tables kterou v šabloně vypisuješ. Paginatoru nemůžeš nastavit proměnnou $tables, protože žádná taková v tomto objektu není ( viz Paginator ). Soubor s šablonou pro paginator by neměl končit .php, ale .phtml.
Zkus si projít znovu příklady, protože z toho vidím neporozumnění velké části Nette. Možná by neuškodil i starý quickstart, ale pozor! už nebude nejspíš plně kompatibilní s nynější verzi nette. Spíš jen pro ujasnění pár věcí.
Editoval redhead (29. 9. 2009 21:47)