Sziasztok!
Egy ideje nyomkodom már a CCK-t és a Views-t is, de feltehetően még nem vagyok eléggé jártas a dologban, hogy ezt megoldjam.
Adott egy tartalomtípus, ami nagyon gyakran használt, és benne különböző mezőkben szereplő adatok, amik több helyen is megjelennének a weboldalon, többek között ott is, ahová ezt a tartalomtípust eleve beküldöm.
A lényeg, hogy ezeket az adatokat el is szeretném rendezni.
Ezt Views-al tökéletesen meg is oldanám, csak nem tudom létrehozni azt a nézetet, amit csak beállítanék alapértelmezettnek a tartalomtípusba egy Viewfield-ben, és mindig az aktuális adatokat rendezné el, az aktuális tartalomban.
Ez az én hibám, azért nem megy, mert nem tudom hogy kellene megoldani.
Sajnos nem sikerül beállítanom a kívánt nézetet megfelelő paraméterekkel.
Ha jól fogtam fel bizonyos dolgokat, akkor argumentum %nid lenne a megoldás, de valamiért ezt nem sikerül jól beállítanom. Valaki le tudná írni, hogyan kell ezt beállítani?
Drupal 6 Views 2.2 használok, a legfrissebbet.
Köszi
a kerdes
Egyetlen node CCK mezoit akarod views-al megjeleniteni?
Add arguments-> Node: Nid
Live preview -> beirod a node ID-t -> preview
mukodik?
Rengeteg node-ról van szó
Nos ez a tartalomtípus a leggyakrabban használt tartalomtípusom.
Van nagyon sok mezője, amit én hozok létre.
Ezt a tartalomtípust közzéteszem, és azt szeretném elérni, hogy eleve a már így beküldött tartalomban is táblázatosan jelenjenek meg bizonyos mezők.
Magyarázat:
A tartalomtípus egy eladó lakás, aminek vannak paraméterei: négyzetméter, szobák száma, stb.
Amikor beküldök egy lakást, akkor azt közzéteszem, csak hát szeretném ha a lakás paraméterei eleve táblázatosan jelenjenek meg.
Rengeteg lakást küldenék be, és azt szeretném, hogy ne kelljen mindegyiknek az adataihoz külön views.
Az elképzelés, hogy a Lakás tartalomtípusban lenne egy Viewfield, amiben beállítanék egy alapértelmezett Nézetet, ami mindig az aktuális lakás adatait rendezné táblázatba, az eredetileg kitöltött mezők megjelenését pedig elrejteném a lakás tartalomtípusban.
a viewfieldben kell valahogy megadnod az argumentumot
beállítasz egy nézetet, úgy ahogy pasqualle az előbb írta, hogy argumentumnak beállítasz node idt. ezt a nézetet használod a viewfieldben és ott valahogy (sose használtam viewfieldet) megadod az argumentumot.
csinálhatod azt is, hogy úgy állítod be az argumentumot, hogy 'provide default value' és aztán azt 'custom php' -ra állítod és ott megadod a kódot, ami ilyesmi lesz:
nagy vonalakban ilyesmi.
másik megoldás lehet, hogy a mezőidet rejtettre állítod cckban és a template_preprocess_node($vars) ban amit a template.php -ban valósítasz meg összeállítod és hozzáfűzöd a táblázatot a $vars['content'] -hez.. ez meg kb így megy:
template.php:
arra, hogy pontosan hogyan kell használni a theme_table sminkfüggvényt, találsz leírást api.drupal.org -on is.
remélem tudtam segíteni, próbálkozz valamelyik iránnyal és ha elakadsz kérdezz egy konkrétat. jó lenne, ha linket is tudnál mutatni, vagy kódot vagy képernyőmentést a nézetedről, az argumentumod beállításairól vagy ilyesmi.
-
clear: both;
Először is köszi a sok segítséget.
Azt hiszem az minden bajom, hogy nem tudom, hogy kell megadni az argumentumot helyesen!
Nagyon közel vagyok egy egyszerű megoldáshoz, de valahogy mégsem megy.
Most odáig jutottam, hogy ilyen egyszerűen összehozható a dolog:
http://guliweb.info/1.jpg
Megadtam a nézetben, hogy három mezőt akarok a táblázatba: Room1, 2 és 3.
És argumentum: nid
http://guliweb.info/4.jpg
ahol ezzel a beállítással most az összes beküldött lakás 3 szobájának adatait megjeleníti a Live preview:
http://guliweb.info/2.jpg
Amikor ezt a nézetet beállítom a lakás1 lakás2 stb node-oknál a view fieldben, és semmi mást nem piszkálok, akkor az adott node-ban, kilistáza az összes többi lakás szobáinak adatait, kivéve az aktuális lakásét, amit éppen szeretnék.
http://guliweb.info/3.jpg
Az egyszerűség kedvéért most láthatónak hagytam az eredeti mezőket, amiknek tartalma nem jelent meg az alatta látható nézetben.
Ennek ellenére most vagyok a legközelebb a megoldáshoz. :)
Igazán amatőr vagyok, és a $vars php-s megoldás már nagyon távoli tőlem, míg az előtte leírt megoldást még megpróbáltam, de sajnos nem jól sült el az sem.
Ezekkel a képekkel talán közelebb kerülök a megoldáshoz a segítségetekkel!
proba
szerintem ha igy allitod be az argumentumot akkor mukodnie kellene
Action to take if argument is not present:
Provide default argument
Default argument type:
Node ID from URL
Próbáltam ezt is, de nem jött össze
Ha ezt állítom be, ahogy leírtad, akkor a tartalom beküldésénél beállított nézet egyáltalán nem jelenik meg.
Magánál a viewfieldnél, a tartalom beküldésénél is van egy argument, amit ha szabadonhagyok semmi, ha %nid-re állítok, akkor szintén semmi, ha pedig %viewer , akkor már megjelenik a táblázat teteje, az oszlopok címkéivel, de nem gyűjt ki semmit.
Az tény, hogy útvonal álneveket használok, de most kipróbáltam nélküle is, és úgy sem megy :(
bekuldesnel?
hogyan legyen argumentum tartalom bekuldesnel, nem ertem? Ott meg nincs a node-nak szama..
Hát van egy argments mező a
Hát van egy argments mező a viewfieldemnél, amikor beküldöm a tartalmat...
http://guliweb.info/6.jpg
view argumentum
ugy ertettem, hogy a viewt mar a tartalom bekuldesenel is latni szeretned, de latom nem azt akarod..
en sem hasznalok viewfield-et, de a kep alapjan %nid-et irnek, es a view-ban pedig egyszeruen node:nid kell argumentumnak, ezutan az argumentum tobbi beallitasa mar lenyegtelen.
a preview-nak pedig mukodnie kell ha a preview gomb elotti szovegdobozba beleirod a node szamat, igy rogton tesztelheted is, hogy jol keszitetted e el a viewt..
Sajnos nem jövök rá mi
Sajnos nem jövök rá mi hiányozhat, de ez így valamiért nem jó.
Mindent így csinálok, és már a previewban is játszik, hogy ha nincs beírva semmi, csak összerakom ezt, akkor kilistázz mindent. Aztán beírok egy nid-et, pl 6, vagy 6nid mindegyikre tökéletesen működik a previewban, és kiszűri nekem az adatokat.
Amikor azonban a kész view-t beállítom a viewfieldben, akkor nem megy.
Ha ott nem írok be semmit argumentumhoz, akkor kilistázza az összes többi node adatait, amikor megpróbálkozom konkrét nid-el, vagy %nid-el vagy bármivel, akkor nem gyűjt ki semmit.
Gőzöm sincs miért történik ez!
views_embed_view
konnyen megeshet az is, hogy a viewfield modul nem jo
egy egyszeru pelda hogyan tudod megoldani a view megjeleniteset node sminkelessel
a smink konyvtaradban letrehozol a node.tpl.php fajlrol egy masolatot node-lakas.tpl.php neven (ahol a lakas helyett a te sajat tartalomtipusod nevet hasznalod)
a vegere pedig beszurod ezt a kodot
torlod a theme cachet (pl ugy, hogy az admin/build/themes oldalon nyomsz egy mentest), es mar meg is jelenik a view minden lakas tipusu node vegen.
Zseniális! Köszönöm, működik
Zseniális!
Köszönöm, működik a dolog!
És én az amatőr is csodákra vagyok képes!
Ismét bebizonyosodott, hogy a Drupal mindenkinek beválik, és hogy a fórumozók zsenik!
:)
Baj van! Amikor nem adminként
Baj van!
Amikor nem adminként nézem az oldalt, hanem más felhasználóként, vagy be nem jelentkezve, akkor a következő hibaüzenet jelenik meg.
warning: Invalid argument supplied for foreach() in /mounted-storage/home108c/sub006/sc64965-AYWE/fosztogato.hu/sites/all/modules/views/theme/views-view-table.tpl.php on line 22.
Ez a sor:
foreach ($header as $field => $label):
A táblázat pedig nincs sehol, nem jelennek meg az adatok.
Ha adminként nézem minden rendben van, jól megy a dolog.
Mi okozhatja ezt?
jogosultsag
van nekik 'access all views' jogosultsag?
Nem volt, de feltettem
Nem volt, de feltettem, viszont nem változott semmi tőle.
Töröltem cache-t, meg próbálkoztam mindennel, de továbbra is csak az admin látja a fenti módon készített listákat.
Köszönöm, hogy segítesz!
Békés, Boldog Karácsonyt mindenkinek!
sajat jogosultsag a viewban
esetleg meg a viewban nem allitottal be egy masik jogosultsagot?
Mire gondolsz? Ezt hol
Mire gondolsz?
Ezt hol kell?
"Access: Unrestricted" a viewban
Nemrég felkerült a Content Access controll, amit egy másik tartalomtípusnál használok, és ott beállítottam, hogy azt csak bejelentkezett felhasználok lássák. Ez jól működik, de annak a modulnak nincs köze elvileg a viewshoz.
Viszont mióta megcsináltuk a lakás tpl phpt azóta csak az admin látja az összes nézetet, amit csináltam...
miből gondolod, hogy nincs köze a viewshoz?
nem vagyok biztos benne, de szerintem ez pont nem így van.
igenis van köze, legalábbis én azt tartanám logikusnak, hogy a views úgy építse fel a nézeteket, hogy figyelembe veszi más modulok node szintű hozzáférés beállításait vagy mondjuk a taxonomy access control beállításait, ha épp azt használsz. (kettő ilyen access control modult általában nem érdemes együtt használni azt írják sok helyen)
tehát:
ha egy felhasználói csoportnak content access -el megtiltod, hogy bizonyos node típusokat vagy nodeokat lásson, akkor azok a nodeok egy views nézetben sem jelennek meg ennek a csoportnak!
-
clear: both;
oké
Oké, ez így tiszta sor, és így nem is jelenne meg olyan adat, amit egy korlátozott hozzáférésű tartalomban küldtem be. De az összes nézet amit készítettem, mind olyan adatokat listáz ki, amik olyan tartalomtípusokból erednek, amelyeken nincs korlát.
Csak a content access-t használom, taxonomy-t nem.
Most kipróbáltam, kikapcsoltam a Content access-t, de ez sem változtatott a helyzeten.
_
Ah köszi, megvan a hiba, a views láthatósága nem volt beállítva a jogosultságok között mindenkinek. Mindig kiderül, hogy milyen kezdő vagyok:)
Köszi mindent!
További szép karácsonyt!
Már régóta keresem a
Már régóta keresem a problémámra a megoldást, talán ez a topic áll hozzá a legközelebb.
Az is megoldható ezzel a megoldással, hogy a saját tartalomtípus ami tartalmaz cck-s mezőket, és az ebből létrejött node-ot views-al megformázni?
Előre is köszönöm a segítséget.
Norbi
új kérdés, új téma!
Nem teljesen ugyanaz a kérdésed (ha jól értelmezem), mint a témaindítóé, ezért kérlek indíts új témát, és pontosan írd le, mit is szeretnél elérni. Ha pedig teheted, akkor helyezz el itt egy, az új témára mutató linket!
Köszönöm. :)
Választ szeretnél? - Új kérdés, új téma - Tesztoldal - Trollkezelés - Frissítés
most hogy valaszoltal a
most hogy valaszoltal a hozzaszolasara nem tudja szerkeszteni mar :)
---
Tévedni mindenkinek szabad, csak a mérnöknek észre kell vennie.
válaszolni
Válaszolni tud rá, csak már nagyon kicsi lesz a "doboza". :D
Választ szeretnél? - Új kérdés, új téma - Tesztoldal - Trollkezelés - Frissítés