重要な概念
このチュートリアルでは、カスタムDrupal 7データベーステーブルをビューモジュールと統合し、強力なクエリとデータの表示機能を有効にする方法を示しています。 モジュールのテーブル構造を認識し、表示、フィルタリング、ソート用のフィールドハンドラーを定義し、参加を使用してテーブル間の関係を確立するビューを説明します。 このプロセスは、ディスプレイの管理、並べ替え、フィルタリング操作を管理するハンドラーを表示します。デフォルトの機能を超えてカスタマイズを可能にします。 このガイドは、Drupalエンティティとして表されない表に焦点を当てています。 ビューとのエンティティの統合については、他のリソースを参照してください。サンプルモジュール「Expose」が利用可能です(Brevityのためにリポジトリの詳細は省略されています)。
テーブル(以下で詳述されている構造)は、デモに使用されます。 サンプルデータは、このMySQLコマンドを使用して挿入できます
ビューとテーブルを統合exposed
INSERT INTO `exposed` (`id`, `name`, `deadline`, `node_id`) VALUES (1, 'Danny', 1399477939, 1), (2, 'Peter', 1399477957, 2);
ステップ1:モジュールに関するビューの通知
モジュールの
file:にを実装します
これは、Views APIバージョンとビュー関連ファイルの場所を指定します。hook_views_api()
ステップ2:テーブルの構造を定義します.module
/** * Implements hook_views_api(). */ function expose_views_api() { return array( 'api' => 3, 'path' => drupal_get_path('module', 'expose') . '/includes/views', ); }
(上記の指定されたディレクトリ)を作成し、
:を実装します このコードはテーブルのグループを定義し、それをベーステーブルとして指定し、ビューインターフェイスで利用できるようにします。 フィールド定義(詳細)はここに追加されます。
expose.views.inc
ステップ3:フィールドの定義hook_views_data()
/** * Implements hook_views_data(). */ function expose_views_data() { $data = array(); $data['exposed']['table']['group'] = t('Exposed'); $data['exposed']['table']['base'] = array( 'title' => t('Exposed'), 'help' => t('Contains records exposed to Views.'), ); // Field definitions (see below) return $data; }
内で、各列のフィールド定義を追加します:
これは、各列のディスプレイ()、ソート(
)、およびフィルタリング()用のハンドラーを指定します。 適切なハンドラー(例:数値、文字列、日付)は、データ型に基づいて選択されます。
hook_views_data()
// ... (previous code) ... // ID field $data['exposed']['id'] = array( 'title' => t('ID'), 'help' => t('Record ID'), 'field' => array('handler' => 'views_handler_field_numeric'), 'sort' => array('handler' => 'views_handler_sort'), 'filter' => array('handler' => 'views_handler_filter_numeric'), ); // Name field $data['exposed']['name'] = array( 'title' => t('Name'), 'help' => t('Record name'), 'field' => array('handler' => 'views_handler_field'), 'sort' => array('handler' => 'views_handler_sort'), 'filter' => array('handler' => 'views_handler_filter_string'), ); // Deadline field $data['exposed']['deadline'] = array( 'title' => t('Deadline'), 'help' => t('Record deadline'), 'field' => array('handler' => 'views_handler_field_date'), 'sort' => array('handler' => 'views_handler_sort_date'), 'filter' => array('handler' => 'views_handler_filter_date'), ); // ... (Node ID field and join definition - see below) ... return $data;
field
sort
列を使用してfilter
テーブルに参加するには:
これにより、結合が定義され、表示用のハンドラーを指定し、ノード関連フィールドへのアクセスを可能にします。 ノードIDに基づいたフィルタリングとコンテキストフィルタリングについては、関係と引数も定義されています。
これらの手順を実装した後、Drupalのキャッシュをクリアします。 カスタムテーブルは、ビューインターフェイス内でアクセスできるようになりました。node
結論node_id
この詳細な説明は、カスタムテーブルをDrupal 7のビューモジュールと統合するための包括的なガイドを提供します。 特定のデータ型に合わせてハンドラーの選択を調整し、高度な機能にカスタムハンドラーの柔軟性を活用することを忘れないでください。 元の入力からのFAQセクションは、この洗練された応答で大部分がカバーされているため、省略されています。
以上がDrupal 7のビューにテーブルを公開します7の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。