A node reference csak a saját tartalmakat mutassa

jamji képe

Van két tartalom típus, az egyik a másikra mutat olyan formában, hogy van benne egy cck mező, aminek a típusa node reference.
Hogyan lehet azt megoldani, hogy ez a node reference ne az összes tartalmat mutassa, csak azokat, amiket a felhasználó hozott létre?

Köszönöm előre is a segítséget!

jamji képe

Ami még megoldás lehet:

Van két tartalom:

Könyvtár és könyv

A felhasználó létrehoz néhány könyvet, majd egy könyvtárat, amiben a node reference-ként hozzáadja a könyveket.

Kérdés: Ha egy view-ban a könyveket listázom, hogyan tudom megjeleníteni, hogy melyik könyvtárhoz vannak node reference-ként csatolva?

0
0
Illyés Edit képe

ez a node reference ne az összes tartalmat mutassa

Csak megjelenítés szintjén akarod elrejteni a node reference tartalmakat, vagy szerkesztés szintjén is? (Lásd: nem látható vs. nem hozzáférhető).

csak azokat, amiket a felhasználó hozott létre

Melyik felhasználó? Az, aki éppen nézi a node-ot, vagy aki a node-ot létrehozta?

0
0
jamji képe

Szerkesztés szintjén legyen elrejtve és a node létrehozójáról van végig szó, tehát az összes szóban forgó node egy felhasználóhoz tartozik. Ez is a lényege, hogy a másik node-ját ne tudja a saját tartalmához csatolni.

0
0
Illyés Edit képe

Ha használod a Views modult, akkor létrehozol egy nézetet, aminek egyik argumentuma az adott felhasználó (Arguments résznél "UID is Author" vagy "Username is Author"), másik argumentuma pedig "Node reference: mezőneve". Ha ezután megtekinted a http://honlapneve/felhasznalo/1234 oldalt, akkor egy listát kell látnod, ami a "felhasznalo" által létrehozott, "1234" azonosítójú könyvtárra node reference útján hivatkozó node-okat listázza.

A Könyvtár tartalomtípus beállítási oldalán, amikor hozzáadod a Könyv node reference mezőt, találsz egy Advanced - Nodes that can be referenced (View) c. űrlapmezőt. Itt válaszd ki az előbbiekben létrehozott nézetet.

Leírva bonyolultabb, mint összekattintgatni (2 perc), hátránya, hogy valahogyan át kell adnod az argumentumokat ("felhasznalo", "1234"), tehát a linkek felépítésére figyelni kell, benne kell lennie az argumentumoknak, méghozzá a megfelelő sorrendben – ha ez valamiért nem lehetséges, akkor PHP-vel változóként tudod átadni az argumentumokat, amikor kóddal meghívod a nézetet.

0
0
jamji képe

Szuper!

A megoldás:

A nézet, amit a Könyvár tartalomnál használok, abban megadtam, hogy a felhasználó uid legyen paraméter, majd Argument Handling Code-nak megadtam a következőt:

global $user;
if (!$args[0]) {
  $args[0] = $user->uid;
}
return $args;

Végül szűrőként megadtam a tartalom típust, az nem kell paraméternek.

Köszönöm a segítséget!

0
0