メインコンテンツに移動
Drupalのモジュール(Feeds)でのデータマッピング時にPHPコードの使用
やりたいこと:モジュール(Feeds)でのデータマッピング時にPHPコードでフィールド値を加工する
- 環境:Drupal7.54、Feeds7.x-2.0、Feeds Tamper7.x-1.1、Feeds Tamper PHP7.x1.2
- Feedsデータインポートの基本は「 Drupalのモジュール(Feeds)でcsvデータをコンテンツにインポート(Feedsの基本) 」を参考してください
- データマッピングに、各インポートフィールドの値を加工するため、Feeds Tamperモジュールが良く利用します
- この中に、特殊なフィールド値加工(例:既存のデータを取得するなど)のためFeeds Tamper PHPを利用して、PHPスクリプトの実行ができます
- Feeds Tamper PHPでインポートデータの扱い、以下のパラメーターで、任意のフィールドの値の利用ができます
- $field: 渡されたフィールドの値
- $item['フィールド名']: インポート元で定義していたフィールド名でその値を取得する

- 任意のフィールド(例:body)で他のフィールドの値(例:title)の取得することができます
注意点:PHPコード実行のセキュリティ問題とパフォーマンスへの影響
- PHPコードを実行するには、eval()関数で行うため、任意のPHPコードの実行が可能となります
- 特にインポートが公開の場合、PHPコード実行のセキュリティ問題を注意深く対応すべきです
- また、データ取得したり、多くループをしたりして、パフォーマンスへの影響が考えるべきです
Feedsモジュールの基本使用:csvデータをノード(node)にインポート
- 環境:Drupal7.54、Feeds7.x-2.0
- Feedsのインポート機能を理解するには、csvデータインポートから始めたほうが良いでしょう
- 例:コンテンツのタイトルと内容をインポートします

注意事項:基本設定とプロセッサーの設定
- 基本的なインポート操作はビデオを参考してください
- 基本設定の内容に周期的なインポートが必要の場合にインポートの頻度を設定します
- プロセッサーの設定
- 新規ノートの作成許可するかの設定
- 複数回のインポートが必要な場合に「 ハッシュチェックをスキップ 」をチェックします
- 投稿者の設定はデータ新規作成のみに使用されます
- コンテンツ更新の場合、コンテンツの作成者が更新権限がチェックされます
- プロセッター設定について、記事「Drupalのモジュール(Feeds)で手動でデータインポート時の必須設定 」を参考してください