addon Datagrid – špatné filtrování čísel pomocí SelectboxFilter
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- xixixao
- Člen | 5
Hlásím ošklivou chybu v datagridu na kterou jsem nikde jinde nenarazil a obsahuje jí aktuální verze.
Soubor SelectboxFilter.php
<?php
public function generateItems()
...
$this->generatedItems = $this->firstEmpty ? array_merge(array("" => '?'), $items) : $items;
...
?>
Problém je v tom, že array_merge reindexuje číselné indexy. Takže pokud pole $items obsahuje čísla, ve výsledném selectboxu se ‚value‘ vyplní špatně:
<?php
$items:
[2001]=>2001
[2002]=2002
$generatedItems:
[]=>?
[0]=2001
[1]=2002
?>
řešení:
<?php
$this->generatedItems = $this->firstEmpty ? array("" => '?') + $items : $items;
?>
Pro případné smolaře kterým nefunguje SelectboxFilter ještě
doporučuju zkontrolovat si verzi Dibi.
(problém s fluent->removeClause)
Jinak super komponenta, díky za ní.
- romansklenar
- Člen | 655
Opraveno. Pro kompatibilitu s novou verzí dibi si stáhni poslední verzi z githubu.