搜尋
首頁後端開發php教程將表暴露於Drupal 7中的視圖

Exposing Tables to Views in Drupal 7

鍵概念

本教程演示瞭如何將自定義Drupal 7數據庫表與視圖模塊集成在一起,從而實現了功能強大的查詢和數據表示功能。 我們將介紹了解您的模塊的表結構,定義用於顯示,過濾和排序的字段處理程序,並使用加入來建立表之間的關係。 該過程利用視圖處理程序 - 類管理顯示,排序和過濾操作的類 - 允許自定義超出默認功能。

本指南重點介紹未表示為Drupal實體的表。 有關實體集成與視圖的集成,請參考其他資源。

可用的示例模塊“ expose”(為簡潔而省略了存儲庫詳細信息)。 exposed表(下面詳細介紹的結構)將用於演示。 可以使用此mySQL命令插入示例數據:>

INSERT INTO `exposed` (`id`, `name`, `deadline`, `node_id`) VALUES (1, 'Danny', 1399477939, 1), (2, 'Peter', 1399477957, 2);

>將表與視圖集成 集成涉及兩個關鍵步驟:了解有關模塊的視圖並定義表的結構。

>

步驟1:了解有關模塊的視圖

> >在您的模塊的文件中實現:

這指定視圖API版本和與視圖相關的文件的位置。 hook_views_api()>.module步驟2:定義表的結構

/**
 * Implements hook_views_api().
 */
function expose_views_api() {
  return array(
    'api' => 3,
    'path' => drupal_get_path('module', 'expose') . '/includes/views',
  );
}
>

create

(在上面指定的目錄中)和實現

>

此代碼定義了表的組並將其指定為基礎表,使其在視圖接口中可用。 字段定義(下一個詳細信息)將在此處添加。

> expose.views.inc>hook_views_data()步驟3:定義字段

/**
 * 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;

> field使用sortfilter列加入

>表:

> >這定義了連接並指定顯示

>用於顯示的處理程序,從而可以訪問與節點相關的字段。 還定義了基於節點ID的過濾和上下文過濾的關係和參數。

實施這些步驟後,請清除Drupal的緩存。 現在,您的自定義表應該可以在視圖接口中訪問。 node> node_id

結論
// ... (previous code) ...

// Join definition
$data['exposed']['table']['join'] = array(
  'node' => array(
    'left_field' => 'nid',
    'field' => 'node_id',
  ),
);

// Node ID field
$data['exposed']['node_id'] = array(
  'title' => t('Node ID'),
  'help' => t('Node ID'),
  'field' => array('handler' => 'views_handler_field_node'),
  'sort' => array('handler' => 'views_handler_sort'),
  'filter' => array('handler' => 'views_handler_filter_numeric'),
  'relationship' => array(
    'base' => 'node',
    'field' => 'node_id',
    'handler' => 'views_handler_relationship',
    'label' => t('Node'),
  ),
  'argument' => array(
    'handler' => 'views_handler_argument_node_nid',
    'numeric' => TRUE,
    'validate type' => 'nid',
  ),
);

return $data;

>此詳細說明提供了將自定義表與Drupal 7的視圖模塊集成的綜合指南。 切記為您的特定數據類型量身定制處理程序選擇,並利用自定義處理程序的靈活性來獲得高級功能。 原始輸入的FAQ部分已被省略,因為它在此精製響應中大部分涵蓋了。

以上是將表暴露於Drupal 7中的視圖的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
在Laravel中使用Flash會話數據在Laravel中使用Flash會話數據Mar 12, 2025 pm 05:08 PM

Laravel使用其直觀的閃存方法簡化了處理臨時會話數據。這非常適合在您的應用程序中顯示簡短的消息,警報或通知。 默認情況下,數據僅針對後續請求: $請求 -

構建具有Laravel後端的React應用程序:第2部分,React構建具有Laravel後端的React應用程序:第2部分,ReactMar 04, 2025 am 09:33 AM

這是有關用Laravel後端構建React應用程序的系列的第二個也是最後一部分。在該系列的第一部分中,我們使用Laravel為基本的產品上市應用程序創建了一個RESTFUL API。在本教程中,我們將成為開發人員

php中的捲曲:如何在REST API中使用PHP捲曲擴展php中的捲曲:如何在REST API中使用PHP捲曲擴展Mar 14, 2025 am 11:42 AM

PHP客戶端URL(curl)擴展是開發人員的強大工具,可以與遠程服務器和REST API無縫交互。通過利用Libcurl(備受尊敬的多協議文件傳輸庫),PHP curl促進了有效的執行

簡化的HTTP響應在Laravel測試中模擬了簡化的HTTP響應在Laravel測試中模擬了Mar 12, 2025 pm 05:09 PM

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显著减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

在Codecanyon上的12個最佳PHP聊天腳本在Codecanyon上的12個最佳PHP聊天腳本Mar 13, 2025 pm 12:08 PM

您是否想為客戶最緊迫的問題提供實時的即時解決方案? 實時聊天使您可以與客戶進行實時對話,並立即解決他們的問題。它允許您為您的自定義提供更快的服務

Laravel中的通知Laravel中的通知Mar 04, 2025 am 09:22 AM

在本文中,我們將在Laravel Web框架中探索通知系統。 Laravel中的通知系統使您可以通過不同渠道向用戶發送通知。今天,我們將討論您如何發送通知OV

解釋PHP中晚期靜態結合的概念。解釋PHP中晚期靜態結合的概念。Mar 21, 2025 pm 01:33 PM

文章討論了PHP 5.3中介紹的PHP中的晚期靜態結合(LSB),允許靜態方法的運行時間分辨率調用以更靈活的繼承。 LSB的實用應用和潛在的觸摸

PHP記錄:PHP日誌分析的最佳實踐PHP記錄:PHP日誌分析的最佳實踐Mar 10, 2025 pm 02:32 PM

PHP日誌記錄對於監視和調試Web應用程序以及捕獲關鍵事件,錯誤和運行時行為至關重要。它為系統性能提供了寶貴的見解,有助於識別問題並支持更快的故障排除

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)