Egy tartalomtípus mezőinek megjelenítése táblázatosan magában a tartalomtípusban Views-el

zimbo képe

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

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
Pasqualle képe

Egyetlen node CCK mezoit akarod views-al megjeleniteni?

Add arguments-> Node: Nid
Live preview -> beirod a node ID-t -> preview
mukodik?

0
0
zimbo képe

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.

0
0
aboros képe

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:

if (arg(0) == 'node' && is_numeric(arg(1))) {
  $node = node_load(arg(1));
  if ($node->type == 'lakas') { #vagy ami a te lakás típusod neve
    return arg(1);
  }
} else {
  return FALSE;
}

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:

function SMINKEDNEVE_preprocess_node($vars) {
  $node = $vars['node'];
  if ($node->type == 'lakas') { #vagy ami a típusod neve
     /*
     itt összeállítasz egy $header és egy $rows tömböt a cck mezőid nevei és értékei alapján
     */
     $vars['content'] .= theme('table', $header, $rows, $attributes = array(), $caption = NULL);
  }
}

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.

0
0

-
clear: both;

zimbo képe

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!

0
0
Pasqualle képe

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

0
0
zimbo képe

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 :(

0
0
Pasqualle képe

tartalom beküldésénél

hogyan legyen argumentum tartalom bekuldesnel, nem ertem? Ott meg nincs a node-nak szama..

0
0
zimbo képe

Hát van egy argments mező a viewfieldemnél, amikor beküldöm a tartalmat...
http://guliweb.info/6.jpg

0
0
Pasqualle képe

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..

0
0
zimbo képe

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!

0
0
Pasqualle képe

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

print views_embed_view('viewrooms', 'default', $node->nid);

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.

0
0
zimbo képe

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!

:)

0
0
zimbo képe

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?

0
0
Pasqualle képe

van nekik 'access all views' jogosultsag?

0
0
zimbo képe

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!

0
0
Pasqualle képe

esetleg meg a viewban nem allitottal be egy masik jogosultsagot?

0
0
zimbo képe

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...

0
0
aboros képe

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!

0
0

-
clear: both;

zimbo képe

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!

0
0
norbiii képe

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

0
0
nevergone képe

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. :)

0
0
gergely képe

most hogy valaszoltal a hozzaszolasara nem tudja szerkeszteni mar :)

0
0

---
Tévedni mindenkinek szabad, csak a mérnöknek észre kell vennie.

nevergone képe

Válaszolni tud rá, csak már nagyon kicsi lesz a "doboza". :D

0
0