web-dev-qa-db-ja.com

D7でクイズのテーマを設定する方法は?

クイズのテーマを設定しようとしていますが、クイズのノードタイプをテーマにした場合でも(node--quiz.tpl)、「クイズに答える」ボタンをクリックすると、そのテンプレートは消えます

multichoice-answering-form.tplにテーマを設定しようとしましたが(私の質問はすべて多肢選択型なので)、何も起こりません。

クイズモジュールを確認しましたが、このニーズに応じたデフォルトのテンプレートが見つかりませんでした。それとも何か不足していますか?

テンプレート quiz-single-question-node.tpl を作成してみましたが、未定義の変数エラーが発生するため、コンテンツを「取得」してもコンテンツが正しくないようです。

これは私がそのテンプレートに試みたものであり、うまくいきませんでした:

print drupal_render($form);
print render($form);
print render($content);

3つのオプションのどれを使用しても、同じ未定義の変数エラーが発生します。

どんな助けでも大歓迎です。ありがとう!!

4
Rosamunda

クイズのテーマに使用できるさまざまなテンプレートがあります。

1)page--node--take.tpl.phpこれは、node/nid/takeという形式のURLを持つすべてのノードの基本的なページレベルテンプレートを処理します。

2)node--quiz.tpl.phpこれはクイズページに使用されます。

3)quiz-single-question-node.tplは、ご想像のとおり、これは単一ページのクイズノード用のものです。その$ question_nodeに1つの変数があります

_<?php print drupal_render($question_node->content['body']);?> 
_

これにより、各クイズノードにクイズフォームがレンダリングされます。そのため、これを使用して、フッターなどのクイズノードに追加情報を追加できます。

4)theme_quiz_question_navigation_form関数は、ナビゲーションボタンがレンダリングされる場所であり、テーマに乗せたり、テンプレートファイルを作成したりできます。変数は$ formになります。

5)multichoice-answering-form.tpl.phpこのtplには、多肢選択問題タイプのボタン以外のフォームの部分が含まれます。これには$ formという変数があります。必要な変更を行ってから、print drupal_render($form);のようなものをtplに同じようにレンダリングできます。

または、モジュールまたはテーマでform_alter関数を使用して上記を行うこともできます。使用するフォームIDは_quiz_question_answering_form_

他の多くのテンプレート関数とテーマ関数がクイズモジュールにあり、クイズのルックアンドフィールを変更します。たとえば、使用している結果ページのデザインを変更します_quiz-report-form.tpl.php_

クイズモジュールのファイルと関数を確認すると、他の多くのテンプレートとテーマ関数が表示されます。

4