problem s komponentou (sem lama)

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

Ahoj, podle datagridu se snazim vytvorit hello world komponentu. Vse funguje tak jak ma, ale mam tu dva problemy.

  1. <?php $this->paginator->tables = $this->datasource; ?> mi haze:

MemberAccessException
Cannot assign to an undeclared property Paginator::$tables.

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

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)

t4nn3r
Člen | 4
+
0
-

mas pravdu v tom ze tohle je bohuzel na me slozity az moc. Nejak se absolutne nechytam.