og_context() függvény a nézet láblécében

ipeto képe

Sziasztok!

Organic Groups-szal szerveztem össze két tartalomtípust, a Tantárgy a csoport, a Tananyag pedig a csoporttartalom. A tantárgyak alá szeretnék egy listát a hozzárendelt tananyagokból. Ezt egy nézettel, egy EVA-mezővel szépen létre is hoztam.

A lista alá kell egy hivatkozás (Új tananyag hozzáadása), hogy a felhasználónak egyszerűbb legyen az élete. Namost az entity reference-nek (merthogy az organic groups-hoz ugye ez kell) nincs olyan szép widget-je ehhez, mint a node reference-nek, ezért a nézet láblécébe tenném bele azt a hivatkozást, ami az entity reference prepopulate modul segítségével hozzácsatolja a tananyagot a tantárgy csoportjához. Ezen túl még az OG-csoportok alapján is szűrni kell, hogy kinek is jelenjen meg. Ezért egy PHP-mezőt adnék hozzá a lábléchez, némi nyomozás után ezt:

  1. <?php
  2. global $user;
  3. $group = og_context();
  4. $gid=$group['gid'];
  5. $roles = og_get_user_roles('node', $gid);
  6.  
  7. if (og_is_member('node', $group['gid'])) {
  8. foreach($roles as $role) {
  9. switch ($role) {
  10. case 'administrator member':
  11. case 'teacher':
  12. $upl=true;
  13. break;
  14.  
  15. default:
  16. $upl=false;
  17. }
  18. }
  19. if($upl) {
  20. print "<a href=\"node/add/course-material?og_group_ref=". $group['gid']."&destination=node/". $group['gid']."\">Új tananyag csatolása</a>";
  21. }
  22. }
  23. ?>

A gond ott van, hogy az og_context() függvény nem akarja feltölteni a $group tömböt abban az esetben, hogy ha a tantárgy csoportjában még nincs tananyag. Pedig a nézet szövegkörnyezeti szűrőjében jól működik (elvileg) ugyanez, ott is az OG context biztosítja az alapértelmezett értéket. A nézetben a kapcsolatokhoz az OG membership: OG membership from Tartalom, a szövegkörnyezeti szűrőhöz pedig az (OG membership from node) OG membership: Group ID bejegyzések kerültek.

Emellett még ugyanez a rész a következő hibaüzenetet gyártja: EntityMalformedException: Missing bundle property on entity of type node. in entity_extract_ids() function Ezt sem tudom, hol kellene orvosolni, másrészt meg a nézet Entity settings-ében meg van adva a bundle.

Szóval ha valakinek lenne javaslata, hogy mi a fenti megoldásban a hiba, azért hálás lennék.

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

Hát a amikor page managerben a Content résznél egy új tartalmat adsz hozzá akkor ott lesz egy olyan csoport, hogy Organic Group és abban van egy "Content create links", ami pont ezt tudja.

Lehet, hogy blokk is van ilyen, csak nálam az le a blokk modul le van tiltva, hisz page managert és panels-t használok, és nem tudtam most sebtiben megnézni.

pp

0
0
ipeto képe

Köszi szépen, megnézem.

0
0