Pomoc s funkciou a vyhľadávanie
- StanlieK
- Člen | 28
Dobrý deň,
tak opäť som narazil dnes na jeden problém alebo dva resp. ani neviem či je to problém, ale tak teda snáď mi teda poradíte.
Takže dotaz číslo 1:
Chcem sa spýtať, či je správne prepisovať funkciu z beforeRender()
z BasePresenteru v iných presenteroch, alebo akú mám používať funkciu
v ostatných presenteroch pokiaľ chcem vykonať nejakú úlohu ešte pred
vykreslením samotnej stránky? Napr. v AdminPresenteri potrebujem overiť, či
je užívateľský level administrator?
No a dotaz číslo 2:
Tento dotaz sa týka vyhľadávania asi takto. Takže v BasePresenteri mám
vytvorený vyhľadávací formulár a tiež funkciu, ktorá bude vyhľadávať
v texte článkov. Vyhľadávací formulár sa zobrazuje všade na stránke a
to je ten problém, že ako mám predávať presenteru ArticlesPresenter
vyhľadané výsledky? Alebo mám posielať dáta z formulára na
ArticlesPresenter, ktorý si sám vyhľadá články? Akým spôsobom mám
preniesť údaje z formulára do ArticlesPresenteru bez toho, aby data išli
cez URL (je to asi neefektívne prenášať celé vety)?
Vopred Vám ďakujem za každú odpoveď
- nanuqcz
- Člen | 822
Ahoj,
ad 1): beforeRender klidné přepisovat můžeš, je k tomu určená. Ale řešit v ní oprávnění je pozdě. Před beforeRender se totiž ještě provádí handle metody, zpracování formulářů a action metody. Viz životní cyklus presenteru.
Pro kontrolu oprávnění tedy použij metodu startup(), nebo checkRequirements(), která je přímo pro tohle určena.
ad 2)
Alebo mám posielať dáta z formulára na ArticlesPresenter, ktorý si sám vyhľadá články? … bez toho, aby data išli cez URL
Podle mě je naopak správné, že se vyhledávaný výraz přenese do URL. Jedině tak ti pak bude ve výsledcích vyhledávání fungovat např. stránkování:
// BasePresenter
public function processSearchForm($form)
{
$values = $form->values;
$this->redirect('Article:list', array('keyword' => $values->keyword));
}
Editoval nanuqcz (28. 8. 2014 23:24)