私はD7、フィード、XPathパーサーを使用しています。マッピングには、カスタムフィールドを一意のフィールドとして使用する必要があります。私はbooking.comからデータを取得しており、それらの一意の値はホテルIDです。このため、ユーザーからこのホテルIDを保存し、この一意のフィールドに基づいてbooking.comからデータを取得して、コンテンツにマップする必要がありますこのユニークなフィールド。
フィードのドキュメントでこれを見つけました- 7.x-2.xのフィードで一意のノードフィールドとしてnid以外のフィールドを使用
このコメントからパッチを適用する必要があると言っています- http://drupal.org/node/661606#comment-5921904
このパッチは、フィードのマッパーフォルダーにあるfield.incというファイルに適用されます。ただし、このファイルは存在しません。パッチは別のファイルにも適用されますが、パッチを実行するとエラーが発生します。
これに関するどんな助けでも大歓迎です。ありがとうございました。
私自身の質問に答える-
フィードモジュールで- http://drupal.org/node/661606#comment-6481214 からのパッチと- http://drupal.org/node/1705386からのパッチを使用する#comment-6481224 。
したがって、フィールド検証でフィードを使用します。最初に、固有の検証を必須フィールドに追加する必要があります。タイトルと同じようにマッピングで一意に設定できますが、このフィールドでも一意に設定する必要があります。
このチュートリアルは私にとってはうまくいきます:
Drupalフィードインポーターで一意のフィールドを設定する方法
公式ドキュメント も参照してください。これは、フィールド検証モジュールを使用するか、hook_feeds_processor_targets_alter()
を実装するカスタムソリューションを記述できることを示しています。
フィードインポーターを1つだけ使用する場合(つまり、単一のXMLソースからのみインポートする場合)は、パッチを適用せずにこれを実行できます。インポーターマッピングで、ホテルIDフィールドをGUIDにマップし、一意として設定します。コンテンツタイプでホテルIDを使用する必要がある場合は、別のフィールドにもマップします。
あなたの説明から、あなたのニーズのようにそれはsoundsより複雑かもしれません(つまり、複数のソースから同じコンテンツタイプにインポートする)?その場合は、 フィールド検証 モジュールを使用して、フィールドを一意として設定できます。前回使用したときにも patch -が必要でしたが、今はコミットされる可能性があることに注意してください。 このフィールド検証の問題 は、いくつかの詳細情報を提供します。
あなたが参照した方法(Unique Fieldモジュールを使用)は少し古くなっていると思います。