You are here

function opigno_statistics_app_node_update in Opigno Statistics App 7

Implements hook_node_update().

Update node related data on statistic tables

Parameters

StdClass $node:

File

./opigno_statistics_app.module, line 460
Module file. Defines module hooks.

Code

function opigno_statistics_app_node_update($node) {
  if ($node->type === 'course') {
    $course = $node;
    db_update('opigno_statistics_user_course')
      ->fields(array(
      'course_name' => $course->title,
    ))
      ->condition('course_nid', $course->nid)
      ->execute();

    //Update required on lessons on the course
    $course_lessons = opigno_quiz_app_course_lessons($course->nid);
    if (!empty($course_lessons)) {
      $course_lesson_ids = array_keys($course_lessons[$course->nid]);
      foreach ($course_lesson_ids as $course_lesson_id) {
        $course_lesson = node_load($course_lesson_id);
        $required = opigno_statistics_app_is_lesson_required_in_course($course_lesson, $course);
        db_update('opigno_statistics_user_course_details')
          ->fields(array(
          'required' => $required,
        ))
          ->where('opigno_statistics_user_course_fk IN (SELECT opigno_statistics_user_course_pk FROM {opigno_statistics_user_course} WHERE course_nid = :course_nid)', array(
          ':course_nid' => $course->nid,
        ), 'IN')
          ->condition('entity_id', $course_lesson_id)
          ->execute();
      }
    }
  }
  elseif (opigno_statistics_app_node_is_a_lesson($node)) {
    db_update('opigno_statistics_user_course_details')
      ->fields(array(
      'entity_name' => $node->title,
    ))
      ->condition('entity_id', $node->nid)
      ->condition('type', $node->type)
      ->execute();
  }
}