ホームページ > バックエンド開発 > PHPチュートリアル > Drupal 7のビューにテーブルを公開します7

Drupal 7のビューにテーブルを公開します7

尊渡假赌尊渡假赌尊渡假赌
リリース: 2025-02-21 08:39:10
オリジナル
264 人が閲覧しました

Exposing Tables to Views in Drupal 7

重要な概念

このチュートリアルでは、カスタムDrupal 7データベーステーブルをビューモジュールと統合し、強力なクエリとデータの表示機能を有効にする方法を示しています。 モジュールのテーブル構造を認識し、表示、フィルタリング、ソート用のフィールドハンドラーを定義し、参加を使用してテーブル間の関係を確立するビューを説明します。 このプロセスは、ディスプレイの管理、並べ替え、フィルタリング操作を管理するハンドラーを表示します。デフォルトの機能を超えてカスタマイズを可能にします。 このガイドは、Drupalエンティティとして表されない表に焦点を当てています。 ビューとのエンティティの統合については、他のリソースを参照してください。

サンプルモジュール「Expose」が利用可能です(Brevityのためにリポジトリの詳細は省略されています)。

テーブル(以下で詳述されている構造)は、デモに使用されます。 サンプルデータは、このMySQLコマンドを使用して挿入できます

ビューとテーブルを統合exposed

INSERT INTO `exposed` (`id`, `name`, `deadline`, `node_id`) VALUES (1, 'Danny', 1399477939, 1), (2, 'Peter', 1399477957, 2);
ログイン後にコピー
統合には、モジュールに関する意見を通知し、テーブルの構造を定義する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',
  );
}
ログイン後にコピー
create

(上記の指定されたディレクトリ)を作成し、

を実装します このコードはテーブルのグループを定義し、それをベーステーブルとして指定し、ビューインターフェイスで利用できるようにします。 フィールド定義(詳細)はここに追加されます。

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()

ステップ4:関係の取り扱い(結合)
// ... (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;
ログイン後にコピー

fieldsort列を使用してfilterテーブルに参加するには:

これにより、結合が定義され、表示用のハンドラーを指定し、ノード関連フィールドへのアクセスを可能にします。 ノードIDに基づいたフィルタリングとコンテキストフィルタリングについては、関係と引数も定義されています。

これらの手順を実装した後、Drupalのキャッシュをクリアします。 カスタムテーブルは、ビューインターフェイス内でアクセスできるようになりました。

node結論node_id

この詳細な説明は、カスタムテーブルをDrupal 7のビューモジュールと統合するための包括的なガイドを提供します。 特定のデータ型に合わせてハンドラーの選択を調整し、高度な機能にカスタムハンドラーの柔軟性を活用することを忘れないでください。 元の入力からのFAQセクションは、この洗練された応答で大部分がカバーされているため、省略されています。

以上がDrupal 7のビューにテーブルを公開します7の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート