Proměnná ven ze šablony

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

Ahoj Nette hrdinové, pomožte mi prosím v jedné maličkosti. V presenteru vytvářím template takto:

$template = $this->createTemplate();

Později jí ještě nastavím .phtml soubor a rád bych z toho .phtml souboru dostal ven nějaké údaje. Asi takto:

echo $template->css_chain

Jak zapíšu tu propertu v PHTML šabloně?

Díky a s pozdravem Tom

norbe
Backer | 405
+
0
-

Ahoj,

  1. Proč používat $this->createTemplate() když se vytvoří utomaticky po přístupu k $this->template?
  2. Property nastavíš prostě tak, že do ní přiřadíš hodnotu (např. $this->template->foo = "bar"), ale význam požití echo mi trochu uniká…
tr.
Člen | 79
+
0
-

Ahoj, jde o to že vytvářím šablonovací systém na emaily – nejde o šablony pro zobrazení v prohlížeči.

Jde mi o to, aby stránka Mail1.phtml obsahovala sv;j vlastní obsah a navíc nesla nějakou konfiguraci. To Echo je tam je z debugovacich duvodu.

Stale mi to ale nefunguje. V šabloně mam:

` $this->css_include = „bar“;`

a tam kde ji vytvářím mám:

` echo ($template->css_include);`

Píše to ale:

* Notice: The variable ‚css_include‘ does not exist in template ‚Mail.templ2.phtml‘*

Chápu jak zapsat property do šablony v presenteru, nevím jak ale zapsat property v šabloně. Děkujiza pomoc. T.

22
Člen | 1478
+
0
-

to proto, že namáš přiřazenou hodnotu..když už, tak:

$this->template->css_include = "bar";
tr.
Člen | 79
+
0
-

Na začátku mého PHTML souboru mám napsáno:

<?php
   $this->template->css_include = "bar";
?>

A vážně to nefunguje. Myslím že tohle je nemožné proto že se to musí nějak definovat uvnitř té třídy Template a ne jen v souboru, nevím ale jak v PHTML souboru se dostat do té třídy která z toho nakonec vznikne.

22 děkuji, ale ten směr je obráceně – proměnnou definuji v šabloně a čtu ji venku.

toka
Člen | 253
+
0
-

Teď jsem s tím chvíli experimentoval a na nic jsem nepřišel – samotného mne zajímá jak na to. Není to ale v rozporu s logikou?

bazo
Člen | 620
+
0
-

skus v sablone $presenter->template->var = ‚..‘; ale neskusal som

tr.
Člen | 79
+
0
-

bazo napsal(a):

skus v sablone $presenter->template->var = ‚..‘; ale neskusal som

Ahoj Bazo, nejedna se o defaultni sablonu presenteru, takze tohle nejde.

bazo
Člen | 620
+
0
-

ale ten template obsahuje $presenter aj tak vid source

<?php
protected function createTemplate()
	{
		$template = new Template;
		$presenter = $this->getPresenter(FALSE);
		$template->onPrepareFilters[] = array($this, 'templatePrepareFilters');

		// default parameters
		$template->component = $this; // DEPRECATED!
		$template->control = $this;
		$template->presenter = $presenter;
?>
jasir
Člen | 746
+
0
-

možná tady?

Editoval jasir (23. 3. 2010 12:58)

tr.
Člen | 79
+
0
-

Absolutně funkční, děkuji všem za pomoc. Přesně pro tento účel jsem to chtěl použít :)