5

私はDrupal6.xシステムを使用して、エクササイズ/パーソナルトレーニングプログラムを作成しています。また、CCKをエクササイズとプログラムのコンテンツタイプで使用しています。プログラムには、いくつかのヘッダーフィールドと、それで構成されるエクササイズへのノード参照のリストが含まれています。 。これはうまく機能し、正常に機能するプログラムを手動で作成できます。私が開発したいくつかのアルゴリズムに基づいてこれらのプログラムを自動的に生成できるモジュールを作成したいと思います。プロセスは次のようになります。

  1. すべての演習を配列にロードします
  2. ユーザーの個人情報を読み込む(以前に入力)
  3. 最適なエクササイズを確立する
  4. 新しいプログラムコンテンツタイプを作成する
  5. プログラムを保存

演習にはいくつかの関連する属性があり、SQLをテーブルに直接使用して上記のすべてを実行できますが、非常に複雑で、正しくないと感じます。手順1で、演習を演習オブジェクトの配列(node_load?)としてロードし、プログラムオブジェクトを作成して保存します。このOOタイプのアプローチは可能ですか、それともデータを直接操作することに頼る必要がありますか?

4

4 に答える 4

5

この問題に取り組む最良の方法は、これを行うための独自のモジュールを作成することです。

ステップ1すべてのエクササイズでnode_load($ nid)を実行できますステップ2 user_load($ uid)を使用できますステップ3ユーザーオブジェクトを反復処理し、適切なエクササイズに一致させる必要があります。ステップ4/5新しい$node= stdClass();を作成します。オブジェクトを作成し、属性に正しいデータを入力してから、node_save($ node);を実行します。これにより、$node->idなどが割り当てられます。

トレーニングプログラムノードにどの属性があるかわからない場合は、print_r($ node);を実行してください。すでに作成したものに。

フィル

于 2009-04-21T14:49:30.303 に答える
1

Drupalは、ノードの階層を一挙に保存するための「カスケード」保存メカニズムを提供していません。Phil Carterの説明に従って、コードで各ノードを構築し、そのノードでnode_save()を明示的に呼び出す必要があります。

ノードエクスポートモジュールは、プログラムでノード(CCKフィールドを含む)を作成するためのサンプルコードを生成できます。

于 2009-04-21T15:04:04.047 に答える
0

インポートを正しく実行しようとするモジュールはたくさんあります。それらの比較を見てくださいhttp://groups.drupal.org/node/21338

ノードにデータをインポートする戦略や例が必要な場合は、それらは優れたリソースです。

于 2009-04-21T18:27:23.230 に答える
0

これらのプログラムを「作成」する必要すらないと思います。

要件に一致し、ユーザーと「特性」を共有する演習のリストを表示してみませんか。

これは、「特性」を分類法にすることで実現します。次に、プロファイルまたは分類フラグを使用してユーザーにアタッチします。次に、演習内でリスト(おそらく最初はビュー)と同じ特性タグを持つリストを表示します。

これは動的でユーザー固有であり、一連のプログラムを事前にロードする必要があることに注意してください。

思い。

于 2009-04-23T06:46:45.253 に答える