Sziasztok!
A Boolean/Logikai mezők esetén, "Single on/off checkbox" ("Egyszerű be/ki jelölőnégyzet") widget használata esetén azt szeretném, ha az alapértelmezett On/Off értékek (1/0) helyett az On-érték címkéje látszana, emellé lehetne betenni vagy kiszedni a pipát.
Pontosan erre való a mező szerkesztésénél a "Use field label instead of the "On value" as label" ("A mező címkéjének használata a bejelölt állapot értéke helyett") beállítás.
Na most ez 7.19-ről 7.22-re, ill. 7.23-ra frissítés előtt emlékeim szerint tök jól működött, azóta viszont az űrlapon nem jelenik meg a címke, csak maga a checkbox. Érdekes, hogy másik 7.22-es és 7.23-as Drupallal, másik sminkekkel is próbálkoztam, Display Suite layouttal és anélkül is, és ugyanez a helyzet ezeknél a Drupaloknál is - igaz, nem friss változatok, hanem már egy ideje frissítgetem őket. Lehet, hogy nálam van valami tényező, ami a többi Drupalnál is egyezik, és ami miatt a frissítés után ez a funkció elromlott, de lehet, hogy bug - ezért kérem a segítségeteket.
Nálatok is fennáll ez a helyzet? Vagy nálatok helyesen működik? Tudtok kapcsolódó hibáról? Én keresgéltem, egyelőre nem találtam ilyet.
Ja, még a dolog pikantériája, hogy az admin-felületen (Seven-smink használatakor) a "Default value" ("Alapértelmezett érték") fieldsetben viszont látszik a címke, ahogy kell, csak a szerkesztőűrlapon nem!
Egy screenshot a dolog egyértelműbbé tétele érdekében:
Csatolmány | Méret |
---|---|
Use field label instead of the "On value" as label | 23.67 KB |
Konkrét példa, lásd alul:
Konkrét példa 7.22-es tesztcélú Drupallal:
Field: Boolean, Single on/off checkbox
"Use field label instead of the "On value" as label"
default értéknél látszik a címke:
===========================================
LÉNYEG:
Űrlapszerkesztésnél nem látszik a címke, csak a leírás mező:
(hozzáteszem, ha bepipálom, az alapértelmezett 1-es értéknél úgy tűnik, nem jelenít meg semmit a view-ra kattintva sem, mert ezt nem oldották meg, hogy stringgé legyen konvertálva)
================================================
================================================
================================================
SZERK.:
Debuggolás során (Devel) is jól látszik, hogy a
'#title'
kulcs üres, bekereteztem:Átmenetileg tudom manipulálni hook_form_alter()-ből, de nyilván az okára kellene rájönni...
TIPP bárkinek?
ezt a jóisten sem fogja így
ezt a jóisten sem fogja így kideríteni. Amit írtál, megcsináltam stepbystep, és minden ok. Ha ez egy szűz drupalon nálad így működik, akkor valami drupaltól független gáz van.
És ja, tényleg nincs ellátva különösebben display formatterekkel ez a mező, de a franc se tudja, nekem még sosem hiányzott, egyébként tán a views pl elég okos kis megjelenítéseket passzint hozzá - mondjuk ez nyilván nem segít ki.
Esetleg érdemes lenne boolean helyett egy mezei list fieldet odarakni.
----
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.
Köszi, addig is kényszermegoldások, debuggolási próbálkozások
Köszi szépen, hogy kipróbáltad! Már ez is nagy segítség, mert ezek szerint szűz Drupal esetén jól működik, ergo nem bugról van szó, hanem nálam van a para: vagy smink (pl. egy theme_* v. template_* override, vagy más) vagy modul okozza. Teljesen szűz Drupalon is ki fogom próbálni.
Frissítés óta tapasztalom ezt a jelenséget, de Drush-sal a core-t és contrib modulokat egyszerre frissítettem (pl. Entity API, i18n, stb.), de most legalább kiderült, hogy nem a core, hanem vmi kiegészítő modul a hibás.
Még két kérdés:
'#markup'
kulcs az egyes elemekre egyszerűen adrupal_render()
-ben állítódik össze, amit aztán megkap atheme_field()
függvény, és pl.$variables['items'][0]['#markup']
módon érhető el? Az tiszta, hogy egy foreach-csel megy végig a$variables['items']
-en kiíratáskor, majd megint átereszti adrupal_render()
függvényen, de hátha van előtte valami formázó - igaz, pont azt írtad, hogy "tényleg nincs ellátva különösebben display formatterekkel ez a mező", de hátha van még egy hely, ahol véletlenül módosításra kerül az adat; megpróbálnám valahogy debuggolni, honnan eredhet a gáz.A list.module fájl
list_field_info()
-jában amúgy látszik a'list_boolean'
típus, az options.module-ban pedig azoptions_field_widget_info()
-ban az'options_onoff'
widget, de innen sokkal tovább nem tudtam jutni, hogy akkor most mégis honnan kezdjem a debuggolást, hol veszhet el a #title vagy épp az érték.Ez most nem bejövős megoldás, mert pont ez a ki/bekapcsolós rész kellene az űrlapra, így nagyon kényelmes lenne. De amúgy az ötlet nem rossz, meg lehetne kerülni ezzel a dolgot, de inkább ezt akarnám megoldani.
Addig is eléggé gányolósan, kényszerből manuálisan módosítottam a formban való megjelenését: egy
hook_form_FORM_ID_alter()
-ben (nyilván a FORM_ID-t cserélve a form azonosítójára) felülírtam a$form['field_EZ_AZ_ÉN_MEZŐM']['und']['#title']
értékét, ami mérhetetlenül gáz, mivel így nyelvfüggő a megoldásom ('und'), meg amúgy is undorító módja a módosításnak, de most gyorsan kellett a dolog. Ha jut eszedbe kevésbé undorító kényszermegoldás, jelezd plíz. :D
Ja, a node/term megjelenítésekor látható érték (a default esetben 0/1), ami szintén nem jelent meg, kevésbé volt fontos, de azt is kényszermegoldással összetákoltam (sic!):
egy theme_field()-ben a foreach részt módosítottam (lásd az
$element['#field_type'] === 'list_boolean'
részt):Egy próba esetleg: ha
Egy próba esetleg: ha konkrétan beírod a "0" és "1" értékeket a default semmik helyett, az nem segít?
Védd az állatokat! ;)
És még egy tipp: nem az i18n
És még egy tipp: nem az i18n rontja el?
Védd az állatokat! ;)
Hohóóó, te győztél! :)
Hohóóó, te győztél! :) Megtaláltad a probléma forrását, pontosan erről van szó. Frissítettem 1.9-ről 1.10-re, és az űrlapon a megjelenítés máris jó :)
Itt a commit:
http://drupalcode.org/project/i18n.git/commitdiff/a184b48a92dc451022ddaa...
i18n 7.x-1.9:
i18n 7.x-1.10, itt már JÓ:
Érdekes viszont, hogy a megjelenítés továbbra is rossz, nem jelenik meg a 0/1 érték. Ezt jelezni fogom az issue queue-ban.
Jó tudni, hogy nem nálam van a hiba. Köszönöm szépen a segítséget!