function quiz_question_nodeapi in Quiz 6.4
Same name and namespace in other branches
- 6.6 question_types/quiz_question/quiz_question.module \quiz_question_nodeapi()
- 6.3 question_types/quiz_question/quiz_question.module \quiz_question_nodeapi()
- 6.5 question_types/quiz_question/quiz_question.module \quiz_question_nodeapi()
Implementation of hook_nodeapi().
File
- question_types/
quiz_question/ quiz_question.module, line 426 - Quiz Question module. This module provides the basic facilities for adding quiz question types to a quiz.
Code
function quiz_question_nodeapi(&$node, $op) {
// If a question is deleted it should also be removed from quizzes it belongs to.
if ($op == 'delete revision') {
$q_types = _quiz_question_get_implementations();
foreach ($q_types as $q_type => $info) {
if ($node->type == $q_type) {
_quiz_delete_question($node, TRUE);
// true for only this version
}
}
}
elseif ($op == 'presave') {
$q_types = _quiz_question_get_implementations();
foreach ($q_types as $q_type => $info) {
if ($node->type == $q_type) {
if (drupal_strlen($node->title) == 0 || !user_access('edit question titles')) {
if (drupal_strlen(strip_tags(check_markup($node->body, $node->format, FALSE))) > variable_get('quiz_autotitle_length', 50)) {
$node->title = drupal_substr(strip_tags(check_markup($node->body, $node->format, FALSE)), 0, variable_get('quiz_autotitle_length', 50) - 3) . '...';
}
else {
$node->title = strip_tags(check_markup($node->body, $node->format, FALSE));
}
}
}
}
}
elseif ($node->type == 'quiz') {
switch ($op) {
case 'insert':
case 'update':
quiz_question_refresh_latest_quizzes($node->nid);
break;
case 'delete':
quiz_question_remove_latest_quizzes($node->nid);
break;
}
}
}