Egy tartalom két állapotának jelöléséhez legjobb a flag modul, de van, amikor cck-val kell megoldani, mert az kevésbé praktikus. Elég furcsa, de ha egyszerűen a tartalom beküldő node-nál két állapotot akarunk jelölni, akkor kell egy Igaz, és egy Hamis érték is.
Ezzel semmi baj nem lenne, de például views listában kaphatunk fals adatot, illetve nekünk nem tetszőt.
Mert mi van, ha a views-szal ki szeretnénk iratni egy mezőben, ha igaz, de nem szeretnénk semmit sem látni, ha hamis? Különféle előfeldolgozókkal ezt kikupálhatjuk, de mégsem az igazi, jobb lenne, ha az adatbázisba sem kerülne semmilyen adat, ha nincs bepipálva semmi.
Ezt írja nekünk a how-to, a cck mező beállításoknál: Az „egyszerű jelölőnégyzet” felületi elemnél először a „ki”, majd a „be” állapothoz tartozó értéket kell megadni az Engedélyezett értékek részben. A jelölőnégyzet címkéje a „be” állapothoz tartozó érték címkéje lesz.
Szóval előbb a Ki értéke kell.. Ha csapsz egy entert, azt simán kiszűri, és a Ki értéke a következő sor lesz.. Olvassunk tovább: Egy sorban egy értéket lehet megadni kulcs|címke formában. És íme a titok; a ki értékének ennyit kell megadni: | Ezt már értelmezi a szűrő, tehát az előtte lévő értéket veszi alapul, ami ugye = semmi, pont ez kerül az adatbázisba is, a:
Tehát a Megengedett értékek mezőbe ez legyen:
|
true|Címke, amit a jelölőnégyzet mögött akarunk látni.
Máris szaladhatunk neki a views-nak, és kedvünkre listázhatjuk, vagy akár felül is írhatjuk az értékkel rendelkező tartalmakat, hogy mire kellhet egy ilyen, íme a példa: http://mjksz.hu/tenyesztok
Lesz itt viszont egy kis bibi.. Ha kiterjesztett szűrőt akarunk erre a mezőre, akkor meglepi lesz: Lesz legfelelül egy - Any -, alatta lyuk, majd 'true' a legördülő listában. Namármost abból kiindulva, hogy a legkevésbé user friendly egy ilyen listában a - Bármely - és az igaz szöveg, pláne a lyuk, túrjuk szét kicsit a formot.
Ehhez kell pici modulka, annak is lészen hook_form_altere:
function MODULNEVE_form_alter($form, $form_state, $form_id) { if ($form_id == 'views_exposed_form' && &form['views_exposed_filter_szűrő_azonosítója']) { $form['views_exposed_filter_szűrő_azonosítója']['#options'] = array ( 'All' => t('mindent megjelenítő szöveg '), 'true' => t('szűrés szövege'), ); return $form; }
Hozzászólások
Hozzászólás