TableField

CSVインポート/エクスポート、ドラッグ&ドロップによる行の並べ替え、カスタマイズ可能なヘッダーをサポートした、表形式データの保存と表示のための柔軟なフィールドタイプを提供します。

tablefield
18,339 sites
74
drupal.org

インストール

Drupal 11, 10 v3.0.0
composer require 'drupal/tablefield:^3.0'
Drupal 9 v8.x-2.5
composer require 'drupal/tablefield:8.x-2.5'

概要

TableFieldは、コンテンツ作成者がDrupalエンティティ内で直接表形式データを入力、管理、表示できる包括的なフィールドタイプモジュールです。ユーザーがテーブルの寸法を定義し、セルの値を入力し、オプションでアクセシビリティのためのテーブルキャプションを指定できるユーザーフレンドリーなウィジェットインターフェースを提供します。

このモジュールは、直接セル編集、CSVファイルインポート、Excelなどのスプレッドシートアプリケーションからのコピー&ペースト機能など、複数の入力方法をサポートしています。行数と列数を調整することでテーブルを動的にリサイズでき、行はドラッグ&ドロップで並べ替えられます。フィールドはセルコンテンツにプレーンテキストとフィルター済みテキスト(テキストフォーマット選択付き)の両方をサポートしています。

表示については、フォーマッターが最初の行や最初の列をテーブルヘッダーとして指定するオプションを提供します。オプションのCSVエクスポート機能により、適切な権限を持つユーザーがテーブルデータをダウンロードできます。また、Search API統合のための計算プロパティを提供し、テーブルコンテンツの全文検索を可能にします。

Features

  • キャプションとテキストフォーマットをサポートした、シリアライズされたBLOB形式で表形式データを保存するカスタムフィールドタイプ
  • セルデータ入力用の設定可能な入力タイプ(textfieldまたはtextarea)を備えた柔軟なウィジェット
  • AJAXを介してユーザーが行数と列数を変更できる動的テーブル再構築
  • 重み付けソートによるドラッグ&ドロップ行並べ替え
  • 自動エンコーディング検出(UTF-8、ISO-8859-1、WINDOWS-1251)付きCSVファイルインポート
  • 様々な区切り文字(TAB、カンマ、セミコロン、パイプ、プラス、コロン)をサポートしたコピー&ペーストインポート機能
  • テーブルデータダウンロード用CSVエクスポート機能
  • アクセシビリティとスクリーンリーダー互換性向上のためのテーブルキャプションサポート
  • デフォルト値の編集を防止するセルロック機能(固定ヘッダーに便利)
  • ユーザー選択可能な入力フォーマットでフィルター済みテキストを可能にするテキストフォーマットサポート
  • tablefieldが空と見なされるタイミングを決定する設定可能な空ルール
  • レスポンシブテーブル表示のためのresponsive_tables_filterモジュールとの統合
  • Search APIインデックス作成用の計算されたtable_valueプロパティ
  • エクスポート、インポート、再構築、ペースト、行追加操作のための詳細な権限

Use Cases

製品仕様テーブル

製品コンテンツタイプにフィールドを作成して、構造化されたテーブル形式で技術仕様を表示します。最初の行を仕様名(例:'寸法'、'重量'、'素材')のヘッダーとして設定し、コンテンツ編集者が各行の値を入力できるようにします。顧客が仕様をダウンロードできるようにCSVエクスポートを有効にします。

料金表

lock_values機能を使用して固定ヘッダー付きの料金テーブルを構築します。列ヘッダー(例:'プラン'、'月額'、'年額')のデフォルト値を設定してロックし、編集者が料金値のみを変更できるようにします。プラン名には最初の列を行ヘッダーとして使用します。

スケジュールまたは時間割

TableFieldを使用してイベントスケジュールや授業時間割を作成します。長いコンテンツが必要なセルにはtextarea入力タイプを有効にします。スケジュール変更時にドラッグ&ドロップで簡単に行を並べ替えられます。

スプレッドシートからのデータインポート

ペースト機能を使用して、コンテンツ編集者がExcelやGoogleスプレッドシートからデータをコピーしてテーブルを素早く入力できるようにします。スプレッドシートアプリケーションからシームレスにインポートするには、列区切り文字としてTABを選択します。

比較チャート

cellspanサブモジュールを使用して、複数の列にまたがる結合ヘッダーセルを持つ機能比較テーブルを構築します。#colspan#を使用して関連する機能をカテゴリヘッダーの下にグループ化します。

必須フィールド付きフォームビルダー

tablefield_requiredサブモジュールを使用して、登録フォームの必須連絡先情報行など、特定の行または列を必ず入力する必要があるデータ入力テーブルを作成します。

Tips

  • 'セルのデフォルト値をロック'設定を使用して、コンテンツ編集者が変更できない固定ヘッダー付きテーブルを作成できます
  • 最初の列に行ラベルが含まれるテーブルには、フォーマッターで'最初の列をテーブルヘッダーとして表示'を有効にします
  • Excelからインポートする場合は、ペーストインポートダイアログで列区切り文字としてTABを使用します
  • グローバル設定で意味のあるデフォルト行数と列数を設定して、テーブル再構築の必要性を減らします
  • テーブルキャプションフィールドを使用してスクリーンリーダーにコンテキストを提供し、アクセシビリティを向上させます
  • テキストフォーマット選択(フィルター済みテキスト)は、セルでHTML書式設定が必要な場合にのみ有効にすることを検討してください(複雑さが増すため)
  • 大規模なデータセットには、効率的な一括データ入力を可能にするためにCSVインポート権限を許可します

Technical Details

Admin Pages 1
Tablefield設定 /admin/config/content/tablefield

CSV区切り文字とデフォルトのテーブル寸法を含む、すべてのTableFieldインスタンスのグローバルデフォルト設定を構成します。

権限 6
TablefieldデータをCSVとしてエクスポート

フィールドでエクスポートオプションが有効な場合に、ユーザーがテーブルデータをCSVファイルとしてエクスポートできるようにします。

任意のtablefieldを再構築

フィールドでrestrict_rebuildオプションが有効な場合に、ユーザーがテーブルの行数と列数を変更できるようにします。

任意のtablefieldにインポート

フィールドでrestrict_importオプションが有効な場合に、ユーザーがCSVファイルをテーブルフィールドにインポートできるようにします。

任意のtablefieldにペースト

ユーザーがスプレッドシートアプリケーションからテーブルフィールドにデータをペーストできるようにします。

グローバルtablefieldモジュール設定の変更を許可

/admin/config/content/tablefieldのTableField設定ページへのアクセスを許可します。

tablefieldの行を変更

ユーザーが行追加ボタンを使用してテーブルフィールドに行を追加できるようにします。

Hooks 1
hook_tablefield_encodings_alter

CSVインポートでサポートされる文字エンコーディングのリストをモジュールが変更できるようにします。デフォルトでは、TableFieldはUTF-8、ISO-8859-1、WINDOWS-1251をサポートしています。

Troubleshooting 5
CSVエクスポートで文字化けが発生する

ソースデータがUTF-8エンコーディングを使用していることを確認してください。モジュール設定のCSV区切り文字がスプレッドシートアプリケーションの期待する区切り文字と一致しているか確認してください。

テーブル行をドラッグできない

ロックされたセルを含む行は並べ替えできません。ドラッグ&ドロップを有効にするには、lock_values設定を削除するか、行にロックされたセルがないことを確認してください。

インポートボタンが表示されない

インポート機能には'import tablefield'権限とrestrict_importフィールド設定の両方が正しく構成されている必要があります。適切なロールに権限を付与してください。

ペーストしたデータが間違った列に表示される

ソースデータと一致する正しい列区切り文字を選択してください。Excelからコピーしたデータは通常TAB区切り文字を使用します。

テーブルが空に見えるがフィールドはコンテンツがあると表示される

empty_rules設定を確認してください。'ignore_table_structure'がオフの場合、デフォルトと異なる寸法のテーブルはセルコンテンツがなくても空でないと見なされます。

Security Notes 3
  • cell_processingが有効な場合、モジュールはDrupalのテキストフォーマットシステムを通じてセルコンテンツをサニタイズします
  • CSVエクスポートにはフィールドレベルの'export'設定と'export tablefield'権限の両方が必要です
  • インポートと再構築操作は、不正なデータ変更を防ぐために特定の権限に制限できます