Drobnosti so sablonou a curlyBrackets
- edke
- Člen | 198
1. S takouto konstrukciou ma curlyBrackets problem, ide to nejako inac ?
{link orderby!, {$appname} }
2. Pokial chcem ladit pri error reportingu E_ALL, je nutne osetrit v sablonach situacie ako
{if isset($value)}
nemozem to skratit na
{if $value}
Rovnako
{if isset($item2['onclick'])}onClick="{$item2['onclick']}"{/if}
sa neda skratit na
{if $item2[onclick]}onClick="{$item2[onclick]}"{/if}
Ja len ci nie su nato nejake „tovarnicky“, ktore by ulahcili zivot lenivym programatorom, takym ako ja :)
- David Grudl
- Nette Core | 8218
Ad zkracování isset:
To je jedna z věcí, které řešit nechci, protože to ze zkušenosti vede k těm nejnepříjemnějším chybám.
Doporučuji v presenteru definovat i prázdné proměnné:
$this->template->missing = NULL;
Případně se dá vypnout hlášení na šablone:
$this->template->warnOnUndefined = FALSE;
a pak používat bezpečně
{if $template->value} ... {/if}
- edke
- Člen | 198
_Martin_ wrote:
Ahoj, k první otázce: místo
{link orderby!, {$appname} }
napiš
{link orderby!, $appname} // čárku můžeš smazat
Super, vdaka za tip. Prave som nato prisiel tiez :) A pravda, aj bez ciarky to funguje.
edit: Ale dalsie argumenty uz musia byt oddelene ciarku zrejme.
Editoval edke (10. 10. 2008 10:35)
- edke
- Člen | 198
David Grudl wrote:
Ad zkracování isset:
To je jedna z věcí, které řešit nechci, protože to ze zkušenosti vede k těm nejnepříjemnějším chybám.
Doporučuji v presenteru definovat i prázdné proměnné:
$this->template->missing = NULL;
Případně se dá vypnout hlášení na šablone:
$this->template->warnOnUndefined = FALSE;
a pak používat bezpečně
{if $template->value} ... {/if}
Pri tomto ma napada este jeden problem, ktory som teraz riesil. Uz v inom vlakne mi poradili, ako to je s dibi results, ci to bude objekt alebo pole:
database.resultObjects = TRUE
Objekt je super, pretoze sa minimalne lepsie s nim pracuje v sablone. Ale ako potom na zlozitejsie polia, ktore by tiez bolo fajn mat zapisane cez objekt, lebo miesat potom v sablone polia a objekty – najlepsia cesta ako sa zamotat.
Napriklad ako s takymto polom:
$this->tableColumns= array(
array( 'field' => 'login', 'name' => 'Login', 'align' => 'left' ),
array( 'field' => 'cele_meno', 'name' => 'Meno a priezvisko', 'align' => 'left' ),
array( 'field' => 'session', 'name' => 'Session', 'align' => 'left' ),
array( 'field' => 'aktivne', 'name' => 'Aktívne', 'align' => 'left' ),
);
- Jan Tvrdík
- Nette guru | 2595
Objekt je super, pretoze sa minimalne lepsie s nim pracuje v sablone. Ale ako potom na zlozitejsie polia, ktore by tiez bolo fajn mat zapisane cez objekt, lebo miesat potom v sablone polia a objekty – najlepsia cesta ako sa zamotat.
Napriklad ako s takymto polom:
$this->tableColumns= array( array( 'field' => 'login', 'name' => 'Login', 'align' => 'left' ), array( 'field' => 'cele_meno', 'name' => 'Meno a priezvisko', 'align' => 'left' ), array( 'field' => 'session', 'name' => 'Session', 'align' => 'left' ), array( 'field' => 'aktivne', 'name' => 'Aktívne', 'align' => 'left' ), );
Přetypuj všechny array
na stdClass
nebo můžeš
zkusit upravit chování filtru curlyBrackets
.
- edke
- Člen | 198
Jan Tvrdík wrote:
Přetypuj všechnyarray
nastdClass
nebo můžeš zkusit upravit chování filtrucurlyBrackets
.
jj, uz som nasiel daco v php manuale:
<?php
$obj = (object) 'ciao';
echo $obj->scalar; // outputs 'ciao'
?>
Uz sa s tym hram a uvidim ako to pretypovanie sa bude chovat na zlozitejsom poli.