Sziasztok!
Egy másik témában - egyébként jogosan - "rám pirítottak", hogy ne saját PHP-kódokat alkossak, hanem tanuljam meg rendesen a Viwest. Ok, előszedtem egy korábban megírt php-s megjelenítést és át akartam dolgozni Views-ba, de egy problémára nem találtam megoldást, ami PHP-ban egyszerűen megoldható volt.
Adott tartalomtípushoz létezik egy tartalom mező, amelybe a felhasználók közül lehet többet felvenni.
A Views-ban egy mező az adott tartalomtípusban lévő node-k címe, a másik mező a node-hoz tartozó, bejelölt felhasználók névsora (pl. field_munkatars elemei), több is bejelölhető természetesen. Azonban ezekre a nevekre mint linkekre van szükségem, amely egy másik node-ra mutat (mindegyik esetében ugyanarra) és paraméterként átadja az adott felhasználó (field_munkatars) uidjét. A másik node a kapott paraméter alapján aztán eltérő tartalmat fog megjeleníteni (ez egy következő lépés lesz).
Jelenleg addig tudtam eljutni, hogy szépen megjelennek a felhasználónevek, de az egész egyetlen linket képez. ahelyett, hogy pl. öt felhasználós névsor esetén öt önálló link lenne.
Milyen megoldás lehet erre?
Előre is köszönöm az ötleteket
A views-ban a "mezők" alatt
A views-ban a "mezők" alatt az adott meződ (field_munkatars) beállító lapján találsz egy olyat, hogy "Mező megjelenítése hivatkozásként" de használhatod, a "Mező kimenetének felülírása"-t is. Bekapcsolva alul láthatod milyen "Helyettesítési minták"-at tudsz felhasználni. Itt tudod megcsinálni amit leírtál.
Ha mégsem akkor töltsd le a Views Custom Field-et
...mit tudok: http://web.termuves.hu
A mezők megjelenítése
A mezők megjelenítése hivazkozásként be van kapcsolva, de így egy linkbe rakta az összes munkatárs nevét.
A másik változattal próbálkoztam, de az sem jó, úgy is csak link jön létre.
A javasolt modult viszont megnézem, köszönöm!
Csökönyi Ferenc
Fel tudsz rakni esetleg egy
Fel tudsz rakni esetleg egy képet a Views adott nézetének aktuális beállításairól?
Egy képen nem tudom
Egy képen nem tudom megjeleníthető-e az összes beállított paraméter. De majd megpróbálom összehozni.
Csökönyi Ferenc
Ja, több elem is ki van
Ja, több elem is ki van választva... :)
Használd az alábbi két függvényt a template.php-ban:
theme_userreference_formatter_default()
theme_userreference_formatter_plain()
(megtalálod a CCK -> modules -> userreference -> userreference.module fájlban)
1. A meződ megjelenítésénél (lásd a beállítólap alján) megadott format alapján az egyik függvényt átmásolod szőröstül bőröstül a sminked template.php fájljába.
2. utánanézel hogyan kell használni a theme_ kezdetű függvényeket (átnevezed a theme_ -et sminkneved_ -re és üríted az oldal cache-t)
3. a neked tetsző módon átformálod a függvény kimenetét
Bónusz:
Készítesz egy kis modult, amiben csinálsz egy saját formatter-t a CCK user_reference-hez.
Megjegyzés: érdemes minden modulnál rákeresni a theme_ kezdetű függvényekre, mert sok mindent meg lehet velük oldani.
...mit tudok: http://web.termuves.hu
Köszi, ezt átrágom.
Köszi, ezt átrágom.
Csökönyi Ferenc
így
https://skitch.com/aboros/gqqtm/edit-view-frontpage-six
-
clear: both;
Köszi, de nekem csak az
Köszi, de nekem csak az Alapértelmezés, Egyszerű szöveg, Levágva lehetőségek vannak ott.
Tehát valamilyen beállítás még hiányzik.
Ami nálam be van kapcsolva:
Alapértelmezések: mező Tartalom: Munkatársak (field_munkatarsak) beállítása
A többi opció nincs bekapcsolva.
Kapcsolat és Argumentum nincs beállítva.
Köszönöm!
Csökönyi Ferenc
jahogy user reference mező, nem figyeltem, bocs.
a default jó lesz neked.
itt a user reference mező beállításai:
https://skitch.com/aboros/gqxy7/user-reference-mez-beallitasai-edit-view...
az eredmény nézetben, a megjelenített mező a hivatkozott user profiljára mutat:
https://skitch.com/aboros/gqxbp/eredmeny-nezet-user-reference-views-para
tudni kell, hogy ez csak akkor jelenik meg linkként, ha az aktuális felhasználónak joga van felhasználói profilok megtekintésére. egyébként sima szövegként jön.
-
clear: both;
Asszem rájöttem, hol hibáztam
Asszem rájöttem, hol hibáztam. Ehhez kellett ez a kép és a theme függvényekbe való betekintés is.
Köszönöm!
Csökönyi Ferenc
utókor?
elárulod az utókor számára, hogy mi volt a megoldás? az tök hasznos lesz később, hogy nem csak úgy vége van a szálnak, hanem ott egy eredmény. mikor majd másnak hasonló gondja lesz, örülni fog.
-
clear: both;
Még nem oldottam meg, csak
Még nem oldottam meg, csak rájöttem egy hibára. A munkatársak mező nem felhasználó típus volt, hanem szöveg és a választható értékek egy php kóddal lettek beállítva. (Valószínűleg, az elején nem volt aktíválva a User reference modul, később ezt megtettem). Tehát most először újra fel kell építeni a tartalmat íly módon.
A képen látható "link" választás nálam így sem jelent meg alul. Rész siker, hogy az egyes elemek önálló linkek most már, de a user adatlapra visznek. Nekem pedig nem ez fog kelleni, hanem egy node-ra mutató link, ami paraméterben viszi a user idjét. De ezen egy darabig elrágódom.
A feladat szépsége, hogy van olyan - immár tényleg szöveges mező - mint külső munkatársak, akik nem felhasználók. És rájuk is kell készíteni egy nézetet, hogy egy-egy személy mely projectben dolgozik.
Tehát a feladatra nem lesz jó, amit a felhasználókra kitalálok.
Röviden: még nem oldottam meg a problémámat, csak talán előre léptem. De ha úgy lesz, mindenképpen megosztom.
Csökönyi Ferenc
Akkor tehát az utókor számára
Akkor tehát az utókor számára - bár a megoldás nyilván finomítható:
eMeLa megoldása alapján a template.php-ban létrehoztam a theme-hez a function sajattheme_userreference_formatter_plain($element) függvényt, amelyben az output ez lett:
$output = '<a href="?q=node/40&mid='.$account->uid.'">'.$account->name.'</a>'
Ennek szépséghibája, hogy ez egy adott node-ra van beállítva, elvileg előfordulhat, hogy más helyen másik node-hoz kellene eljutni. Tehát a függvénybe be kell építeni egy cél megadási lehetőséget, ha ez lesz a feladat. De most működik az, amit akartam.
Köszönöm a segítségeket.
Csökönyi Ferenc
Akkor most regisztrálj egy
Akkor most regisztrálj egy ilyen usernévvel:
És már fel is törted az oldaladat.
Szerintem egy külön témában írd le pontosan a megvalósítandó célt, mert ebben a kódban, amit beírtál, kb az $outputon kívül minden szarvashiba, amíg pedig alapvető dolgokat nem ismersz a drupalban, kerüld a kódolást
----
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.
Hát, én próbáltam, de nem
Hát, én próbáltam, de nem engedte :)
The username contains an illegal character.
Mindamellett a l() függvényt érdemes lenne tanulmányozni... ;)
...mit tudok: http://web.termuves.hu
Ez viszont talált, süllyedt.
Ez viszont talált, süllyedt. :) Köszi
Csökönyi Ferenc
Tanulmányoztam. :)
Tanulmányoztam. :)
$link = 'node/40';
$option = array('query' => 'mid='.$account->uid);
$output = l($account->name, $link, $option );
:)
Köszi.
Csökönyi Ferenc
Ez biztos így van, viszont az
Ez biztos így van, viszont az oldalra nem lehet regisztrálni és a felhasználó név sem módosítható.
A célt leírtam az elején: a fieldben lévő nevek önálló linkként való megjelenítése, ahol minden link ugyanazon oldalra mutat, de paraméterként átadja az adott felhasználó id-jét.
De azért köszi az észrevételt.
Csökönyi Ferenc