2010-12-16 9 views
0

私はかなりDrupalを使い慣れています...私はちょっと自分のやり方を学び、これまでに1つのカスタムモジュールを打ち破ってきました。私は、PHP入力形式のノードに別のモジュールを組み込む方法や埋め込む方法があるかどうかを調べようとしていました。私の場合は、動的に生成されたテーブルをいくつか持つノードがあり、同じビューにファイル管理のためのWebFMのようなものを追加したいと思います。 Drupalにこのようなことをする方法はありますか、まったく間違った方向に向いていますか?後者の場合は、私が探しているものを得るために別のカスタムモジュールを作成することを検討していますか?私は実際には、ユーザーが他のユーザー固有の情報と同じページにファイル(そのユーザーだけが表示可能)をアップロードして表示できるようにする必要があります。 WebFMは私が必要以上のものになるかもしれないし、幾分かその外観を変更したいと思っていましたが、私のケースではうまくいくと思っていました。ご指摘ありがとうございます。ノードにdrupalモジュールを組み込む

答えて

0

あなたは自分のカスタムモジュールを作っているので、あなたはうまくいきます。

私があなただったら、ページにブロックに追加したいものを個人的に作って、ノードの下または上に置くことができます。ブロックapiは非常に強力で柔軟性があります。

しかし、実際にはノード自体にコンテンツを配置したい場合、それは可能ですが、はるかにトリッキーです。ノードに供給されたコンテンツを変更することができるノード前処理フック(MYMODULE_preprocess_node())がありますが、この時点ではノードの内容の多くはすでにグループ化されているため、最初に何かを追加するだけで簡単ですノードの内容の終わり。しかし、node.tpl.phpにあなたが好きなように他の全く新しい変数を追加することができます。

もう1つの方法は、hook_menuを使用してノードに基づいて独自のページを作成することです。 node_load($ id)を使用してノードを起動するパラメータを収集できます。ノードロード関数は実際にノードオブジェクトを作成します。ノードオブジェクトは、適切に表示されているように、分割されたノードを操作するのが非常に簡単です。そして、これを使って自分のページを作ることができます。しかし、独自のコンテンツタイプがある場合は、そのコンテンツタイプのテンプレートを作成し、preprocess_nodeを使用してデータを操作できますが、node_loadから取得したノードオブジェクトの修正された出力をテンプレートに渡します。

私はそれに取り組む方法がたくさんあることを知っています。しかし、Drupalは、そのようなコアデータに簡単にアクセスできるように柔軟に対応しています。

うまくいきたいと思っています。

+0

Andrewが言及したように簡単な答えはpremadeモジュールを使用することです。私はそれを自分で作るという観点から話していました。 – Richard

+0

リチャードに感謝します。ファイルアップロードセクションが他のコンテンツをたどる場合は、ブロックAPIを使用するだけで問題ありません。他の方法は、私が知っているものを実際に伸ばすでしょうが、それは良いことです。私はそれらのオプションをもう一度読んで、私の頭をそれらの周りに包み込むつもりです。私は最後の選択肢が提案する柔軟性のようなもの...私はそれを理解する必要があります:)。再度、感謝します。 – bwb3

0

Filefield CCK moduleがお探しのものである可能性があります。

+0

私はFilefield CCKモジュールを少し見ていました。テーブルディスプレイのようなものに行くつもりだったのですが、Filefieldはファイルを積み重ねるだけです。もう一度これを修正する方法があるかもしれませんが、私はDrupalの世界にはまだまだ向いていますが、まだまだ指向的になっています。 – bwb3

関連する問題