0

オンラインクイズ/試験を行うために、モジュールから必要な動作を実現するために、joomla コンポーネント (jQuarks) を変更しています。基本的に、セッション変数を使用して次の項目を保存できるようにしたいと考えています。

  • ユーザーID
  • QuizSessionID (これは jQarks の「セッション」であるため、Joomla セッション自体ではありません)
  • クイズ開始時間
  • 最後の質問に回答したページ (または ID は重要ではありませんが、私はページを使用しているため、これが最適なオプションです)
  • 以前に回答されたすべての質問 (つまり、質問 ID と回答 ID)

これを達成するために、私は JFactory::getSession() を使用していますが、疑問があります。

1つ目は、セッション変数はこのデータを保存する最良の方法ですか? そうでない場合、この情報をどのように、またはどこに保存できますか? ユーザーがクリックして次のページに移動するたびに、与えられた回答を保存し、以前に与えられた回答に追加したいと考えています。これにより、セッションを常に破棄して再作成する必要がなくなりますか? 万一、ユーザーがページを更新する必要がある場合、現在のコンポーネントの動作は、新しい quizSession を作成することです。したがって、すべてがリセットされ、何も保存されません。Joomla セッション変数は、意図した動作を強制するのに十分でしょうか? (ユーザーが開始した quizSession を再開する)

これが間違ったアプローチである場合、何を使用すればよいですか? 私はJoomlaの開発に精通しておらず、少なくとも3年間PHPに触れていません...

よろしくお願いします

4

2 に答える 2

2

JSession を使用しないことをお勧めしますが、User 状態を試してください。これは、Joomla でページを保存するために広く使用されており、ページ全体で変数をフィルター処理します。それについての情報はここで見つけることができます。

私が持っている唯一の懸念は、ページの更新です。状態は更新時にリセットされず、Joomla API で実行できるとは思えません...

もう 1 つ、次の単純なコードを使用していつでも UserId を取得できるため、UserId をセッションに保存する必要はありません。

$userId = JFactory::getUser()->id;

詳細はこちら

于 2013-04-03T11:41:15.320 に答える
1

SESSION一時データに使用しています。失うことを恐れない場合は、データを保存するために使用できます。

#__user_profiles tableキー値ストレージなど、データの永続的な使用を関連付ける場合。

それを分析したい場合は、DB構造を使用する必要があります。

于 2013-04-03T11:43:35.767 に答える