Menüelem az aktív felhasználóhoz rendelt oldalból

ipeto képe

Sziasztok!

Van egy tartalomtípusom, amihez hozzárendelhető egy felhasználó User Reference mezővel. Szeretnék egy olyan menüpontot a főmenübe, ami az aktív felhasználó alapján erre az oldalára mutat.
Ajánlották, hogy a ctools Page Manager-ével hozzak létre ehhez egy átirányítást, de nem sikerül összeraknom: Ott kezdődnek a gondok, hogy szerintem az oldal útvonalában vagy a felhasználó uid-ját kellene megadni argumentumként vagy semmit (merthogy az aktív felhasználóról van szó). Viszont ebben az esetben sehogy sem tudok kapcsolatot definiálni a user reference mező alapján. Ha a node id-t adom meg az útvonalban paraméterként, akkor elérhető a user reference mező, de ugye éppen ezt az id-t keresnénk.
Útba tudna valaki igazítani akár a page manager kapcsán, akár más megoldás irányába?

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

ha jól értem a PM oldalban azt a nid -et akarod elérni aminek a user ref mezőjében az aktuális felhasználó uidja van, mert egy node/%nid menüpontot akarsz erre dinamikusan kitenni.

viewsban létrehozol egy nézetet, aminek egy displaye van, "context" típusú display. ez nodeokat listáz és argumentumként van benne a user ref mező, ami alapértelmezetten felveszi a jelenlegi felhasználót. aztán a page managerben az oldaladnál a context -ek között hozzá tudod adni ezt a nézetet, mint context és akkor el fogod érni azt ami annak a nézetnek az eredménye. (ebben az esetben ez egy darab node lesz ha minden stimmel) és aztán így már tudsz egy "redirection" típusú PM oldalt, aminél az urlt meg tudod csinálni a contextben elérhető "tokenek" alapján.

remélem érthető, kérdezz bátran, küldök screenshot.

1
0

-
clear: both;

ipeto képe

Majdnem tökéletesen jó, köszönöm szépen. Nagy és fontos újdonság számomra a Page Manager, de a hétvégi olvasgatásból a nézettel közösen való használata kimaradt.
Igazából egyetlen rész nem akar működni: nem jelenik meg a menüpont a megfelelő helyen (igazából sehol sem). A következő oldalt hoztam létre:

  1. $page = new stdClass();
  2. $page->disabled = FALSE; /* Edit this to true to make a default page disabled initially */
  3. $page->api_version = 1;
  4. $page->name = 'munkatars_profil';
  5. $page->task = 'page';
  6. $page->admin_title = 'Munkatárs profilja';
  7. $page->admin_description = '';
  8. $page->path = 'sajat/oldal';
  9. $page->access = array();
  10. $page->menu = array(
  11. 'type' => 'normal',
  12. 'title' => 'Profil',
  13. 'name' => 'main-menu',
  14. 'weight' => '0',
  15. 'parent' => array(
  16. 'type' => 'normal',
  17. 'title' => '',
  18. 'name' => 'navigation',
  19. 'weight' => '0',
  20. ),
  21. );
  22. $page->arguments = array();
  23. $page->conf = array(
  24. 'admin_paths' => FALSE,
  25. );
  26. $page->default_handlers = array();
  27. $handler = new stdClass();
  28. $handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
  29. $handler->api_version = 1;
  30. $handler->name = 'page_munkatars_profil_http_response';
  31. $handler->task = 'page';
  32. $handler->subtask = 'munkatars_profil';
  33. $handler->handler = 'http_response';
  34. $handler->weight = 0;
  35. $handler->conf = array(
  36. 'title' => 'HTTP válaszkód',
  37. 'contexts' => array(
  38. 0 => array(
  39. 'identifier' => 'Nézet - hivatkozott felhasználó',
  40. 'keyword' => 'view-referenced-user',
  41. 'name' => 'view:ref_hivatkozott_felhasznalo-ctools_context_1',
  42. 'id' => 1,
  43. ),
  44. ),
  45. 'relationships' => array(
  46. 0 => array(
  47. 'identifier' => 'Node from view',
  48. 'keyword' => 'node',
  49. 'name' => 'node_from_view',
  50. 'row' => '1',
  51. 'context' => 'context_view:ref_hivatkozott_felhasznalo-ctools_context_1_1',
  52. 'id' => 1,
  53. ),
  54. ),
  55. 'code' => '301',
  56. 'destination' => 'node/%node:nid',
  57. );
  58. $page->default_handlers[$handler->name] = $handler;

Ahogy írtam, a menüelem automatikusan nem jelent meg a főmenüben. A tegnapi elvetélt próbálkozásaimnál ez nem volt gond. Ugyanakkor az útvonal működik, szépen átdob a megfelelő node-ra. Kézzel nyilván létre lehet hozni a menüt, de érdekelne, mi lehet a gond.

0
0
Phoere képe

Láma kérdés, de gyorsítótár - különösen a menü cache - ürítése megtörtént?

0
0

Csökönyi Ferenc

ipeto képe

Igen, néhányszor :S

0
0
Phoere képe

OK.

Bevallom, ez a rész nekem még új, de valami feltűnt: kell két helyen 'weight' értéket megadni?
Megadod a 0-t egyszer a 'main-menu'-ben, majd a 'parent' tömbben ismét.

0
0

Csökönyi Ferenc

knorbi képe

Igen, megnéztem exporttal nálam egy működő page-manager menünél és van mindkét helyen.

0
0

Kiss Norbert
adatmentespecs.hu

knorbi képe

Nálam így néz ki a menü rész:

  1. $page->menu = array(
  2. 'type' => 'normal',
  3. 'title' => 'Education',
  4. 'name' => 'main-menu',
  5. 'weight' => '15',
  6. 'parent' => array(
  7. 'type' => 'none',
  8. 'title' => '',
  9. 'name' => 'navigation',
  10. 'weight' => '0',
  11. ),
  12. );

Annyi a lényegi különbség, hogy nála a 'type' => 'normal', nálam 'type' => 'none'

0
0

Kiss Norbert
adatmentespecs.hu

knorbi képe

Lehet, hogy én nem értem pontosan a dolgot...

Sztem itt az a gond, hogy eggy User-hez több tartalom is tartozhat, tehát nem tudsz egyértelműen egy node-ra hivatkozni.
Én inkább úgy közelíteném meg, hogy csinálnék a Views modullal egy oldalt, felvenném kapcsolatokba a User Reference mezőn keresztül a User-t és Szövegkörnyezeti szűrők közé felvenném a User: Uid-t.

Ezt így hirtelen, első blikkre írtam, talán egy próbát megér.

1
0

Kiss Norbert
adatmentespecs.hu

ipeto képe

Teljesen jól érted, de ebben az esetben pontosan egy tartalom tartozik a felhasználóhoz. Egyébként jelenleg pontosan az általad javasolt megoldás működik az oldalon, de elegánsabb lenne a követlenül az oldalra mutató menüpont.

0
0
aboros képe

ez a PM oldal:

$page = new stdClass();
$page->disabled = FALSE; /* Edit this to true to make a default page disabled initially */
$page->api_version = 1;
$page->name = 'munkatars_adatlap_redirect';
$page->task = 'page';
$page->admin_title = 'Munkatárs adatlap redirect';
$page->admin_description = '';
$page->path = 'adatlapom';
$page->access = array();
$page->menu = array(
  'type' => 'normal',
  'title' => 'Adatlapom',
  'name' => 'main-menu',
  'weight' => '0',
  'parent' => array(
    'type' => 'none',
    'title' => '',
    'name' => 'navigation',
    'weight' => '0',
  ),
);
$page->arguments = array();
$page->conf = array(
  'admin_paths' => FALSE,
);
$page->default_handlers = array();
$handler = new stdClass();
$handler->disabled = FALSE; /* Edit this to true to make a default handler disabled initially */
$handler->api_version = 1;
$handler->name = 'page_munkatars_adatlap_redirect_http_response';
$handler->task = 'page';
$handler->subtask = 'munkatars_adatlap_redirect';
$handler->handler = 'http_response';
$handler->weight = 0;
$handler->conf = array(
  'title' => 'HTTP response code',
  'contexts' => array(
    0 => array(
      'identifier' => 'View: Munkatárs context',
      'keyword' => 'view',
      'name' => 'view:munkatars_context-ctools_context_1',
      'id' => 1,
    ),
  ),
  'relationships' => array(
    0 => array(
      'identifier' => 'Node from view',
      'keyword' => 'node',
      'name' => 'node_from_view',
      'row' => '1',
      'context' => 'context_view:munkatars_context-ctools_context_1_1',
      'id' => 1,
    ),
  ),
  'code' => '301',
  'destination' => 'node/%node:nid',
);
$page->default_handlers[$handler->name] = $handler;

ez pedig a nézet:
$view = new view();
$view->name = 'munkatars_context';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'Munkatárs context';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
 
/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['title'] = 'Munkatárs context';
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['pager']['type'] = 'some';
$handler->display->display_options['pager']['options']['items_per_page'] = '10';
$handler->display->display_options['style_plugin'] = 'default';
$handler->display->display_options['row_plugin'] = 'node';
$handler->display->display_options['row_options']['view_mode'] = 'full';
/* Relationship: Content: Munkatárs (field_munkatars) */
$handler->display->display_options['relationships']['field_munkatars_uid']['id'] = 'field_munkatars_uid';
$handler->display->display_options['relationships']['field_munkatars_uid']['table'] = 'field_data_field_munkatars';
$handler->display->display_options['relationships']['field_munkatars_uid']['field'] = 'field_munkatars_uid';
$handler->display->display_options['relationships']['field_munkatars_uid']['delta'] = '-1';
/* Field: Content: Nid */
$handler->display->display_options['fields']['nid']['id'] = 'nid';
$handler->display->display_options['fields']['nid']['table'] = 'node';
$handler->display->display_options['fields']['nid']['field'] = 'nid';
$handler->display->display_options['fields']['nid']['label'] = '';
$handler->display->display_options['fields']['nid']['element_label_colon'] = FALSE;
/* Sort criterion: Content: Post date */
$handler->display->display_options['sorts']['created']['id'] = 'created';
$handler->display->display_options['sorts']['created']['table'] = 'node';
$handler->display->display_options['sorts']['created']['field'] = 'created';
$handler->display->display_options['sorts']['created']['order'] = 'DESC';
/* Contextual filter: User: Uid */
$handler->display->display_options['arguments']['uid']['id'] = 'uid';
$handler->display->display_options['arguments']['uid']['table'] = 'users';
$handler->display->display_options['arguments']['uid']['field'] = 'uid';
$handler->display->display_options['arguments']['uid']['relationship'] = 'field_munkatars_uid';
$handler->display->display_options['arguments']['uid']['default_action'] = 'default';
$handler->display->display_options['arguments']['uid']['default_argument_type'] = 'current_user';
$handler->display->display_options['arguments']['uid']['summary']['number_of_records'] = '0';
$handler->display->display_options['arguments']['uid']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['uid']['summary_options']['items_per_page'] = '25';
/* Filter criterion: Content: Published */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 1;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Filter criterion: Content: Type */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
  'page' => 'page',
);
 
/* Display: Page */
$handler = $view->new_display('page', 'Page', 'page');
$handler->display->display_options['path'] = 'munkatars-teszt';
 
/* Display: Context */
$handler = $view->new_display('ctools_context', 'Context', 'ctools_context_1');
$handler->display->display_options['style_plugin'] = 'ctools_context';
$handler->display->display_options['row_plugin'] = 'fields';

field_munkatars a user reference mező. itt a nézetről egy screenshot: https://www.evernote.com/shard/s15/sh/c70cc759-221a-44fb-9341-7520bdae6b...

mennie kell. jó ismerkedést, page manager nagy fun!

0
0

-
clear: both;

ipeto képe

Köszönöm mindenkinek a segítséget. Nagyjából sikerült körüljárni, hogyan jön létre a jelenség: Az útvonal és a menühöz rendelés valamilyen fura együttállása idézi elő. Az elmúlt napok kísérletezése során létrehoztam/áthelyeztem/töröltem néhányszor a menüelemet, ez okozhatja valahogyan a fennforgást. A következőket próbáltam:

  • A menüelem eredeti útvonala sajat/profil. A menüpontot a Page Manager felületén áthelyeztem sorban a Main, a Management és a User menükbe.
  • A menük admin felületén nézve a főmenüben nem (ez az eredeti probléma), a másik két menüben megjelent.
  • A publikus felületen nézve érdekes módon a User menüben sem jelent meg (ez lehet, hogy valamilyen sminkes baromság), csak a Management-ben
  • Ellenben ha átírom a Page Managerben az útvonalat mondjuk szemelyes-re, akkor szépen megjelenik a főmenüben is.

Tehát számomra úgy tűnik, elég nehezen viseli a page manager, ha valahonnan máshonnan piszkálunk bele a menükbe - akár csak a súlyt is megváltoztatva. Ehhez kötődik két kérdés:

  1. Vajon visszakaphatom a megjelenő sajta/profil elérési utat? Kellene még más sajat/akarmi menüket is létrehozni.
  2. Jól gondolom, hogy ha egy menü almenüjéhez akarom hozzárendelni a PM-rel létrejövő menüpontot, akkor azt a felületen közvetlenül nem tudom megoldani?
0
0