prevod latte na ciste php

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

Ahoj,

je mozne prevest latte

<ul n:if="$items">
{foreach $items as $item}
    <li id="item-{$iterator->counter}">{$item|capitalize}</li>
{/foreach}
</ul>

na cisty php kod bez latte?

<?php if ($items): ?>
    <?php $counter = 1 ?>
    <ul>
    <?php foreach ($items as $item): ?>
        <li id="item-<?php echo $counter++ ?>"><?php
        echo htmlSpecialChars(mb_convert_case($item, MB_CASE_TITLE)) ?>
        </li>
    <?php endforeach ?>
    </ul>
<?php endif?>

pokud ano poprosim o nakopnuti jak. diky.

Editoval pEeLL (25. 2. 2015 10:25)

akadlec
Člen | 1326
+
0
-

přesně tohle ti dělá latte parser, takže když se latte generuje tak toto je výsledek.

Oli
Člen | 1215
+
-1
-

Pokud potřebuješ pracovat v šabloně jako v php, tak k tomu slouží v Nette 2.3 makro

{php echo'ahoj';}

Dříve myslím {? }

greeny
Člen | 405
+
+1
-
$latte = new Engine; // nebo z DI kontejneru
$php = $latte->compile('file.latte');

Tohle by mělo být to co hledáš.

Editoval greeny (25. 2. 2015 10:38)

pEeLL
Člen | 23
+
0
-

nechci jako vysledek tohle:

<?php
// source: test.latte

class Template0b5ac0bd20457474e647eb3a55966c73 extends Latte\Template {
function render() {
foreach ($this->params as $__k => $__v) $$__k = $__v; unset($__k, $__v);
// prolog Latte\Macros\CoreMacros
list($_b, $_g, $_l) = $template->initialize('b68febd683', 'html')
;
//
// main template
//
if ($items) { ?><ul>
<?php $iterations = 0; foreach ($iterator = $_l->its[] = new Latte\Runtime\CachingIterator($items) as $item) { ?>
    <li id="item-<?php echo Latte\Runtime\Filters::escapeHtml($iterator->counter, ENT_COMPAT) ?>
"><?php echo Latte\Runtime\Filters::escapeHtml($template->capitalize($item), ENT_NOQUOTES) ?></li>
<?php $iterations++; } array_pop($_l->its); $iterator = end($_l->its) ?>
</ul><?php }
}}

ale php kod ktery jsem uvedl vyse

pEeLL
Člen | 23
+
0
-

jde mi jen o prevod latte. nette vubec nepouzivam.

pEeLL
Člen | 23
+
0
-

muzes prosím trosku rozvest. diky.

Editoval pEeLL (25. 2. 2015 10:43)

Jan Endel
Člen | 1016
+
0
-

Ono je to velice podobné, akorát to co ty nechceš je bezpečné a to tvé je děravé :-). Proč takovou funkcionalitu potřebuješ, aby ten kód vypadal přesně tak jak ty popisuješ?

h4kuna
Backer | 740
+
0
-

Latte není děláno na to, aby jsi napsal kód pomocí maker a ono ti to vygenerovalo ukázkový php kód. Je stavěno na to aby tě odstínilo od nepřehledného php které se generuje a aby bylo bezpečné jak píše @JanEndel

David Grudl
Nette Core | 8129
+
0
-

V čem je to z úvodního příspěvku děravé?

pEeLL
Člen | 23
+
0
-

@h4kuna jj je mi jasne ze ktomuto priparne latte neni staveno ale i tak se ptam jestli to treba nejak nelze. vynechme prosim bezpecnost.

kod nahore jsem vlozil jako idealni. nicmene neco obaleneho tridou a metodou s informacemi o souboru apod mi zase moc podobne nepripada.

Jan Endel
Člen | 1016
+
0
-

@DavidGrudl v příspěvku nahoře nic, abych to uvedl na pravou míru, leč tímhle přístupem se řítí do pekel :-).

Jan Tvrdík
Nette guru | 2595
+
0
-

Nechápu otázku. Jestli nechceš použít Latte, tak si to budeš muset napsat sám a Nette se to pak nijak netýká.

David Grudl
Nette Core | 8129
+
+4
-

Není to možné.

o5
Člen | 416
+
0
-

@pEeLL a nehledáš spíš Samostatné použití šablon?

Editoval o5 (25. 2. 2015 18:51)