0

ユーザーがAJAXを介してノードとコメントを送信できるようにしたいと思います。また、ノードとコメントフォームをかなり広範囲にカスタマイズしたいと思います。

Drupal7のFormAPIとAjaxフレームワークのドキュメントとコード例を調べることに時間を費やしましたが、非常に複雑であることがわかりました。したがって、HTMLで独自のフォームを作成し、独自のJavaScriptコードを使用してAjax経由で送信したいと考えています。また、これらのAjaxリクエストを処理するための特定のURLを設定します。これにより、最終的に、node_save()またはcomment_save()適切な場合に呼び出されます。

Form APIとAjaxフレームワークを経由するのとは対照的に、この方法でそれを行うことの欠点は何ですか?私はコミュニティに貢献するためのモジュールを作成していません。すべては私自身のサイトのためだけです。

4

2 に答える 2

5

技術的には、はい、悪影響を与えることなくこれを行うことができます。フィードからデータをインポートしなければならず、node_saveを手動で使用したことがあります。

あなたが見逃しているのは、drupalが提供する柔軟性です。たとえば、注目のアイテムを示すためにフォームに新しいチェックボックスを追加したいですか?ここで、フォームを手動で更新してフィールドを追加し、送信ハンドラーを更新してデータを保存する必要があります。drupalのシステムを使用した場合、自動入力されます。

さらに柔軟性については、たとえば、CAPTCHAフィールドをフォームに追加することにしたとします。CAPTCHAモジュールを有効にして、必要なフォームを指定するだけで、自動的に実行されます。このようなことを可能にするサードパーティのモジュールがたくさんあります。

Drupalsフォームシステムでは、日付セレクターや管理対象ファイルのアップロードなどのより複雑なアイテムを追加することもできます。これにより、APIに慣れたら時間を大幅に節約できます。

プロジェクトを完成させるためだけに探していて、何か新しいことを学ぶことに時間を費やさない場合は、すべて手動で実行できることを確認してください。将来あなたのコードを見るどんなdrupal開発者もあなたの仕事について非常に低い意見を持つことをあなたに約束することができます。状況に応じて、これは重要な場合と重要でない場合があります。しかし、本当に見逃している最大のことは、メンテナンスのしやすさと柔軟性です。

要約すると、次のようになります。

長所:

  • それが動作します
  • 早くて簡単
  • 快適

短所:

  • 柔軟性の喪失
  • 維持するのが難しい
  • drupalsフォームウィジェット/ヘルパーを利用できない
  • サードパーティのモジュールを利用できない
  • 他の開発者からの恥
  • 汚れた感じからの睡眠不足
  • 永遠の天罰
于 2012-02-13T18:41:44.903 に答える
4

通常の議論は私が推測する移植性についてですが、これらのモジュールを別のDrupalサイトに移植するつもりがないのであれば、それは失敗すると思います。

他のモジュールにグローバル/継承された設定に基づいてフォームを変更する機会を提供する場合も同じことが言えますが、この機能が本当に必要ない/必要ない場合は、反対の議論として実際に使用することはできません。

失うものの1つ、組み込みのクロスサイトリクエストフォージェリ保護です。ただし、独自のバージョンを作成している限り、問題はありません。

Drupalを頻繁に使用する予定がある場合は、FAPIに慣れることをお勧めします...しばらくすると、カスタムHTMLを作成するよりもFAPIを使用する方がはるかに簡単になります。

于 2012-02-13T17:38:51.053 に答える