Sziasztok!
Van az adatbázisban egy mező, ami numerikus állapotokat tárol el (0, 1, 2, ..). Azt szeretném megcsinálni, hogy ezt a mezőt meg tudjam jelíteni egy nézetben, de úgy, hogy ne a számokat írja ki, hanem az azoktól függő állapotokat.
Ami már megvan:
- A mezőt fel tudtam venni a views-be és meg is jeleníti
- Megtaláltam egy kis (sok) Google-zás után, hogy a render() függvénnyel lehet felülírni a kimenetet
- A handler sikeresen felülírásra került, tehát a lent bemásolt kód lefut, amit egy $return "teszt"-tel ellenőriztem is
Viszont nem sikerült rájönnöm, hogy a render függvény hogy fér hozzá az eredeti, numerikus értékhez. Idáig jutottam:
class hublist_handler_field_hub_status extends views_handler_field_numeric { function render($values) { $val = "Hogy nyerem ki a numerikus értéket?"; $ret = t("Unknown"); switch($val) { case -1: $ret = t('Waiting for hublist pinger'); break; case 0: $ret = t('Online'); break; // stb... } return $ret; } }
Remélem, jó úton indultam el. Kérlek titeket, ha valaki tudna segíteni, hogy érhetem el a mező eredeti értékét a render()-ből, ne tartsa magában :)
Melyik modulhoz, modulokhoz kapcsolódik a téma?:
Drupal verzió:
Fórum:
smink szinten
Handlert még nem írtam ugyan, de ezt úgy oldanám meg hogy a Theme information résznél megnézném a vonatkozó mező példakódját, azt átmásolnám egy .tpl.php-be, és 2 sor php-vel értelmezném a numerikus értéket. Ott elég egyértelmű hogy hogy jutsz az értékhez.
Köszönöm az ötletet
Szia,
Köszönöm. Végül nem smink szinten lett megoldva, de jó ötlet volt, hogy a példakódot nézzem meg... A Views modul saját include fájljából kinéztem, hogy szedi ki az értéket:
$val = $values->{$this->field_alias};
Ez lett belőle :)
egy gondolat
Én ezt úgy szoktam csinálni, hogy a numerikus mezőt legördülő listára állítom (n<100) és a megengedett értékekhez felviszem, hogy:
-1|Waiting for hublist pinger
0|Online
...
és akkor az adatbázisban a szám tárolódik(már nem az én szám.. muhaha) és megjelenni meg a szöveges érték jelenik meg. Semmi sminkelés semmi hakkolás.
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
fordítható
Én meg a PHP kódos résznél szoktam felvinni tömbként, és akkor még fordítani is lehet. :)
Remek megoldás
Ez tényleg 5letes, és nagyon jó megoldás!
--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan
A beviteli formon nálam is
A beviteli formon nálam is így van. Egészen pontosan így:
És ez szépen működik is a node szerkesztésekor, csak a Views-hez kellett valamit kitalálni (ld néhánnyal korábban), mert az a numerikus mezőhöz alapból a számot jeleníti meg. (Remélem, nem beszélünk el egymás mellett)