クイズのテーマを設定しようとしていますが、クイズのノードタイプをテーマにした場合でも(node--quiz.tpl)、「クイズに答える」ボタンをクリックすると、そのテンプレートは消えます。
multichoice-answering-form.tplにテーマを設定しようとしましたが(私の質問はすべて多肢選択型なので)、何も起こりません。
クイズモジュールを確認しましたが、このニーズに応じたデフォルトのテンプレートが見つかりませんでした。それとも何か不足していますか?
テンプレート quiz-single-question-node.tpl を作成してみましたが、未定義の変数エラーが発生するため、コンテンツを「取得」してもコンテンツが正しくないようです。
これは私がそのテンプレートに試みたものであり、うまくいきませんでした:
print drupal_render($form);
print render($form);
print render($content);
3つのオプションのどれを使用しても、同じ未定義の変数エラーが発生します。
どんな助けでも大歓迎です。ありがとう!!
クイズのテーマに使用できるさまざまなテンプレートがあります。
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
_
クイズモジュールのファイルと関数を確認すると、他の多くのテンプレートとテーマ関数が表示されます。