A 2012 Drupalaton és egy fórum kérdés ösztönözte ezt az írást.
A konkrét probléma: hogyan listázzunk ki felhasználókat bizonyos taxonómia kategóriába tartozás szerint ctools, panels és views segítségével Drupal 7 alatt.
Értelemszerűen telepítsük ezeket a modulokat a szokásos módon:
Views
Ctools
Panels
Kapcsoljuk be a Chaos tools, Page manager, Views content panes, Panels, Views, Views UI modulokat.
Ha ezzel megvagyunk akkor kezdjük a munkát. Hozzunk létre egy szótárt (admin/structure/taxonomy/add) "Felhasználó kategória" névvel és legyen a programok által használt neve "user_cat", ez lesz majd a felhasználói profilban felvéve mezőként. Készítsünk néhány kategóriát (admin/structure/taxonomy/user_cat/add) tetszés szerint.
Ezután a felhasználói beállításoknál (admin/config/people/accounts/fields) vegyük fel a mezőt a felhasználóhoz:
Mezőtípus: kifejezés hivatkozás
Név: Kategória
Programok által használt név: field_category
Szótár: Felhasználó kategória
Miután ez is elkészült hozzunk létre néhány teszt felhasználót különböző kategóriákkal, vagy módosítsuk a meglévőket. Így az előkészületekkel meg is volnánk.
Hozzuk létre az oldalunkat ami listázni fogja a megadott kategóriába tartozó felhasználókat. Ehhez a Ctools Page managerét fogjuk használni: admin/structure/pages
Adjunk hozzá egy új oldalt ahol a megadott kategóriába tartozó felhasználókat ki fogjuk listázni.
Adjunk nevet az oldalnak és legyen az elérési út: user-list/%taxonomy_term
Így listázható lesz például a teszt1 kategória: user-list/teszt1
Mást itt nem kell beállítanunk, kattintsunk a Folytatás gombra.
Az előkészített argumentumunkat kell most beállítani, kattintsunk a Változtat gombra.
Válasszuk a "Taxonómia kifejezés: ID"-t és kattintsunk a Folytatás gombra.
Ha term id-t szeretnénk a linkben használni akkor a Kifejezésazonosítót válasszuk, ha a kifejezés nevét szeretnénk használni akkor értelemszerűen a Kifejezés nevét válasszuk.
Ha csak a létező kifejezésekre akarjuk, hogy megjelenjen az oldal akkor a Limit to these vocabularies kiválasztóknál válasszuk a Felhasználó kategóriát. Ha mindent beállítottunk akkor kattintsunk a Befejezés gombra.
Beállítottuk az argumentumot mehetünk tovább a Folytatás gombra kattintva.
Ezen az oldalon állíthatjuk be a panel elrendezést. Jelenleg csak listázni akarunk, ezért az egy oszlop is megteszi, de ha komplexebb megjelenést szeretnénk akkor itt lubickolhatunk a lehetőségek között. Ha megvan a megfelelő akkor Folytatás.
A következő oldalak az induláshoz már nem feltétlen szükségesek ezért változtatás nélkül kattinthatunk a Folytatás, majd Befejezés gombokra.
Ha mindent jól csináltunk akkor most az összegző beállító oldalra kerültünk, kattintsunk a Mentés gombra.
Az oldalunk ezzel majdnem kész is van, már csak egy olyan lekérdezést kell gyártanunk ami előállítja a felhasználó listánkat, hogy beilleszthessük az oldalba.
Ehhez készítsünk egy nézetet: admin/structure/views/add
Adjunk nevet a nézetnek és válasszuk a felhasználókat, oldalt és blokkot nem készítünk. Ha megvagyunk a beállításokkal akkor tovább a Folytatás és szerkesztés gombra kattintva.
Két dolgot feltétlenül meg kell tennünk:
1. Argumentumot kell létrehozni a Felhasználó kategóriának
2. Környezetet kell kreálni ami átadja az argumentumot a nézetnek
Kattintsunk a Haladó beállításoknál a SZÖVEGKÖRNYEZETI SZŰRŐK Hozzáadás linkre.
Válasszuk ki a Kategória mezőt, amit a felhasználóhoz hozzáadtunk.
Válasszuk a Nézet elrejtését, ha nincs argumentum, majd kattintsunk az Alkalmazás gombra.
Adjuk hozzá a környezetet.
Ezután szerkesszük az argumentum bemenetet.
Nekünk a panel által biztosított környezetből fog kelleni a kifejezés azonosító, mert a kifejezés nevét átkonvertálta már azonosítóra.
Ha megvagyunk, akkor kattintsunk az Alkalmazás gombra.
A megjelenési nevet állítsuk beazonosíthatóra, például "Felhasználó listázása kategória szerint", és a nézetet mentsük el.
Ha mindent jól csináltunk akkor már csak egy dolgunk maradt, a listánkat az oldalhoz adni. Menjünk az oldal szerkesztéséhez (admin/structure/pages megfelelő oldal szerkesztés link) és válasszuk a tartalom fület.
Kattintsunk a fogaskerékre és válasszuk a Tartalom hozzáadáadása linket.
Itt válasszuk a Nézetek fület, azon belül az imént létrehozott nézetünket.
Ezen belül pedig a jól beazonosítható képernyőt, majd Folytatás.
Már csak a mezőnket kell beállítani, hogy a megfelelő környezetet adja át a nézetnek, válasszuk a Kifejezésazonosító-t, és a Befejezés gombot.
Mentsük az oldalt a Frissítés és mentés gombra kattintva.
Írjuk be a címsorba domain.név/user-list/kifejezésnév és ha mindent jól csináltunk akkor megkapjuk az óhajtott felhasználó listát.
Az eredeti taxonómia oldal felüldefiniálása
Amennyiben az eredeti taxonomy/term/%taxonomy_term útvonalat akarjuk használni akkor engedélyezzük a rendszer term_view oldalt és csináljuk végig az előző részben leírtakból mindent csak nem új oldalt hozunk létre, hanem szerkesztjük a rendszer term_view oldalt. Ilyenkor útvonalat, argumentumot már nem kell beállítani!
Kattintsunk a Szerkesztés linkre.
Kattintsunk az Új változat hozzáadása linkre.
Adjunk nevet a változatnak és pipáljuk be a Választási szabályok checkbox-ot, majd a Változat létrehozása linkre kattintsunk.
Itt a legördülőből a Taxonómia szótár-t válasszuk és a Hozzáadás linkre kattintunk.
Kiválasztjuk a Felhasználó kategória szótárt és Mentés.
Ha most a Folytatás gombra kattintunk, akkor elérkezünk a panel elrendezése oldalhoz ahonnan folytathatjuk a beállításokat.
Hozzászólások
DJ
Köszönjük DJ! Remek leírás!
Nekem csak egy kerdesem lenne
Nekem csak egy kerdesem lenne: a nezetnel hogy lehet elerni, hogy a "Kornyezet hozzaadasa" megjelenjen? Engedelyezve van a CTools, a Views, a Page manager meg a Panels is, de ilyenem nincs. D7, Views 3, CTools legujabb, meg mindenbol a legujabb....
--
Lehet, hogy nem
kapcsoltad be a Views content panes modult, ez a ctools csoportban található. Ha angolul vagy akkor Context jelenik meg.
A leírásban ott van:
„Kapcsoljuk be a Chaos tools, Page manager, Views content panes, Panels, Views, Views UI modulokat.”
Üdv!
Dudás József
Nagyon jó leírás! Köszönöm!
Nagyon jó leírás! Köszönöm! Sokat segített! Teljesen meg tudtam csinálni a felhasználó listákat, stílust is rendeltem hozzá, a listát névjegykártya szerű elrendezésre alakítottam.
A kérdésem:
Hogy tudnám megoldani hogy ez a lista egy panelen belül jelenjen meg???
Balázs