Filtr pro produkty v eshopu.
Programuje se ve složce app/eshop/controls/filter.
Filtruje se nejčastěji dle supplementů a dle vlastností s možnostmi nebo dle textových.
Momentálně je nejlepší varianta filtrace na projektu Briol
Nastaveni slideru ve filtru
- V souboru filter.php do pole "slidersSetup" přidáme pole s vastním klíče (tím se do budoucna řídíme) a vyplníme klíč pro min část a pro max část, následně typ (vybereme dle konstant výše), nakonec property_id pokud se jedná o vlastnost uvedeme zde id vlastnosti jinak 0.
- Pokud jsme nastavili něco jiného než z již nastavených, tak musíme ješte nastavit novou podmínku ve funkci setMinValues, setMaxValues a v funkci prepareQuery.
- V filter.latte musíme nakódovat slider, ten musí obsahovat: element s id slideru, a 2 elementy s id pro levý a pravý posuvník (id musí mít stejný základ + se k tomu připojí "-left" nebo "-right" na základě strany), take musíme nastavit defaultní hodnoty do elemntl pro levý a pravý posuvník.
- Na závěr musíme v základní šabloně (tím se rozumí latte soubor, který obsahuje tagy block content např.: kategorie.latte) nastavít script pro slider plugin. To uděláme zavoláním funkce createSlider (musíme mít naimportovaný noUiSlider.js wNumb.js a sliderInit.js), které vyplníme parametry: id slider, name inputu pro základní minimální hodnotu (defaultně se nastavuje jako "slider_" + klíč min části), name inputu pro základní maximální hodnotu (defaultně se nastavuje jako "slider_" + klíč max části), name inputu min hodnoty nastavované posuvníkem, name inputu max hodnoty nastavované posuvníkem, jednotka (např.: mm nebo ks, atd), typ slider (pro cenu se zde udává měna (nejčastěji CZK nebo EUR)
Nastavení filtru dle supplementu
- V souboru filter.php přidáme do pole "supplementCheckboxes" řádek s klíčem názvu supplementu (dle vlastního uvážení) a jako hodnotu zadáme id supplementu
- V souboru filter.latte přidáme input type "checkbox" s name podle klíče supplementu. Pokud chceme uvést i počet položek zobrazených po zatrhnutí tohoto inputu uživatelem pouzijeme kód {$form['klíč supplementu']->getOption('count', defaultní hodnota, pokud není nic vyplněno například 0)}