Kitöltetlen mezők kiíratása, akkor is, ha nem lett kitöltve, pl. "Nincs adat" helykitöltővel

Sk8erPeter képe

Sziasztok!

Van arra mód, hogy minden mezőt erőszakosan kiírassak a node megjelenítésénél, még akkor is, ha a szerkesztőfelületen a felhasználó nem rendelt hozzájuk értéket, mondjuk egy "Nincs adat" helykitöltővel?

Meg lehetne csinálni végül is Views-zal, argumentumok használatával (hogy az adott node id-nek megfelelő node-ot jelenítse meg), úgy, hogy minden egyes mezőt berakok a "Fields" szekcióba, úgy, hogy mindegyikre beállítom pontosan ugyanazt a "No results text"-et ("No results behavior" szekción belül a mezőre rákattintva), de ez egyrészt pl. olyan 30 mezőnél nagyon kényelmetlen, másrészt akkor többnyelvű oldalnál minden egyes helyen le is kell fordítani, harmadrészt pedig ha hozzáadok még pluszban 5 mezőt később, akkor ezt a mezőt megint hozzá kell adni a Views-nál.

Van erre valami gyors és szép megoldás? Ha lehet, az eddig beállított, default Drupalos megjelenítést használnám, csak kiegészítve ezzel az említett dologgal, nem erőltetném ezt az argumentumos, Views-os node-megjelenítést.

Itt mindig kapok valami jó tippet, hátha erre is tudtok valami jó megoldást.

Köszi szépen!

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
Sk8erPeter képe

Úgy tűnik, az Empty fields pont ilyenre való, kérdés, vajon mennyire overkill a feladatra, meg mennyire igényes a modul. Egyelőre nem örvend túl nagy népszerűségnek a maga 34 felhasználójával.
Ha van tapasztalatotok vele, ne kíméljetek.

Mindenesetre kipróbálom a modult, és visszajelzek, milyennek tűnik.

Ha van lightweight megoldásra javaslatotok, akkor azt nagyon megköszönném, ha megosztanátok.

0
0
szantog képe

Ez egy tökéletes megoldás, semmilyen overkill nincs benne. Ami ennél lightweightebb az már közel gányolás.

0
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

Sk8erPeter képe

Köszi a reakciót!
Nagyon szimpatikus megoldást alkalmaz a modul, mert a "Manage display" fülön, a view mode-oknál biztosít beállítási lehetőséget a fieldekre.
Belenéztem a modul kódjába, és tényleg elég kicsi a kódja, ránézésre pont azt csinálja, amit kell.

DE egyelőre az a bajom a modullal, hogy nincs egy globális empty text beállítási lehetőség az opciók közt, pl. "N/A", amit aztán fordítani lehetne "Nincs adat"-ra vagy hasonlóra, és mindenhol ezt alkalmaznám.
Három opció elérhető:
Empty fields modul - view modes opciók

Az első egyértelmű, a második pont a kényelmetlen megoldást kínálná, mert akkor mindenhol ugyanazt a szöveget kéne beírni (plusz kérdés, hogy megoldották-e, hogy fordítható legyen! >>> szerk.: eszerint igen), a harmadik meg default value beállításától teszi függővé, de én ilyet pl. nem szeretnék beállítani bizonyos mezőknél, hadd legyen a felhasználó döntése, beállít-e bármilyen értéket.

Lehet még modullal definiálni callback-eket, erre a readme-ben példát is mutat, de csak a dátum típusú mezőkre, a többi mezőnél (Term reference, Text field, stb.) számomra nem egyértelmű, hogyan is kellene definiálni callback-et. Mondjuk akkor a fentebb említett t('N/A')-val térnék vissza a függvényből.
Erre van tipped, hogy lehetne definiálni ilyen callback-et mindenféle mezőtípusra?
Köszi!

0
0
Sk8erPeter képe

azóta létrehoztam egy feature requestet egy lehetséges megoldással illusztrálva drupal.org-on:
http://drupal.org/node/1789438
hátha...

0
0
Sk8erPeter képe

Időközben rájöttem, hogy a megoldás hihetetlen egyszerű:

  1. /**
  2.  * Implements hook_empty_field_callbacks().
  3.  */
  4. function MYMODULE_empty_field_callbacks() {
  5. $info['MYMODULE_empty_fields_first_test'] = array(
  6. 'label' => t('First test for Empty fields callback...'),
  7. 'callback' => 'MYMODULE_empty_whatever_field_callback',
  8. );
  9. return $info;
  10. }
  11.  
  12. /**
  13.  * Callback defined in hook_empty_field_callbacks().
  14.  */
  15. function MYMODULE_empty_whatever_field_callback($field_name, $context) {
  16. return t('N/A');
  17. }

Ahogy mindez megjelenik az admin-felületen, a "Manage display" fülön:

Empty fields - Callback

Ez számomra tökéletes megoldás, pontosan azt csinálja, amit szeretnék.

Itt az eredmény:
Empty fields - N/A

Ez alapján csak ajánlani tudom a modult!

0
0