Editace zdrojového kódu ve formuláři

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

Zdravím, pracuji na svém eshopu a stojím teď před problémem s nastavením emailových šablon. Viděl jsem možnost, že je možné je měnit včetně zdrojového kódu a chtěl bych se zeptat, jak na to. Napadlo mě to dělat přes databázi, tedy vytáhnout to, změnit a zase uložit a při odeslání emailu záznam použít jako tělo zprávy. Jenže nevím, jak bych tam mohl vložit nějaké proměnné (něco na způsob $template->newPass = $newPass; ).. Pak mě napadla možnost sahat rovnou do souboru a měnit ho, ale to nevím jestli je správné. Jak lze toto řešit? Jen pro lepší pochopení přikládám screen jak by to mělo vypadat:

Šaman
Člen | 2666
+
0
-

Pročti si dokumentaci. Pokud nechceš mít zdrojový kód šablony v souboru tak akorát nebudeš používat FileTemplate. Jinak se nic nemění, data do šablony předáváš normálně $template->foo = $foo.

vvoody
Člen | 910
+
0
-

Nieje nevyhnutné mať zdroj šablóny v súbore

$source = $connection->table('mail_template')->fetch()->source;
$template->setSource($source);
Draffix
Člen | 146
+
0
-

@Šaman Takže pokud tomu rozumím dobře, tak mám třeba v databázi šablonu s obsahem: <p>{$name}</p>. A v presenteru udělám tohle?

$template = $this->createTemplate();
$template->name = $name;

        $mail = new Message;
        $mail->setFrom('sender')
                ->addTo('receiver')
                ->setSubject('subject')
                ->setHtmlBody($template)
                ->send();
Draffix
Člen | 146
+
0
-

@vvoody Aha, děkuji, té metody jsem si nevšiml.

mkoubik
Člen | 728
+
0
-

A měl bys počítat s tím, že kdokoliv kdo bude ty šablony editovat může spouštět jakýkoliv php kód.

Draffix
Člen | 146
+
0
-

mkoubik napsal(a):

A měl bys počítat s tím, že kdokoliv kdo bude ty šablony editovat může spouštět jakýkoliv php kód.

A lze se tomu nějak bránit? Protože vyfiltrovávat všechno špatné asi nejde ne?

enumag
Člen | 2118
+
0
-

Draffix napsal(a):

mkoubik napsal(a):

A měl bys počítat s tím, že kdokoliv kdo bude ty šablony editovat může spouštět jakýkoliv php kód.

A lze se tomu nějak bránit? Protože vyfiltrovávat všechno špatné asi nejde ne?

V tom případě bys nemohl používat Latte ale jen nějaký vlastní mnohem jednodušší filtr. Což by u těchto šablon nejspíše stačilo.