Van egy "dolgozat" elnevezésű tartalom típusom, amelyen van 3 mező (cck):
- Dolgozat, értekezés létrejöttének éve
- Intézmény
Létrehoztam egy view-t, amelyben a fenti két mezőt listázom ki.
A Style-nál HTML típust választottam. Ki is listázza mindkét mezőt, de 2 list item helyett egy darabot hoz létre és abban jeleníti meg a két mező értékét.
Hogy lehet megoldani, hogy minden mező értékét külön lista elemként jelenítse meg?
Megnéztem a views erre vonatkozó tpl-jét: views-view-list.tpl.php... gondoltam, hogy majd írok egy sajátot, de sajnos nem eléggé barázdált az agyam, hogy ezt összehozzam.
Drupal verzió:
Fórum:
mi itt a kívánatos működés most?
van egy dolgozat tartalom típus. amikor ilyen típust tekintesz meg egy nézet segítségével akarod _egy_ listában megjeleníteni a két mező értékeit?
vagy egy lista kell az összes ilyen noderól, ahol az egyik mező szintén egy lista kell legyen, ami ennek a két mezőnek az értékeit tartalmazza?
sajna nem értem, de valszeg pofonegyszerű megoldás lesz, ha megértem, hogy mit kell pontosan megoldani. :)
-
clear: both;
íme az érintett oldal
http://manager.org.hu/dolgozatok/497
A bal oldali blokkban jelenítem meg az említett 2 mező értékét. A views-ban a node ID alapján (Provide default argument/Node ID from URL) tölti be a mező értékeket a blokkba.
No itt van a problémám, ugyanis a két mező értéke egy list item-ben van.
világos
nyilván egy li -ben van a két mező, mert ugyan ahhoz a nodehoz tartozik, a nézet pedig "node alapú" vagyis a "sorok" nodeonként keletkeznek.
de ez miért is baj?
szeretnéd ha úgy _nézne ki_ mint egy lista? ezt cssel könnyedén elérheted.
vagy rettenetesen fontos, hogy li elem legyen mindenképpen, mert szemantikailag az a korrekt?
több megoldást is el tudok képzelni. ha csak a kinézet miatt akarod listába, csináld meg cssel. a views tplek felépítése nem biztos, hogy engedni fogja, hogy ott elvégezd ezt a módosítást. talán azt kéne, hogy a második mezőnél bejelölöd, hogy a kimenet felülírása és gyalog te odavarrod, hogy ul li[egyik mező tokenje]/li li[másik mező tokenje]/li /ul.. esetleg nézd meg a semantic views modult, talán az is tud ilyen mezőösszevonásokat.
vagy (ezért most lehet megköveznek, de sebaj)
csinálj egy blokkot, aminek php a beviteli formája és abba tegyed ezt a kódot vagy valami ilyesmit. így kiesik a views a képből, erőforrást spórolsz.
rakhatod ezt persze egy saját modulba is vagy olyan trükköt is csinálhatsz, hogy van egy üres blokkod és a tempalte_preprocess_block -ban id alapján ezzel a kóddal írod felül az alapból üres $block->content. ;)
-
clear: both;
A tpl-es megoldás is lehet, a
A tpl-es megoldás is lehet, a Style-outputnál a div-en belül lehet egy ul, a Row Style outputba meg a li-k.
ezért most lehet megköveznek, de sebaj
Másodjára nekem is ez jutott eszembe, miért is bántanának miatta? :)
----
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.
ronda, szakszerűtlen,
amatőr megoldás.
a.k.a GÁNY. :P
-
clear: both;
A "gány" megoldást választom
Az általad ajánlott megoldást próbálom felhasználni, mert modult nem sajnos tudok írni (még).
Egyébként azért ragaszkodnék a felsoroláshoz, mert ahhoz már megírtam a CSS-t és egyébként is jobban/szebben néz ki egy felsorolás (kódszinten), mint egy DIV-rengeteg egyetlen egy lista elemen belül.
1970. január 01.
Megcsináltam, de az általad küldött kóddal (amiért nagyon hálás vagyok) csak a timestamp íródik ki (helyesen). Próbáltam a format_date függvénnyel kiíratni csak az évet, de nem sikerült összehoznom. Folyton az 1970-es évbe botlottam valami miatt.
substr
függvénnyel ki tudom szedni az első négy karaktert a timestamp-ből, de hát igen randa megoldásnak tűnik.ööö... izé, az unix timestamp, nem az első négy karakter az év
az 1970. január 1. óta eltelt időt mutatja. a format_date -nek át kell adnod az egész timestamp. azért mutat mindig 1970 -et, mert négy számjegyet kap, ami meg gyak. nulla, szóval 1970. :) remélem érthető.
szóval kb így:
ha $type -nak ugye 'custom' -ot adsz meg, akkor a $format is kötelező, ahol pedig szabályos php date mintákat adhatsz meg, amiket pedig itt találsz: http://hu2.php.net/manual/en/function.date.php
-
clear: both;