2

ニュースレターのコンテンツを整理して公開するためのカスタムモジュールを作成しました。

私が今直面している問題(テーマ設定とDrupalモジュール開発は初めてなので、Drupalの問題ではなく、知識の問題である可能性があります)は、各ニュースレターのテーマを設定する方法です。

この時点で、ニュースレターのURL構造は次のようになります。

/ newsletters / {newsletter-name} / {edition-name} / {issue-date}は、page-newsletters-{newsletter-name}-{edition-name}などのファイル名を使用してテーマにテンプレートファイルを作成できることを意味します。 tpl.php、これは素晴らしいです。私が直面している問題の1つは、すべてのコンテンツがテーマの$content変数に含まれていることです。さまざまな変数として提供してもらいたい(テーマ内で特定のコンテンツを特定の領域に配置できるようにするため)。

これを行うための適切な方法はありますか?

編集:いくつかの質問に答えるには:問題はノード(問題、エディション、ニュースレターのノードがあります)であり、パスはワイルドカードとルーターを使用してhook_menuを使用して設定されています。

4

3 に答える 3

1

私が見つけた最善の答えは、phptemplate_preprocess_page内にチェックを追加して、変数をモジュールに送り返し、更新することでした。

そのようです:

function phptemplate_preprocess_page(&$vars) {
    if (module_exists('test_module')) {
        _test_module_injector($vars);
    }
}

次に、test_module.moduleファイルで次の関数を作成しました。

function _test_module_injector(&$vars) {
    $vars[] = call_to_other_functions_to_load_vars();
}

うまくいったようです。テーマのtemplate.phpファイルに触れることなくこれを行う方法があればいいのにと思いますが、それ以外の場合はうまくいきます。

于 2010-05-07T15:17:36.527 に答える
0

テンプレートの前処理機能に関するより優れたドキュメントがあれば、Drupalの方がはるかにアクセスしやすくなります。そのままでは、さまざまな説明からの情報をつなぎ合わせる必要があります。開始する1つの場所はここにあります:

http://drupal.org/node/223430

ただし、以下のチュートリアルを実行する時間をとると、ほとんどのことができることがわかります。

http://11heavens.com/theming-the-contact-form-in-Drupal-6

于 2010-05-06T02:08:23.180 に答える
0

これは古い投稿であり、OPの問題は解決されたようです。

ただし、Google(またはその他)を通じてこれを見つけた他の人のためだけに:

  1. 'Devel'モジュールをインストールします:http://drupal.org/project/devel
  2. また、「Devel Themer」モジュール:http ://drupal.org/project/devel_themer

DevelThemerを使用して$content変数を調べ、何を引き出す必要があるかを見つけます。

そこにはたくさんのDevel/Themer docs / tutsがありますが、その使用法はかなり簡単です。ただし、テーマに印刷する前に、そこにあるものの一部をサニタイズする必要があることに注意してください。

ノードをビューとして表示してからビューテンプレートを変更するという提案は、機能しますが、かなりおかしなことに聞こえます。

于 2011-08-05T20:53:37.480 に答える