views argumentum nincs meg

pege képe

Sziasztok

Elakadtam egy kicsit :(
vannak felhasználóim akik bekuldenek hirdetést. Csináltam egy listát ahol ott a nevük , ha valaki rákattint a link a user id-t hozza be és ebbol nyeri argumentumnak a views hogy melyik hirdetéseket jelenitse meg. Viszont jo lenne ha views megjelitésben lenne pár személyes adat amit a profilbol nyernék ki . MIvel nem gyártottam le az összes felhasználo nézetét hanem az argumentummal szűrok , igy fix cimnek nem tudom beirni hogy melyik felhazsnálo nézete jelenik meg. Ugy gondoltam csinálok egy blokkot , és annak a views nézeté szintén ebbol az argumentumbol kinyeri a felhasználo ID-t és már meg is van. Az elsőként leirt nézetben nem tudom megoldani blokknézetként mivel az egyik tartalom a másik felhasználoi adatra szur . igy kellett a másik nézet , az viszont blokk igy nem tudom megmondani hogy a címben szereplo vip/29 -bol nekem a 29 az argumentum . Szoval ugy látom hogy csak annyi a gondom hogy hogyan adjam meg hogy a második érték legyen argumentum , mert valahogy nem megy :( De ha van valakinek otlete hogy a tartalomra szurt nézetben hogyan jelenithetnék meg olyan tartalmat ami a profilra vonatkozik és figyelembe veszi a nézet többi részét , tehát nem statikus informácio kellene , annak nagyon hálás lennék !

előre is köszi

Drupal verzió: 
pege képe

Azt hogy a nézet cím mezője valahogy ne egy statikus szöveget mutasson hanem mondjuk egy profil mezőt az nem megoldható ?

0
0
szantog képe

Ne legyen cím mező, használd a views fejlécét. Itt beállíthatod a beviteli formát php kódra, és akkor egy $global user után tudsz a user objektumból adatot írni bele. Kis sminkeléssel (views-view--megfelelo.tpl.php) és megfelelő divek beszúrásával a fejlécbe teljesen a block címére tudod alakítani a fejlécet.
Ezt így nagyon röviden, ha valami nem megy, szólj, és részletezem.

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.

pege képe

Ebből a sminkelést talán meg tudom oldani :) Nincs valami kapcsolo amit halando is be tud nyomni ? De a php-s dolog részletezését szívesen veszem :)

0
0
szantog képe

A phps rész sem nagy wasistdas, pláne, mert még én is meg tudom csinálni. :)
Először ki kell deríteni, hogy hívják drupalul a mezőt, amit használni szeretnél.
1. Kell hozzá devel modul. Elmész a profil oldalra, ott a kell lennie egy "Dev load" fülnek. Ha erre kattintasz, megkapod a $user objektum szerkezetét, és kiválaszthatod, hogy melyik értéket akarod használni.
2. Beírod a fejlécbe hogy $global user; print_r $user; Ezzel ugyanazt a szerkezetet kapod, csak kicsit randábban.
Arra kell figyelni, (bár nem tudom, hogy a profile modulnál ez hogy megy..) lehet, hogy mező egy tömb.
Ha csak egy egy egyszerű érték van, akkor ennyi a kód (ezzel konkrétan az aláírást írja ki):

 global $user;
print $user->signature;

Ha tömböt látsz, akkor ez (mondjuk a roles az, és a 2-es azonosítójú role értékét íratjuk ki.)
 global $user;
print $user->roles[2];

Ebből lesz: authenticated user
Keresd ki a megfelelő értéket dev loaddal vagy print_r-rel, és cseréld ki.
Ja, ez csak akkor jó, ha az aktuálisan bejelentkezett user adataival akarsz dolgozni, és a core profile moduljával létrehozott mezőkön, nem pl content profile modullal. Ha a node szerzőjével, vagy argumentummal meghatározott userrel akarsz dolgozni, nüánsznyit bonyolultabb, de még épp össze tudom rakni, ha kell. :)
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.

pege képe

Nem az aktuális fehasználo ID-vel akarok dolgozni. Hanem van egy blokk amiben vannak nevek . Mondjuk János , Péter stb.. . Amikor rákattint a a jánosra az ő ID-je mondjuk 107 , a jános linkje nevek/107 . A nevek utvonal megvan adva egy nézetben , és argumentumoknál pedig hogy a nevek utánai számmal szurje a hireket , így csak a jános híreit látom . Viszont a hireken kivul semmit , ehez akartam kiratni hogy Őt Szabó Jánosnak hívják és hogy mondjuk hol lakik . Ezek az adatat profilként adta meg . Ezért csináltam egy blokkot ami szintén a nevek oldalakon jelenik meg , amiben szintén van egy nézet , ez a nézet nem tartalomra hanem felhasználora keres , a nézetnek a blokk nézete viszont nem tudja már kinyerni a 107-es id-t valami oknál fogva , valoszünleg mert nem adhatok meg neki megintcsak nevek utvonalat mint a másik nézetnek ami a tartalomra szurne , szoval az kellen hogy ki tudjam nyerni az argumentumot ennek a nézetnek is . Az első nézetnek pedig nem lehet blokknézete mert azt nem tudom modositani hogy az ne tartalomra hanem felhasználóra szürjön . Persze kiprobálom a tiédet :) csak ugye nem a belépett felhasználo id-je kell hanem a már meglévő linkből kellene kiszedni .

0
0
szantog képe

Na így már más a leányzó fekvése..
Akkor sorban: Olyan nincs, hogy a blokk nézete nem látja az argumentumot, ott valami mást beállítás nem jó a blokk nézeténél. Hogy állítottad be az argumentumot? Previewnél kézzel beírva az UID-t kapsz vissza valamit?
aloszünleg mert nem adhatok meg neki megintcsak nevek utvonalat
Van egy érzésem, hogy nem blokk nézetet csináltál, annak ugyanis nem kell útvonal.
z első nézetnek pedig nem lehet blokknézete mert azt nem tudom modositani hogy az ne tartalomra hanem felhasználóra szürjön
Már hogyne lehetne. A mezők hozzáadásánál a Felhasználók csoporton belül az összes profil adat elérhető még akkor is, ha tartalom a nézet alapbeállítása.

De itt egy másik megoldás:
1. Csinálsz egy user alapú nézetet.
2. Beállítod az argumentumot >> UID from URL
3. Csinálsz egy kapcsolatot: "Felhasználó: Nodes authored"

Ezek után csinálsz egy page alnézetet a tartalmakkal és egy block alnézetet a felhasználó adataival.

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.

pege képe

Én is abban reménykedek hogy nincs olyan hogy nem látja , de sajna valamiért nem látja :(
Ha megadom hogy ha nincs argumentum akkor mit vegyen alapnak akkor azt kirakja , de mindig azt szoval ezért gondolom hogy nincs argumentum .
De blokk nézet , ezért is irtam hogy nem tudok utvonalat adni , mert utvonalat csak oldal nézetnek tudok .
Ha ugyanabban a nézetben vagyok akkor nálam nincs kulonbség a blokkban és az oldalban megadott mezok kozott , tehát nem tudok olyat csinálni hogy oldal nézetben listázza hirdetéseket , mig blokknézetben csak profil mezok jelenjenek meg . Ha viszont oldal nézetben is ott vannak a profil mezok akkor minden hirhez kiirja a mezoket , pedig nekem csak az oldal tetetején kellene , ezért gondoltam hogy az oldal teje kap egy uj blokkot ami meg a hirt bekuldo profiljábol lenne pár mezo .

Mindjárt kiprobálom amit irtál :)

0
0
szantog képe

Ott lesz a gond:
Ha megadom hogy ha nincs argumentum akkor mit vegyen alapnak akkor azt kirakja , de mindig azt szoval ezért gondolom hogy nincs argumentum .
A provide default argument legyen UID from url
Ha ugyanabban a nézetben vagyok akkor nálam nincs kulonbség a blokkban és az oldalban megadott mezok kozott
Ha blokk nézetbe rákattintasz valamelyik mezőre, akkor a mezőnél beállításainál lesz a jobb felső sarokban egy Override gomb. Ha erre kattintasz, akkor máris a korábbi alnézetekről függetlenül szerkesztheted a mezőket.

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.

pege képe

De azzal csak azt adom meg hogy mit tegyen ha nincs argumentum , olyankor nem jelenik meg semmi .

Amit elobb mondtál hogy ugy probáljam meg ott nekem ha user tipusu nézetet csinálok akkor nem tudok tartalom tipusu mezot megjelniti az oldal nézetében ! Szoval gyorsan elakadtam :)

0
0
pege képe

Most ott tartok hogy valoban láma voltam és megoldhato egy nézettel , az oldal és a blokk kulon mezokkel . Ujra csináltam most már igy de a hiba ugyanaz :( Az oldal nézet jo , de a blokk nézet nem :( Egyszeruen nem látja a számot .
Az oldal nézetben megadtam hogy az elérés : nevek
Ha a link nevek/29 akkor a 29-es user id hireit listázza ki az oldal , de a blokk nem látja ezt a 29-et .

0
0
szantog képe

Jó, megvan, gőzöm sincs, miért nem veszi figyelembe az argumentumot a blokknál, de így sikerült:
A blokk nézet argumentumában a provide def. arg-ot állítsd php kódra, és írd bele: return arg(1);
Nekem most a nevek/1 útvonalon pont azt jeleníti meg, amit szeretnél.

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.

pege képe

Működik :) Köszi !!!
De azért nyugtass meg hogy amit én mondtam annak is mennie kellett volna :) De a lényeg hogy igy megy !
Már csak azt kellene kitalálnom hogyan láttassam a blokkot a tartalom felett ? A blokkoknál a tartalom részbe van behuzva ez a blokk , és ott is legtetején , de igy is a nézet oldal nézete alatt van a blokknézet , a fejlécben meg nem jelenik meg a nézet :(

0
0
szantog képe

De azért nyugtass meg hogy amit én mondtam annak is mennie kellett volna :)
Az igazság az, hogy már én is elbizonytalanodtam, de szerintem igen.
A másodikra több megoldás van, ha nincs content-top régiód, akkor létrehozod a sminkedben. (Hosszabb, de lehet, hogy máshol is szükséged lesz rá..)
Második: A page.tpl.php-ban a print $content rész elé beírod, hogy
 print views_embed_view('nezeted_neve', $display_id = 'block_1');
és elmented page-nevek.tpl.php néven a sminked könyvtárába.

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.

pege képe

Majdnem jo :)
A block_1 helyett nem lehet hogy más kell ?
Mert amint rákattintok a bal régio középre megy a tartalom ami meg középen volt balra .

0
0
szantog képe

Nem, az a nézetedet azonosítja, nem pedig a blokkot, ahová kerül. Szóval ha megjelenik a nézeted, akkor jó.
Szerintem a page.tpl.php-ban néztél el egy divet.
Nézd meg megint az eredetit, a print $content előtt van egy div, ami közbezárja az egészet. (Ez sminkfüggő)
Pl nálam így néz ki:

<div id="content-area">
    <?php print $content; ?>
</div>

Pontosan ide tedd:
<div id="content-area">
    <?php print views_embed_view('nezeted_neve', $display_id = 'block_1');?>
    <?php print $content; ?>
</div>

Vigyázz, hogy ne törölj, mást ne módosíts, mert széthullhat az oldal.
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.

pege képe

.

0
0
szantog képe

A diveket kiveszi a szűrő az itteni hozzászólásokban, a < code> taget használhatod erre.
Viszont ha jól van a template-ben, akkor nincs több ötletem, látni kellene az oldalt. Még valami css mókára tudok gondolni, de azt is nehéz orvosolni az oldal címe nélkül.

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.

pege képe

Más volt a gond :)
Amit használok sminket , vannak alsminkjei , én alsminket használok , de a smink page.tpl.php -jét másoltam :)
Most jo !!!
Köszi mégegszer
Küldtem mailt ha van idod néz rá !

0
0
aboros képe

mivel a blokknak nincs útvonala, így ő soha nem fog argumentumot kapni. (azok ugyanis az útvonalban vannak) ezért kellett volna beállítani azt, hogy action to take if argument is not present: provide default argument: argument type: user id from url..

ennek ez a módja.

0
0

-
clear: both;

szantog képe

OFF: Ádám, ma valahogy Te vagy writeonly, csak nem PP-vel keltél? :D
http://drupal.hu/forum/views-argumentum-nincs-meg#comment-35510

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.

aboros képe

valahogy mégse ment át. gondoltam mégegyszer leírom, mintegy megerősítésként és kicsit meg is próbálom a miértet elmagyarázni.

leírtad a helyes megoldást, aztán mégis arg() -al bűvészkedtek, utána meg hajmeresztő views_embed_view() -kat varrtok a page.tpl.php -ba... :(

ezért gondoltam, hogy az utókor számára ideírom mégegyszer (nyomatékosítandó) a helyes megoldást.

0
0

-
clear: both;

szantog képe

Kipróbáltam (még egyszer), és blokk nézetben nem működik az UID from URL, csak a user/% útvonalon és álneveiken.
Tehát ha a nevek/107 nem a user/107 álneve, akkor nem lesz jó. (Hogy ez most hiba, vagy nem, nem tudom, de ha nem megy, akkor az arg() használata miért nem jó?)
utána meg hajmeresztő views_embed_view()
Ez miért hajmeresztő? Tény, hogy egyszerűbb volt, mint belemenni a régió-létrehozás részleteibe, de ha csak ezen az egy oldalon szeretne hasonló megjelenést, akkor mi a baj vele?
Tehát ez a topic csak azért nyúlt ilyen hosszúra, mert
1. Nem jó valamiért a standard UID from URL blokk nézetnél.
2. A smink nem tartalmaz megfelelő régiót az általa kívánt megjelenéshez.

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.

aboros képe

Tehát ha a nevek/107 nem a user/107 álneve, akkor nem lesz jó.

nyilván nem. :) az álnév tökre nem számít. ha a user/107 oldalon vagyok, akkor az az argument handler észreveszi, hogy az egy uid és használja. tökmindegy mi az álneve. teljesen mindegy. lehet a user/42 álneve akár robotok/szuper-depressziosok/marvin is, akkor is menni fog.
http://img.skitch.com/20091009-p2f66b6ttbyudxg7cka13ph7xa.jpg

mindegy is, örülök, hogy sikerült megvalósítani az igényt, az a lényeg!

0
0

-
clear: both;

szantog képe

Ok, a kép alapján látom, hol beszéltünk el. :)
Ami pegenek kell, az a nevek/% útvonal, ami nem esetében user/% álneve, hanem egy views-szal generált page.
Amúgy engem meg az zavart meg, hogy a handler a node id-t észreveszi node id from url beállításnál ugyanilyen esetben (tehát ha nem node/% a belső útvonal). Ezért nem értettem, hogy ez most bug, vagy feature. :)

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.