Views menü - két napja kínlódok ezzel

alan képe

Hello

Két napja küszködök valamivel, mielőtt feladnám, gondoltam megkérdezem, hátha valaki tudja a megoldást.

Adott egy tartalomtípus, amelyhez egy szótár van rendelve, így lehet azt kategorizálni.
Egy olyan menüblokkot szeretnék készíteni, amelyik listázza azokat a tartalmakat, amelyek abban a kategóriában vannak, mint amibe az a tartalom tartozik, amelyiket épp a felhasználó megtekint.

Például:

Tartalom Kategória
node/1 term/1
node/2 term/2
node/3 term/1
node/4 term/2
..........................

Ha a látogató a node-1 tartalmat olvassa épp, akkor a menüblokk a node/1 és node/3 -ből álljon, ha a node/4 -es tartalmat, akkor a menüblokk a node/2 és a node/4 -ből.

Views-el oldottam meg, és addig eljutottam, hogy az aktuális tartalom web címéből szövegkörnyezeti szűrővel kiolvastam amikor külön a kategóriákat szűrtem ki és működik is, de amint rákattintok valamelyik node-ra, eltűnik, mivel akkor már a nodeból nem tudja kiolvasni.

Ha valaki meg tudná mondani, hogy views alatt hogyan kell kiolvasni a webcímhez tartozó tartalomból, hogy milyen kategóriába tartozik, akkor meg is lenne oldva. Erre sajnos nem tudtam rájönni.
Azért az aktuális webcímből, mert onnan tudom, hogy épp milyen tartalmat tekint meg a látogató.
Természetesen ha valakinek van jobb ötlete a probléma megoldására, azt is szívesen veszem.

Azért van szükségem erre a megoldásra, hogy egy adott tartalomhoz kapcsolódó más tartalmakat tudjak megjeleníteni és csak ezeket lássa a látogató egy hosszú lista helyett.

(Drupal 7,14 + views, taxonomy menu, menu block ...)

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

A tartalom típus teszt és a taxi hivatkozás mező nálam field_teszt. Ezt át kell alakítanod majd, hogy működjön.

$view = new view;
$view->name = 'teszt';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'Teszt';
$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'] = 'Teszt';
$handler->display->display_options['use_more_text'] = 'tovább';
$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['query']['options']['query_comment'] = FALSE;
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['exposed_form']['options']['reset_button_label'] = 'Alaphelyzet';
$handler->display->display_options['exposed_form']['options']['exposed_sorts_label'] = 'Rendezés';
$handler->display->display_options['exposed_form']['options']['sort_asc_label'] = 'Növekvő';
$handler->display->display_options['exposed_form']['options']['sort_desc_label'] = 'Csökkenő';
$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'] = 'fields';
/* Mező: Tartalom: Cím */
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['title']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['title']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = 0;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = 0;
$handler->display->display_options['fields']['title']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['title']['alter']['trim'] = 0;
$handler->display->display_options['fields']['title']['alter']['html'] = 0;
$handler->display->display_options['fields']['title']['hide_empty'] = 0;
$handler->display->display_options['fields']['title']['empty_zero'] = 0;
$handler->display->display_options['fields']['title']['link_to_node'] = 1;
/* Rendezési szempont: Tartalom: Cím */
$handler->display->display_options['sorts']['title']['id'] = 'title';
$handler->display->display_options['sorts']['title']['table'] = 'node';
$handler->display->display_options['sorts']['title']['field'] = 'title';
/* Szövegkörnyezeti szűrő: Tartalom: Teszt (field_teszt) */
$handler->display->display_options['arguments']['field_teszt_tid']['id'] = 'field_teszt_tid';
$handler->display->display_options['arguments']['field_teszt_tid']['table'] = 'field_data_field_teszt';
$handler->display->display_options['arguments']['field_teszt_tid']['field'] = 'field_teszt_tid';
$handler->display->display_options['arguments']['field_teszt_tid']['default_action'] = 'default';
$handler->display->display_options['arguments']['field_teszt_tid']['default_argument_type'] = 'php';
$handler->display->display_options['arguments']['field_teszt_tid']['default_argument_options']['code'] = '$tid = NULL;
if (arg(0) == \'node\' && is_numeric(arg(1))) {
  $node = node_load(arg(1));
  if ($node) {
    $field = field_get_items(\'node\', $node, \'field_teszt\');
    if (isset($field[0][\'tid\'])) {
      $tid = $field[0][\'tid\'];
    }
  }
}
return $tid;';
$handler->display->display_options['arguments']['field_teszt_tid']['default_argument_skip_url'] = 0;
$handler->display->display_options['arguments']['field_teszt_tid']['summary']['number_of_records'] = '0';
$handler->display->display_options['arguments']['field_teszt_tid']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['field_teszt_tid']['summary_options']['items_per_page'] = '25';
$handler->display->display_options['arguments']['field_teszt_tid']['specify_validation'] = 1;
$handler->display->display_options['arguments']['field_teszt_tid']['validate']['type'] = 'taxonomy_term';
$handler->display->display_options['arguments']['field_teszt_tid']['validate_options']['vocabularies'] = array(
  'teszt' => 'teszt',
);
$handler->display->display_options['arguments']['field_teszt_tid']['validate_options']['transform'] = 0;
$handler->display->display_options['arguments']['field_teszt_tid']['validate']['fail'] = 'empty';
$handler->display->display_options['arguments']['field_teszt_tid']['break_phrase'] = 0;
$handler->display->display_options['arguments']['field_teszt_tid']['not'] = 0;
/* Szövegkörnyezeti szűrő: Tartalom: Tartalom azonosító */
$handler->display->display_options['arguments']['nid']['id'] = 'nid';
$handler->display->display_options['arguments']['nid']['table'] = 'node';
$handler->display->display_options['arguments']['nid']['field'] = 'nid';
$handler->display->display_options['arguments']['nid']['default_action'] = 'default';
$handler->display->display_options['arguments']['nid']['default_argument_type'] = 'node';
$handler->display->display_options['arguments']['nid']['default_argument_skip_url'] = 0;
$handler->display->display_options['arguments']['nid']['summary']['number_of_records'] = '0';
$handler->display->display_options['arguments']['nid']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['nid']['summary_options']['items_per_page'] = '25';
$handler->display->display_options['arguments']['nid']['specify_validation'] = 1;
$handler->display->display_options['arguments']['nid']['validate']['type'] = 'node';
$handler->display->display_options['arguments']['nid']['validate_options']['types'] = array(
  'teszt' => 'teszt',
);
$handler->display->display_options['arguments']['nid']['validate_options']['access'] = 0;
$handler->display->display_options['arguments']['nid']['validate']['fail'] = 'empty';
$handler->display->display_options['arguments']['nid']['break_phrase'] = 0;
$handler->display->display_options['arguments']['nid']['not'] = 1;
/* Szűrési feltétel: Tartalom: Közzétéve */
$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;
/* Szűrési feltétel: Tartalom: Típus */
$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(
  'teszt' => 'teszt',
);
 
/* Display: Block */
$handler = $view->new_display('block', 'Block', 'block');
$handler->display->display_options['block_description'] = 'Teszt';
$translatables['teszt'] = array(
  t('Master'),
  t('Teszt'),
  t('tovább'),
  t('Alkalmazás'),
  t('Alaphelyzet'),
  t('Rendezés'),
  t('Növekvő'),
  t('Csökkenő'),
  t('Minden'),
  t('Block'),
);
0
0

Üdv!
Dudás József

alan képe

Köszönöm, de sajnos nem működik.
Nem írtam át semmit, hanem gyorsan létrehoztam egy Teszt tartalom típust, benne egy teszt mezőt ami a szótárra hivatkozik, views alá beimportáltam az általad adott kódot, engedélyeztem a blokk láthatűságát és gyorsan létrehoztam pár új tartalmat amiket kategorizáltam is, de sajnos nem jelent meg a block bármelyik tartalmat is nyitottam meg közben :(

0
0
dj képe

Nálam így néz ki:
teszt1
teszt2
teszt3
teszt4

0
0

Üdv!
Dudás József

alan képe

Úgy látom ez picit más mint amit én szeretnék, talán félreértettük egymást, megpróbálom másként, rövidebben leírni.

Amikor egy tartalmat megnézek, akkor alatta megjelenik, hogy milyen kategóriába tartozik és ha erre a kategóriára rákattintunk, akkor megjelenik az összes tartalom, ami abban a kategóriában van.

Én azt szeretném, hogy amikor egy tartalmat megnyitok, akkor mellette egy blokkban kilistázva jelenjen meg azoknak a tartalmaknak a címe, amelyek szintén ahhoz a kategóriához tartoznak.

0
0
dj képe

teszt blokkban amit szeretnél. A megjelenésnél csak azért hagytam benne a kategóriát, hogy látszódjon melyiket nézed. Ez 4 darab tartalom képernyőképe.

0
0

Üdv!
Dudás József

alan képe

Én kérek elnézést! Már ki vagyok merülve a sok teszteléstől úgy látszik, na meg a sok teszt ablak is kilőtt velem, egy másik teszt blokkot aktiváltam, így még szép h nem jelent meg semmi.

Köszi a segítséget! Még azt szeretném megkérdezni, hogy ha egy adott tartalom típus két kategóriába tartozik, akkor hogyan lehet elérni, hogy mindkét kategóriát jelenítse meg ha az van kiválasztva? Mert egy több kategóriába is tartozó tartalom mellett csak az egyik kategória elemeit jeleníti meg.

0
0
dj képe

$view = new view;
$view->name = 'teszt';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'Teszt';
$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'] = 'Teszt';
$handler->display->display_options['use_more_text'] = 'tovább';
$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['query']['options']['query_comment'] = FALSE;
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['exposed_form']['options']['reset_button_label'] = 'Alaphelyzet';
$handler->display->display_options['exposed_form']['options']['exposed_sorts_label'] = 'Rendezés';
$handler->display->display_options['exposed_form']['options']['sort_asc_label'] = 'Növekvő';
$handler->display->display_options['exposed_form']['options']['sort_desc_label'] = 'Csökkenő';
$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'] = 'fields';
/* Mező: Tartalom: Cím */
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['title']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['title']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = 0;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = 0;
$handler->display->display_options['fields']['title']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['title']['alter']['trim'] = 0;
$handler->display->display_options['fields']['title']['alter']['html'] = 0;
$handler->display->display_options['fields']['title']['hide_empty'] = 0;
$handler->display->display_options['fields']['title']['empty_zero'] = 0;
$handler->display->display_options['fields']['title']['link_to_node'] = 1;
/* Rendezési szempont: Tartalom: Cím */
$handler->display->display_options['sorts']['title']['id'] = 'title';
$handler->display->display_options['sorts']['title']['table'] = 'node';
$handler->display->display_options['sorts']['title']['field'] = 'title';
/* Szövegkörnyezeti szűrő: Tartalom: Teszt (field_teszt) */
$handler->display->display_options['arguments']['field_teszt_tid']['id'] = 'field_teszt_tid';
$handler->display->display_options['arguments']['field_teszt_tid']['table'] = 'field_data_field_teszt';
$handler->display->display_options['arguments']['field_teszt_tid']['field'] = 'field_teszt_tid';
$handler->display->display_options['arguments']['field_teszt_tid']['default_action'] = 'default';
$handler->display->display_options['arguments']['field_teszt_tid']['default_argument_type'] = 'php';
$handler->display->display_options['arguments']['field_teszt_tid']['default_argument_options']['code'] = '$tid = \'\';
  if (arg(0) == \'node\' && is_numeric(arg(1))) {
    $node = node_load(arg(1));
    if ($node) {
      $field = field_get_items(\'node\', $node, \'field_teszt\');
      if ($field) {
        foreach ($field as $value) {
          if (!empty($tid)) {
            $tid .= \'+\';
          }
          $tid .= $value[\'tid\'];
        }
      }
    }
  }
  return $tid;';
$handler->display->display_options['arguments']['field_teszt_tid']['default_argument_skip_url'] = 0;
$handler->display->display_options['arguments']['field_teszt_tid']['summary']['number_of_records'] = '0';
$handler->display->display_options['arguments']['field_teszt_tid']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['field_teszt_tid']['summary_options']['items_per_page'] = '25';
$handler->display->display_options['arguments']['field_teszt_tid']['specify_validation'] = 1;
$handler->display->display_options['arguments']['field_teszt_tid']['validate']['type'] = 'taxonomy_term';
$handler->display->display_options['arguments']['field_teszt_tid']['validate_options']['vocabularies'] = array(
  'teszt' => 'teszt',
);
$handler->display->display_options['arguments']['field_teszt_tid']['validate_options']['type'] = 'tids';
$handler->display->display_options['arguments']['field_teszt_tid']['validate_options']['transform'] = 0;
$handler->display->display_options['arguments']['field_teszt_tid']['validate']['fail'] = 'empty';
$handler->display->display_options['arguments']['field_teszt_tid']['break_phrase'] = 1;
$handler->display->display_options['arguments']['field_teszt_tid']['not'] = 0;
/* Szövegkörnyezeti szűrő: Tartalom: Tartalom azonosító */
$handler->display->display_options['arguments']['nid']['id'] = 'nid';
$handler->display->display_options['arguments']['nid']['table'] = 'node';
$handler->display->display_options['arguments']['nid']['field'] = 'nid';
$handler->display->display_options['arguments']['nid']['default_action'] = 'default';
$handler->display->display_options['arguments']['nid']['default_argument_type'] = 'node';
$handler->display->display_options['arguments']['nid']['default_argument_skip_url'] = 0;
$handler->display->display_options['arguments']['nid']['summary']['number_of_records'] = '0';
$handler->display->display_options['arguments']['nid']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['nid']['summary_options']['items_per_page'] = '25';
$handler->display->display_options['arguments']['nid']['specify_validation'] = 1;
$handler->display->display_options['arguments']['nid']['validate']['type'] = 'node';
$handler->display->display_options['arguments']['nid']['validate_options']['types'] = array(
  'teszt' => 'teszt',
);
$handler->display->display_options['arguments']['nid']['validate_options']['access'] = 0;
$handler->display->display_options['arguments']['nid']['validate']['fail'] = 'empty';
$handler->display->display_options['arguments']['nid']['break_phrase'] = 0;
$handler->display->display_options['arguments']['nid']['not'] = 1;
/* Szűrési feltétel: Tartalom: Közzétéve */
$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;
/* Szűrési feltétel: Tartalom: Típus */
$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(
  'teszt' => 'teszt',
);
 
/* Display: Block */
$handler = $view->new_display('block', 'Block', 'block');
$handler->display->display_options['block_description'] = 'Teszt';
$translatables['teszt'] = array(
  t('Master'),
  t('Teszt'),
  t('tovább'),
  t('Alkalmazás'),
  t('Alaphelyzet'),
  t('Rendezés'),
  t('Növekvő'),
  t('Csökkenő'),
  t('Minden'),
  t('Block'),
);

Szerk.
Javítottam a nézetet, volt benne egy hiba.

0
0

Üdv!
Dudás József

alan képe

Annyit változott csak, hogy most a két kategóriába is tartozó tartalom megjelenésekor nem az első kategória elemeit, hanem a másodikat listázza ki mellette, ilyenkor mindkettőt kellene listázza.

0
0
freeq képe

mivel törölni nem tudom, így szerkesztem, jobban meggondolva inkább nem szólok bele a nagyok dolgába :d

0
0