NiftyGrid a použití Translator
- petas.ck
- Člen | 12
Zdravím,
opět možná hloupý dotaz, ale mam problém se zapnutím Translatoru v komponentě NiftyGrid.
Problém je v tom, že nějako nevím, jak do zapnutí. Zdrojové kódy, používám přesně podle příkladů, tudiž třída ArticleGrid zaregistrována v conf souboru.
Funkce pro vytvoření komponenty vypadá takto:
protected function createComponentArticleGrid()
{
return new ArticleGrid($this->context->database->table('example'));
}
podle předchozí používané komponenty datagrid, u které mně překladač fungoval, jsem translator používal něco ve smyslu:
$grid->setTranslator($this->translator);
První, co mě napadlo, tak bylo před vrácením funkce vytvořit instanci, kterou potom zavolat translator. Bohužel samotná třída a metoda
ArticleGrid::setTranslator()
neexistuje. Na ostatních stránkách jsem nalezl, že NiftyGrid by měl translator podporovat, ale nikde jsem nenašel žádné použití. Mohl by mě někdo poradit, jak toto lze řešit?
Předem moc děkuji
- Reloecc
- Člen | 15
petas.ck napsal(a):
Bohužel samotná třída a metoda
ArticleGrid::setTranslator()
neexistuje.
Ahoj,
náhledl jsem do hlavní třídy niftygridu, a je zřejmé, že metoda setTranslator existuje. Zkontroloval bych, zda ArticleGrid opravdu extenduješ z NiftyGrid\Grid;
- frosty22
- Člen | 373
Přesně tak, pokud máš:
<?php
class ArticleGrid extends \NiftyGrid\Grid\Grid {
// .. tvůj kód
}
?>
tak pak můžeš určitě zavolat:
<?php
protected function createComponentArticleGrid()
{
$ag = new ArticleGrid($this->context->database->table('example'));
$ag->setTranslator($this->translator); // Přepokládá instanci translatoru v presenteru
return $ag;
}
?>
- petas.ck
- Člen | 12
Ok, děkuji, opravdu to bylo tou dědičností. Byl jsem nepozorný. Nicméně se mi vyklubala ještě jedna věc a to ta, že pokud se snažím v presenteru zjistit parametry URL a potom s nima pracovat, případně jenom vypsat, čili něco takového:
$params = $this->request->getParameters();
dump($params);
V tabulce mi nefunguje sort. Parametry se vypíší, jak mají, ale zobrazené záznamy nejdou řadit. Předpokládám, že je tam nějaká ochrana, aby nebylo možné zjistit URL parametry? Pokud proměnnout $params nic nedělám, jenom se do ní uloží pole parametrů, vše funguje, jakmile se pokusím přistoupit ke konkrétnímu prvku, například ID (stačí ho jen vypsat nebo předat v konstruktoru), sortování nefunguje.
Jak by se tento problém dal řešit?
Děkuji moc za odpověď
- frosty22
- Člen | 373
Pokud jsem to pochopil správně, pak se mi to vůbec nezdá. Ale jen takový pokus je možné, že pokud si to stále vypisuješ přes dump do stránky, tak ti přestane fungovat JavaScript, protože máš dump proměnných v HTML kodu ještě před <html> atd. čili máš nevalidní kód a to sortování je odchycenou JS přes onClick .. ale jen plácám, jinak je hloupost pokud si pouze vytáhneš parametetry getrem aby se změnil stav objektu.