mediamosa_integrity_check_start_submit

Versions
mediamosa-21
mediamosa_integrity_check_start_submit($form, &$form_state)

Submit.

Code

sites/all/modules/mediamosa/modules/integrity_check/mediamosa_integrity_check.module, line 328

<?php
function mediamosa_integrity_check_start_submit($form, &$form_state) {
  // Rights check.
  if (!user_access('administer integrity')) {
    drupal_set_message('You have no "administer integrity" rights.', 'error');
    return;
  }

  $op = $form_state['input']['op'];
  $selected_ids = isset($form_state['input']['selected_ids']) ? $form_state['input']['selected_ids'] : array();
  $type = arg(4);
  //drupal_set_message('I was here: '. $op . print_r($selected_ids, TRUE) . $type);

  if ($op == t('Start integrity check')) {
    // Call the script.
    global $base_url;
    mediamosa_io::exec('wget -O - -q -t 1 ' . escapeshellcmd($base_url . '/' . drupal_get_path("module", "mediamosa_integrity_check") . '/mediamosa_integrity_check.php >/dev/null 2>/dev/null &'));

    //exec('nice -n20 /usr/bin/php -f ' . $_SERVER["DOCUMENT_ROOT"] . '/' . drupal_get_path("module", "mediamosa_integrity_check") . '/mediamosa_integrity_check.php </dev/null >/dev/null 2>/dev/null &');// 1>/dev/null/ 2>&1 &

    // Set message and goto.
    drupal_set_message(t('Integrity check started'));
    drupal_goto('admin/mediamosa/browse/integrity');
    return;
  }

  if (count($selected_ids)) {
    $result = mediamosa_db::db_query("SELECT #object_id, #id FROM {#mediamosa_log_integrity_check} WHERE #type=:type AND #id IN (:ids)", array(
      '#mediamosa_log_integrity_check' => mediamosa_integrity_check_db::TABLE_NAME,
      '#object_id' => mediamosa_integrity_check_db::OBJECT_ID,
      '#id' => mediamosa_integrity_check_db::ID,
      '#type' => mediamosa_integrity_check_db::TYPE,
      ':type' => $type,
      '#id' => mediamosa_integrity_check_db::ID,
      ':ids' => $selected_ids,
    ));

    foreach ($result as $row) {
      $object_id = $row["object_id"];
      $id = $row["id"];

      switch ($type) {
        case mediamosa_integrity_check_db::TYPE_MISSING_MEDIAFILE:
          mediamosa_asset_mediafile::delete($object_id);
          break;
        case mediamosa_integrity_check_db::TYPE_MISSING_STILLFILE:
          // TODO: test, after implemented.
          $res = mediamosa_db::db_query("SELECT #asset_id_root FROM {#mediamosa_asset_mediafile} WHERE #mediafile_id = :mediafile_id", array(
            '#mediamosa_asset_mediafile' => mediamosa_asset_mediafile_db::TABLE_NAME,
            '#asset_id_root' => mediamosa_asset_mediafile_db::ASSET_ID_ROOT,
            '#mediafile_id' => mediamosa_asset_mediafile_db::ID,
            ':mediafile_id' => $object_id,
          ));
          $asset_id = $res->fetchField();
          mediamosa_asset_mediafile_still::delete($asset_id, '', $object_id);
          break;
        case mediamosa_integrity_check_db::TYPE_MISSING_MEDIARECORD:
          mediamosa_io::unlink(mediamosa_configuration_storage::mediafile_id_filename_get($object_id));
          break;
        case mediamosa_integrity_check_db::TYPE_MISSING_STILLRECORD:
          // TODO: test, after implemented.
          mediamosa_io::unlink(mediamosa_configuration_storage::mediafile_still_filename_get($object_id));
          break;
        default:
          drupal_set_message(t('Unknown type!'), 'error');
      }

      // Delete the original row.
      mediamosa_db::db_query("DELETE FROM {#mediamosa_log_integrity_check} WHERE #id = :id", array(
        '#mediamosa_log_integrity_check' => mediamosa_integrity_check_db::TABLE_NAME,
        '#id' => mediamosa_integrity_check_db::ID,
        ':id' => $id,
      ));
    }
  }
}
?>