Nasveti in triki
Urejevalniki in IDE
Predloge pišite v urejevalniku ali IDE, ki podpira Latte. Bilo bo veliko bolj prijetno.
- V okolju NetBeans IDE je vgrajena podpora
- PhpStorm: namestite vtičnik Latte v
Settings > Plugins > Marketplace
- VS koda: iskanje markerplace za Nette Latte + Neon ali Nette Latte predloge plugin
- Sublime Text 3: v Upravljanju paketov poiščite in namestite paket
Nette
ter izberite Latte vView > Syntax
- V starih urejevalnikih uporabite Smartyjevo označevanje za datoteke .latte
Vtičnik za program PhpStorm je zelo napreden in omogoča odlično delo pri namigovanju kode PHP. Za optimalno delovanje uporabite tipizirane predloge.

Podporo za Latte najdete tudi v spletnem označevalniku kode Prism.js in urejevalniku Ace.
Latte znotraj JavaScript ali CSS
Latte lahko zelo priročno uporabljate v programih JavaScript ali CSS. Toda kako se izogniti situaciji, ko Latte napačno uporabi kodo JavaScript ali slog CSS kot oznako Latte?
<style>
/* CHYBA: interpretuje jako značku {color} */
body {color: blue}
</style>
<script>
// CHYBA: interpretuje jako značku {id}
var obj = {id: 123};
</script>
Opcija 1
Izognite se situaciji, ko črka sledi takoj za {
, na primer tako, da pred njo naredite presledek, prelom vrstice
ali narekovaj:
<style>
body {
color: blue
}
</style>
<script>
var obj = {'id': 123};
</script>
Opcija 2
Popolnoma onemogočite obdelavo oznake Latte znotraj elementa z uporabo n:sintakse:
<script n:syntax="off">
var obj = {id: 123};
</script>
Premenljivka 3
Zamenjajte sintakso oznake Latte znotraj elementa z dvojnimi sestavljenimi oklepaji:
<script n:syntax="double">
var obj = {id: 123}; // tohle je JavaScript
{{if $cond}} alert(); {{/if}} // tohle je Latte
</script>
JavaScript okoli spremenljivke ne piše narekovajev.
Zamenjava use
za telefonsko slušalko v Latte
Kako nadomestiti stavke use
v Latte , ki se uporabljajo v PHP, da vam pri dostopu do razreda ni treba zapisati
imenskega prostora? Primer v PHP:
use Pets\Model\Dog;
if ($dog->status === Dog::StatusHungry) {
// ...
}
Premenljivka 1
Namesto use
shranimo ime razreda v spremenljivko in nato namesto Dog
uporabimo
$Dog
:
{var $Dog = Pets\Model\Dog::class}
<div>
{if $dog->status === $Dog::StatusHungry}
...
{/if}
</div>
Premenljivka 2
Če je predmet $dog
primerek Pets\Model\Dog
, se lahko uporabi
{if $dog->status === $dog::StatusHungry}
.
Ustvarjanje XML v Latte
Latte lahko ustvari kateri koli format besedila (HTML, XML, CSV, iCal itd.), vendar mu moramo za pravilno izpisovanje izhodnih
podatkov povedati, kateri format ustvarjamo. V ta namen se uporablja oznaka {contentType}
.
{contentType application/xml}
<?xml version="1.0" encoding="UTF-8"?>
...
Nato lahko na podoben način ustvarimo zemljevid spletnega mesta:
{contentType application/xml}
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" >
<url n:foreach="$urls as $url">
<loc>{$url->loc}</loc>
<lastmod>{$url->lastmod->format('Y-m-d')}</lastmod>
<changefreq>{$url->frequency}</changefreq>
<priority>{$url->priority}</priority>
</url>
</urlset>
Posredovanje podatkov iz vključene predloge
Spremenljivke, ki jih ustvarimo z uporabo {var}
ali {default}
v vključeni predlogi, obstajajo samo
v vključeni predlogi in niso na voljo v vključeni predlogi. Če želimo nekatere podatke iz vključene predloge prenesti nazaj
v vključujočo predlogo, lahko predlogi posredujemo predmet in vanj vstavimo podatke.
Glavna predloga:
{* ustvari prazen predmet $vars *}
{var $vars = (object) null}
{include 'included.latte', vars: $vars}
{* zdaj vsebuje lastnost foo *}
{$vars->foo}
Vključujoča predloga included.latte
:
{* zapisovanje podatkov v lastnino foo *}
{var $vars->foo = 123}