TableField
CSVインポート/エクスポート、ドラッグ&ドロップによる行の並べ替え、カスタマイズ可能なヘッダーをサポートした、表形式データの保存と表示のための柔軟なフィールドタイプを提供します。
tablefield
インストール
composer require 'drupal/tablefield:^3.0'
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
/admin/config/content/tablefield
CSV区切り文字とデフォルトのテーブル寸法を含む、すべてのTableFieldインスタンスのグローバルデフォルト設定を構成します。
権限 6
Hooks 1
hook_tablefield_encodings_alter
CSVインポートでサポートされる文字エンコーディングのリストをモジュールが変更できるようにします。デフォルトでは、TableFieldはUTF-8、ISO-8859-1、WINDOWS-1251をサポートしています。
Troubleshooting 5
ソースデータが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'権限の両方が必要です
- インポートと再構築操作は、不正なデータ変更を防ぐために特定の権限に制限できます