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
+
0
-

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
+
0
-

Opraveno. Pro kompatibilitu s novou verzí dibi si stáhni poslední verzi z githubu.

xixixao
Člen | 5
+
0
-

Jo já jí mám. Naopak jsem neměl poslední verzi dibi. Tak jen upozornění pro budoucí návštěvníky threadu.