3

「イベント」や「ニュース」などのコンテンツ タイプを持つ Drupal 7 Web サイトがあります。

これらのコンテンツ タイプのノードを他の Web サイトに自動的にインポートしたいと考えています。

「クライアント」Web サイトのフィード、XPath、「サーバー」側のビュー RSS フィールドで遊んでみましたが、ファイルなどのコンテンツ タイプ フィールドに問題があることに気付きました... 何か提案はありますか? 他の Web サイトでこのコンテンツの新しいビューを作成できるようにしたいと考えています。

PSコンテンツタイプはWebサイト間で同一になります(ただし、ソリューションに何か他のものが含まれている場合は、そうである必要はありません).

4

2 に答える 2

1

クライアント側で使用されるxmls/json(サーバー側)を作成するだけでデータを共有できるかもしれません。

サービスは行くのに良い方法です。しかし、単純なものでは複雑だと思います。

あなたができることは、xml / jsonとして出力するビューを作成することです...これは、モジュール/テンプレートファイルで前処理関数を実行することによって行うことができます。

その後、クライアント側(おそらくcronを実行)がxml / jsonを取得し、プログラムでノードを作成します。

于 2012-06-15T03:56:29.530 に答える
1

あなたはおそらくサービスコンテンツ配信でより多くの成功を収めています。RSSフィードは、セマンティックデータの転送にはあまり適していません。それらは記事のリストに非常に焦点を合わせており、通常「event-start-date」などの情報が不足しています。

サービスを使用すると、server-drupal-siteでサービスを公開し、ノードをRESTfulljsonなどとして公開できます。クライアント側のdrupalsiteは、サービスとコンテンツ配信を使用して、上記のサーバーからノードをインポートできます。

とは言うものの、サービススーツはビューにプラグインし、非常に重く、大きく、複雑です。大規模で複雑なプロジェクト(私のように)にアレルギーがある場合は、単純なモジュールを作成する方がよい場合があります。

  • events-service:データベースからイベントを取得し、それらをjsonとして表示する20行以上のモジュール。
  • news-service:ニュースノードのリストを取得してjsonとして表示する10行以上のモジュール。
  • events-client:指定されたURLで前述のjsonを食べ、それらをノードに変換する小さなモジュール(〜400-800行?)。上流の変更でノードが再作成されないように、ノードテーブルの横にいくつかのUUIDのレジスタが保持されます(代わりに、関連付けられたノードを見つけて更新します)。
  • ニュースクライアント:小さなモジュール。同上。

プラグインやサービス周辺の複雑なレイヤーなど、文書化されていないビューと戦う代わりに、完全な制御と完全な理解が得られるため、このようなモジュールを作成することは非常にやりがいがあります。また、チューニングとパフォーマンスが大幅に向上します。

大きな欠点の1つは、Drupal、より具体的にはCCKまたはFieldsがデータベースとその構造を決定することです。サイトの小さな設定変更によってモジュールのSQLクエリが破損する場合があります。Drupalがテーブル、列、または参照の名前を変更するか移動することを決定したため、突然SQLエラーが発生します。

于 2012-06-12T13:40:43.260 に答える