Overenie obsahu z controleru v latte [2.0.12]
- HappyFace
- Člen | 162
Ahojte,
je mozne overit ci controler nieco vykreslil ? a vpripade ze nic tak skry jeho html block?
priklad: mam componenatu na vykreslenie navigacie na stranke, ktora ale podlieha ACL takze odfiltruju vsetky zakazane odkazy.. componenta ma dve moznosti ako snou pracovat
- len ju zavolam a ona si uz sama vnutorne nacita podrebne udaje
- vlozim jej ja co ma vykreslit
u druhej moznosti je to pohodicka lebo viem co sa ma zobrazit takze
teoreticky si viem v pripade, ze niesu data html block skryt ale v 1. pripade
je to zlozitejsie, kedze netusim ci vobec sa nieco vykresli.
Ako vidno dole v ukazke volam control navigation, ktory moze nemusi sa
vykreslit. V pripade ak sa nic zo sablony nevrati potreboval by som skryt
„<div class="navigation“>"
<!--sablona componenty-->
{block #navigation}
<ul n:inner-foreach="$menu as $item">
....
{include #this, ..}
</ul>
{/block}
<!--sablona presenteru-->
<div class="user_plugin">
<div class="navigation">
{control navigation}
</div>
....
</div>
- HappyFace
- Člen | 162
vvoody napsal(a):
div.navigation má byť logicky súčasť komponenty, potom to vyriešiš jednoducho v komponente
ok ale to neriesi to co potrebuje :/
Dajme tomu, ze ho tam natrepem potom tu je <div class=„user_plugin“> ktory sa musi tak tiez schovat, ak sa ani jednen z controlerov nevykresli. Nespominal som to vysie lebo som sa domieval, ze mi niekto poradi ako sa to(na zaklade obsahu z controleru[lubovalneho] ovplivnit „html block“ v ktorom sa ma zobrazit) riesi a nebude rozoberat logiku example kodu. V skutocnosti sablona navigacie je obrovska.
- HappyFace
- Člen | 162
SparkCZ napsal(a):
Co třeba mít v komponentě nějakou metodu, která vrátí jestli se něco v komponentě zobrazí a pak jen udělat jednoduchou podmínku?
<div class="navigation" n:if="$_control[navigation]->hasItem()"> {control navigation} </div>
juu :) to vypada velmi dobre, idem vyskusat.. zatial velka vdaka :)
- Vojtěch Dobeš
- Gold Partner | 1316
Lze použít ještě jeden trik (pokud jsem dobře pochopil zadání):
{capture $navigation|trim}{control navigation}{/capture}
<div class="navigation" n:if="$navigation">
{!$navigation}
</div>
- HappyFace
- Člen | 162
vojtech.dobes napsal(a):
Lze použít ještě jeden trik (pokud jsem dobře pochopil zadání):
{capture $navigation|trim}{control navigation}{/capture} <div class="navigation" n:if="$navigation"> {!$navigation} </div>
Bajecne toto je uplne presne co som potreboval.. more thx ;)
Editoval HappyFace (2. 9. 2013 11:44)