2009-08-13 8 views
0

をアップグレードします。Drupalの:私は効果的に二つのノードたいノード戦略

  1. ノーマルノードを
  2. プレミアムノード

唯一の違いは、プレミアムノードがより多くの画像を撮影し、他のいくつかのことができることになります特徴。これについて最善の戦略は何ですか?

  1. は違い
  2. を持つ2つの異なるノードが1つのノードを持っているし、何とかそれにアップグレードした属性を適用するために見つけることがありますか?

ユーザがノードをアップグレードできるようにしたいので、私は(b)を好むでしょう。また、通常のノードをプレミアムノードに移行することは非常に困難です。

どのように私はbを達成することができますか?

+0

ノードはダウングレードされる可能性がありますが、後で再度アップグレードしますか?つまり、誰かが余分なものを持つプレミアムノードを持っていて、通常の状態に戻り、プレミアムに戻って、そのものがまだそこにあると期待するケースがありますか? – anschauung

+0

このシナリオでは、クライアントは決してダウングレードしません。しかし、誰が知っている? – coderama

答えて

2

2つの異なるコンテンツタイプ(CCK)を作成し、2つの間で翻訳するカスタムコードを書くか、Node Convertのようなモジュールを使用してノードをアップグレードします。最初は複雑になるかもしれませんが、コンテンツタイプごとにすべての制限(許可されたイメージ数、許可など)を適用できるという利点があります。ここで

は、ノードの変換プロジェクトページからの抜粋です:

...メニュー]タブでは、ノードビューのページに「変換」追加、変換することができますつまり、ノード/ 1 /変換、現在のノードタイプから別のノードタイプへのノード。モジュールは、現在のノードタイプのすべてのフィールド値を宛先ノードタイプのフィールドに転送するか、または廃棄する手段を提供する。

このモジュールは、アクション、ルール、ビュー一括操作、管理ビューとうまく統合されています。 CTools Exportablesを使用して、テンプレートを機能にエクスポートする機能をサポートしています。また、開発者が変換時に追加コードを実行できるフックも提供します。

1

(b)は、2つの異なる入力フィルタとして実装できます.1つは非アップグレード用、もう1つはアップグレード済みです。ノードを「アップグレードする」ことは、その内容に適用される入力フィルタを変更することと同じくらい簡単です。

+0

しかし、無制限ではなく、写真をアップロードするのを制限するにはどうすればよいですか?これは、通常のノードとアップグレードされたノードの違いの1つです。 – coderama

+0

フィルターには、ノードの完全なテキスト(フィルター機能)が渡され、テキストがチェックされ、4つ以上の画像が含まれているかどうかが確認されます。サーバーにアップロードできる*実際の画像数の制限は、おそらく画像をアップロードするために使用しているどのモジュールでも処理する必要があります。 – Amber

+0

CCKを使用してファイルをアップロードすると、これは簡単ではありません。ほとんどの場合、非常に複雑になるこの種の処理を行うには、何らかのcck統合が必要になるでしょう。 – googletorp

関連する問題