posielanie parametrov zo sablony do komponenty
- xr
- Člen | 94
mam volanie komponenty v sablone
{control headerImage, $group => 1, $params => array('alt'=>'haf')}
a toto je vystup (Debug::dump()) parametrov $group a $params, v tomto poradi
array(2) {
"group" => int(1)
"params" => array(1) {
"alt" => string(3) "haf"
}
}
NULL
este uvadzam hlavicku metody render
public function render($group = null, $params = null) {...}
ako mam docielit, aby som mal v group to cisleko a druhy param tam, kde by som ho ocakaval???
- despiq
- Člen | 320
<?php
\$control->getWidget($widget)->$method($param)
?>
https://api.nette.org/…ros.php.html#741
to teda nevim jak bys toho docilil bez prepsani LatteMacros
- redhead
- Člen | 1313
Ok, beru, neměl jsem čas se dívat do zdrojáku, jen nechápu proč by to tak mělo být. Zdá se mi to dost ošklivé – když už takhle fungujou actiony, helpery, atd, tak nevidím důvod proč by render controlů nemohl přijímat parametry stejně (tj. jako jednotlivé parametry a ne pole).
- redhead
- Člen | 1313
Hmm, na to něco bude, ale stejně tak musíš dodržovat pořadí parametrů helperů. Podle mě by to mělo být sjednocené (je v tom pak pěknej guláš, když jeden dává pole, druhý parametry – nehledě na to, že když se předá render() metodě jenom jeden parametr, tak se to do pole nedává, na což zase musím myslet v render metodě a obsloužit param i případné pole..)
- despiq
- Člen | 320
to ze by to melo byt sjednocene je urcite pravda, ze se musi myslet na to jestli to je nebo neni pole to je taky fakt, ted je otazkou co je lepsi treba u helperu by to svym zpusobem bylo na obtiz
<?php
{$date|date:format => '%Y'}
?>
je spis za trest na druhou stranu u toho controlu by zas odpadla moznost
prohazovani poradi parametru
mozna by byla hezka varianta aby do controlu vzdy pristalo pole, mozna by to
nutilo psat do sablony nazvy tech promennych coz by mohlo
i zprehlednit kod
- redhead
- Člen | 1313
Rozhodně nechci, aby se u helperů specifikovali názvy proměnných, ale když už si někdo musí pamatovat pořadí u helperů, není moc problém si je zapamatovat u controlů. Mě to tedy problém nedělá. Spíš mě hodně překvapilo takové to chování. Když jde prakticky o volání metody s parametry, nevidím důvod proč by se mělo předávat pole. Ovšem za jistých okolností, by to bylo zas na škodu. Je to dost sporné.
Možná by bylo dobré mít obě řešení – tj. pokud je v parametrech výskyt ⇒ tak by se to převedlo na pole, jinak by se to použilo jako normální parametry. Ovšem to už je dost wtf.
Takže nic. :D