public function QuizQuestion::save in Quiz 7.5
Same name and namespace in other branches
- 6.6 question_types/quiz_question/quiz_question.core.inc \QuizQuestion::save()
- 6.3 question_types/quiz_question/quiz_question.core.inc \QuizQuestion::save()
- 6.4 question_types/quiz_question/quiz_question.core.inc \QuizQuestion::save()
- 6.5 question_types/quiz_question/quiz_question.core.inc \QuizQuestion::save()
- 7.6 question_types/quiz_question/quiz_question.core.inc \QuizQuestion::save()
- 7 question_types/quiz_question/quiz_question.core.inc \QuizQuestion::save()
- 7.4 question_types/quiz_question/quiz_question.core.inc \QuizQuestion::save()
Responsible for handling insert/update of question-specific data.
This is typically called from within the Node API, so there is no need to save the node.
The $is_new flag is set to TRUE whenever the node is being initially created.
A save function is required to handle the following three situations:
- A new node is created ($is_new is TRUE).
- A new node *revision* is created ($is_new is NOT set, because the node itself is not new).
- An existing node revision is modified.
Parameters
bool $is_new: TRUE when the node is initially created.
See also
hook_update and hook_insert in quiz_question.module
File
- question_types/
quiz_question/ quiz_question.core.inc, line 228 - Classes used in the Quiz Question module.
Class
- QuizQuestion
- A base implementation of a quiz_question.
Code
public function save($is_new = FALSE) {
// We call the abstract function saveNodeProperties to save type specific
// data.
$this
->saveNodeProperties($this->node->is_new);
db_merge('quiz_question_properties')
->key(array(
'nid' => $this->node->nid,
'vid' => $this->node->vid,
))
->fields(array(
'nid' => $this->node->nid,
'vid' => $this->node->vid,
'max_score' => $this
->getMaximumScore(),
'feedback' => !empty($this->node->feedback['value']) ? $this->node->feedback['value'] : '',
'feedback_format' => !empty($this->node->feedback['format']) ? $this->node->feedback['format'] : filter_default_format(),
))
->execute();
// Save what quizzes this question belongs to.
// @kludge the quiz nid/vid are still on the node
if (!empty($this->node->quiz_nid)) {
$this
->saveRelationships($this->node->quiz_nid, $this->node->quiz_vid);
}
if (!empty($this->node->revision)) {
// @kludge strange way of redirecting, since we do not have access to
// $form(_state) here
unset($_GET['destination']);
unset($_REQUEST['edit']['destination']);
$_REQUEST['edit']['destination'] = "node/{$this->node->nid}/question-revision-actions";
}
}