(クエリ文字列として渡されるパラメーターを使用して)HTTP呼び出しを使用してアクセスできる外部Webサービスがあり、XML形式で結果を返します。
Drupalを使用して(必要なパラメーターを使用して)そのWebサービスにアクセスし、ビューを使用して結果を表示します。
これらはサンプルクエリであり、使用しているWebサービスから取得した結果です。
クエリ: http://localhost/query.php?cy = in&q = abcd&cat = 22
結果:
<?xml version="1.0"?>
<results>
<Jobs>
<Job ID="111">
<Title>Test one</Title>
<Summary>Test one summary</Summary>
<DateUpdated Date="2011-04-04 18:03:00">4/4/2011</DateUpdated>
<Location>
<Country>India</Country>
<City>Delhi</City>
</Location>
<CompanyName>Test Company</CompanyName>
</Job>
<Job ID="222">
<Title>Test two</Title>
<Summary>Test two summary</Summary>
<DateUpdated Date="2011-04-04 18:03:00">4/4/2011</DateUpdated>
<Location>
<Country>India</Country>
<City>Chennai</City>
</Location>
<CompanyName>Test company</CompanyName>
</Job>
</Jobs>
</results>
推奨されるソリューションは、最初にデータベースにデータを取得し、次にビューに表示することに基づいています。
別の方法は、カスタムクエリバックエンドを使用して、ビューから直接サービスにクエリを実行することです。チェックアウト http://drupal.org/node/95827 カスタムバックエンドへのリンクについては、独自のバックエンドを作成するための例として使用できます(多くの作業ではありません)
Feeds モジュールはコンテンツを取り込み、それをノードに変えることができます。 Feeds XPath Parser を使用すると、xmlファイルを解析してタグをフィールドにマップできます。その後、ビューを使用してコンテンツを通常どおりに表示できます。
もっとエレガントな解決策があると確信していますが、私はこれまでにTwitterフィードでこれを実行したことがあり、うまく機能します。これが私の見解です。
2番目のステップは、プログラムでノードインスタンスを作成することで実現できます。
$node = new stdClass();
$node->title = 'title';
$node->my_custom_field['und'][0]['value'] = 'my custom value';
// fill all your other fields
node_save($node);
SELECT fdfpi.field_picture_id_value FROM field_data_field_picture_id fdfpi INNER JOIN node n ON fdfpi.entity_id = n.nid AND fdfpi.entity_type = 'node' WHERE n.type = 'picture' ORDER BY n.created DESC LIMIT 1
上記の例は少しわかりにくいかもしれませんが、実際にはそうではありません。カスタムフィールド "picture_id"を持つコンテンツタイプ "picture"を作成しました。そのタイプの最後に作成されたノードのIDを取得するための手動の方法です。
お役に立てれば!