web-dev-qa-db-ja.com

ビュー、分類、ブロック、およびコンテキスト...何が問題なのですか?

欲しいもの:
ページに移動すると...特定のコンテンツタイプの...用語でタグ付けされている...ビューを介して作成されたブロックに、その用語を含むページのリストを生成してほしい。

分類を使用して記事をキーオフするように設定を調整しました:スポーツと用語:ゴルフ、ホッケーなど。

セットアップ
次のフィールドを持つコンテンツタイプ「記事」があります(他の人たちに):

Title
Portal (Term - Singular term allowed)

用語のコンテキストを指定すると、その用語が含まれているページのリストにフィルター処理するように、ビュー分類フィルターの設定があります(質問の下部にあるコード)...

ページとして設定した場合、および[プレビュー]セクションで機能します(図に示すとおり)。ブロックに移動すると機能しません。 enter image description here

表示されているもの:
「スポーツ:ゴルフ」に注意してください。それでも、スポーツリストにはすべてのポータルページが表示されます(フィルタリングされていません)。記事はタグ付けされていますが、リストは「コンテキスト」を取得していません。下にスクロールすると、すべての「スポーツページ」が表示されますが、特定のコンテキスト(この例ではゴルフ)にリストされているものだけが必要です。 Demo

編集
「Taxonomy ID By URL」を使用することが記載されています...これは機能しません。 URLに「分類」がありません-在庫ノード/#またはURLエイリアスmyip/portal/safety/home(名前NAMEが含まれているパスオートエイリアス... IDは含まれていません。portal/ 8/home isnとても「きれい」ではなく、それでもうまくいくかどうかはわかりませんが、試すことはできます)

わかりました... pathautoで自動エイリアスを調整しました...これをportal/8/home([node:term:vocabulary]/[node:tid]/[node:title])にしても機能しません。エイリアスはnode /#を指し、URLに用語がないため、「URLを介した用語」に解決されません。

関係を作るための様々な試みも同様に失敗しています。

「コンテンツタイプとしての用語」に移動したくありません-各ポータルには独自のコンテンツタイプがありますが、この時点で...先に進みたい場合は、そうすることもできます。

ビューのエクスポート

$view = new view;
$view->name = 'content';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'Content';
$view->core = 7;
$view->api_version = '3.0-alpha1';
$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'] = 'Portal List';
$handler->display->display_options['use_ajax'] = TRUE;
$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'] = 'none';
$handler->display->display_options['pager']['options']['offset'] = '0';
$handler->display->display_options['style_plugin'] = 'table';
$handler->display->display_options['style_options']['columns'] = array(
  'title' => 'title',
);
$handler->display->display_options['style_options']['default'] = '-1';
$handler->display->display_options['style_options']['info'] = array(
  'title' => array(
    'sortable' => 0,
    'default_sort_order' => 'asc',
    'align' => '',
    'separator' => '',
  ),
);
$handler->display->display_options['style_options']['override'] = 1;
$handler->display->display_options['style_options']['sticky'] = 0;
$handler->display->display_options['style_options']['empty_table'] = 0;
$handler->display->display_options['exposed_block'] = TRUE;
/* Field: Taxonomy: Term */
$handler->display->display_options['fields']['name']['id'] = 'name';
$handler->display->display_options['fields']['name']['table'] = 'taxonomy_term_data';
$handler->display->display_options['fields']['name']['field'] = 'name';
$handler->display->display_options['fields']['name']['label'] = '';
$handler->display->display_options['fields']['name']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['name']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['name']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['name']['alter']['external'] = 0;
$handler->display->display_options['fields']['name']['alter']['replace_spaces'] = 0;
$handler->display->display_options['fields']['name']['alter']['trim'] = 0;
$handler->display->display_options['fields']['name']['alter']['nl2br'] = 0;
$handler->display->display_options['fields']['name']['alter']['Word_boundary'] = 1;
$handler->display->display_options['fields']['name']['alter']['Ellipsis'] = 1;
$handler->display->display_options['fields']['name']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['name']['alter']['html'] = 0;
$handler->display->display_options['fields']['name']['element_label_colon'] = 0;
$handler->display->display_options['fields']['name']['element_default_classes'] = 1;
$handler->display->display_options['fields']['name']['hide_empty'] = 0;
$handler->display->display_options['fields']['name']['empty_zero'] = 0;
$handler->display->display_options['fields']['name']['link_to_taxonomy'] = 0;
/* Field: Content: Title */
$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']['trim'] = 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']['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;
/* Sort criterion: Taxonomy: Term */
$handler->display->display_options['sorts']['name']['id'] = 'name';
$handler->display->display_options['sorts']['name']['table'] = 'taxonomy_term_data';
$handler->display->display_options['sorts']['name']['field'] = 'name';
/* Sort criterion: Content: Title */
$handler->display->display_options['sorts']['title']['id'] = 'title';
$handler->display->display_options['sorts']['title']['table'] = 'node';
$handler->display->display_options['sorts']['title']['field'] = 'title';
/* Contextual filter: Taxonomy: Term */
$handler->display->display_options['arguments']['name']['id'] = 'name';
$handler->display->display_options['arguments']['name']['table'] = 'taxonomy_term_data';
$handler->display->display_options['arguments']['name']['field'] = 'name';
$handler->display->display_options['arguments']['name']['default_argument_type'] = 'fixed';
$handler->display->display_options['arguments']['name']['default_argument_skip_url'] = 0;
$handler->display->display_options['arguments']['name']['summary']['number_of_records'] = '0';
$handler->display->display_options['arguments']['name']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['name']['summary_options']['items_per_page'] = '25';
$handler->display->display_options['arguments']['name']['glossary'] = 0;
$handler->display->display_options['arguments']['name']['limit'] = '0';
$handler->display->display_options['arguments']['name']['transform_dash'] = 0;
$handler->display->display_options['arguments']['name']['break_phrase'] = 0;
$handler->display->display_options['arguments']['name']['add_table'] = 0;
$handler->display->display_options['arguments']['name']['require_value'] = 0;
/* 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(
  'portal' => 'portal',
);

/* Display: Portal List */
$handler = $view->new_display('block', 'Portal List', 'portal_list');
$handler->display->display_options['display_comment'] = 'Displays a list of pages for a given Taxonomy Term Context
';
$handler->display->display_options['block_description'] = 'Portal';
$translatables['content'] = array(
  t('Master'),
  t('Portal List'),
  t('more'),
  t('Apply'),
  t('Reset'),
  t('Sort by'),
  t('Asc'),
  t('Desc'),
  t('All'),
  t('Portal'),
);
2
WernerCD

私は実際にこれから、「ノード階層」モジュールに移動しました。これは、path-autoおよびmenu-blockと組み合わせると不思議に思います。

しかし、ビューに関しては...この問題は正しい「関係」で解決されました。ノードのフィールドに対する、分類ID、説明、またはタイトルの関係。目の前にはありませんが、リクエストがあればどこかにノートに残しておきます。

1
WernerCD

基本的な「問題」は、ブロック表示がURLから引数を取得しないことです。これは問題ありません。したがって、ブロックにurlからの引数を表示する方法を提供する必要があります。 URLにnidがあるだけです。

したがって、「デフォルト引数」と呼ばれる素晴らしいものがあります。これを引数で構成すると、あらゆる種類の引数を取り込むことができます。必要なのは「分類:URLからの用語」だけです。

2
Daniel Wehner

上記のすべてを実行し、さらに3番目の引数をviews_embed_view関数呼び出しから削除する必要がありました。

<?php print views_embed_view('recommended_documents', 'three', **$node->id**); ?>

3番目以降の引数は、チェック対象のコンテキストフィルター値になると思います。これは、URLでオーバーライドしようとしています。

0
martinedwards