mediamosa_integrity_check_page()Integrity check page / list.
sites/all/modules/mediamosa/modules/integrity_check/mediamosa_integrity_check.module, line 142
<?php
function mediamosa_integrity_check_page() {
// Base value.
$content = array();
// Missing mediafile is the standard type.
$type = arg(4) ? arg(4) : 'missing mediafile';
// Check whether the mediamosa_integrity_check.inc is running or not.
$output = array();
mediamosa_io::exec('ps ax | grep mediamosa_integrity_check.inc | grep -v grep', $output);
if (count($output) > 0) {
drupal_set_message('The integrity check is currently running.');
}
else {
// Define "start check" button.
$start_check = drupal_get_form('mediamosa_integrity_check_start');
}
// Print errors from integrity_check database table.
mediamosa_integrity_check_print_errors();
// Check database objects presence.
$result = mediamosa_db::db_query("SELECT COUNT(*) FROM {#mediamosa_log_integrity_check} WHERE #type <> :error", array(
'#mediamosa_log_integrity_check' => mediamosa_integrity_check_db::TABLE_NAME,
'#type' => mediamosa_integrity_check_db::TYPE,
':error' => mediamosa_integrity_check_db::TYPE_ERROR,
));
$count = $result->fetchField();
if (!$count) {
$ret = array();
$ret[] = array('#markup' => '<p>No integrity errors have been found.</p>');
$ret = array_merge($ret, $start_check);
$ret[] = array('#markup' => '<p>Last integrity run: ' . variable_get('mediamosa_integrity_run_date_start', 'never') . ' - ' . variable_get('mediamosa_integrity_run_date_end', 'never') . '</p>');
return $ret;
}
// Print a select field for choose the type.
$content[] = drupal_get_form('mediamosa_integrity_check_type_box');
$content[] = array('#markup' => 'For the following objects, an integrity problem has been detected:');
// Headers and base queries.
if ($type == 'missing mediafile') {
$header = array(
array('data' => t('Mediafile id'), 'field' => 'object_id'),
array('data' => t('App id'), 'field' => 'app_id'),
array('data' => t('Owner id'), 'field' => 'owner_id'),
array('data' => t('Asset id')),
array('data' => t('Created'), 'field' => 'created'),
array('data' => t('Details'), 'field' => 'details'),
t('Select')
);
$query = mediamosa_db::db_select(mediamosa_integrity_check_db::TABLE_NAME, 'i')->extend('PagerDefault')->extend('TableSort');
$query
->condition(mediamosa_integrity_check_db::TYPE, $type)
->fields('i', array(
mediamosa_integrity_check_db::ID,
mediamosa_integrity_check_db::OBJECT_ID,
mediamosa_integrity_check_db::APP_ID,
mediamosa_integrity_check_db::OWNER_ID,
mediamosa_integrity_check_db::CREATED,
mediamosa_integrity_check_db::DETAILS,
));
$query->orderByHeader($header);
$query->limit(mediamosa_settings::maintenance_items_per_page());
// Additional info.
$post_page_info = '';
}
elseif ($type == 'missing mediarecord') {
$header = array(
array('data' => t('Mediafile id'), 'field' => 'object_id'),
array('data' => t('size'), 'field' => 'size'),
array('data' => t('mtime'), 'field' => 'mtime'),
array('data' => t('ctime'), 'field' => 'ctime'),
array('data' => t('details'), 'field' => 'details'),
t('Select')
);
$query = mediamosa_db::db_select(mediamosa_integrity_check_db::TABLE_NAME, 'i')->extend('PagerDefault')->extend('TableSort');
$query
->condition(mediamosa_integrity_check_db::TYPE, $type)
->fields('i', array(
mediamosa_integrity_check_db::ID,
mediamosa_integrity_check_db::OBJECT_ID,
mediamosa_integrity_check_db::SIZE,
mediamosa_integrity_check_db::MTIME,
mediamosa_integrity_check_db::CTIME,
mediamosa_integrity_check_db::DETAILS,
));
$query->orderByHeader($header);
$query->limit(mediamosa_settings::maintenance_items_per_page());
// Additional info.
// Total size.
$total_size = mediamosa_db::db_query("SELECT SUM(#size) FROM {#mediamosa_log_integrity_check} WHERE #type = :missing_mediarecord", array(
'#mediamosa_log_integrity_check' => mediamosa_integrity_check_db::TABLE_NAME,
'#size' => mediamosa_integrity_check_db::SIZE,
'#type' => mediamosa_integrity_check_db::TYPE,
':missing_mediarecord' => mediamosa_integrity_check_db::TYPE_MISSING_MEDIARECORD,
))->fetchField();
$post_page_info = '<p>Total bytes: ' . $total_size . '</p>';
}
$rows = array();
$result = $query->execute();
foreach ($result as $row) {
if ($type == 'missing mediafile') {
// Get the mediafile object.
$object = mediamosa_db::db_query("SELECT * FROM {#mediafile} WHERE #mediafile_id = :mediafile_id", array(
'#mediafile' => mediamosa_asset_mediafile_db::TABLE_NAME,
'#mediafile_id' => mediamosa_asset_mediafile_db::ID,
':mediafile_id' => $row['object_id'],
))->fetchObject();
if ($object) {
$asset_id = (isset($object->asset_id_root) && $object->asset_id_root) ? $object->asset_id_root : $object->asset_id;
$rows[] = array(
'data' => array(
'mediafile_id' => $row['object_id'],
'app_id' => $row['app_id'],
'owner_id' => $row['owner_id'],
'asset_id' => l($asset_id, 'vpx/vpx_beheer_mm/asset/'. $asset_id),
'created' => $row['created'],
'details' => $row['details'],
'select' => sprintf('<input type="checkbox" name="selected_ids[]" value="%s">', $row['id']),
),
);
}
}
else if ($type == 'missing mediarecord') {
$rows[] = array(
'data' => array(
'mediafile_id' => $row['object_id'],
'size' => $row['size'],
'mtime' => $row['mtime'],
'ctime' => $row['ctime'],
'details' => $row['details'],
'select' => sprintf('<input type="checkbox" name="selected_ids[]" value="%s">', $row['id']),
),
);
}
}
$content[] = array('#markup' => theme('table', array('header' => $header, 'rows' => $rows, 'empty' => t('You have no data.'))));
$content[] = array('#markup' => theme('pager'));
$form = mediamosa_integrity_check_delete_submit();
//$content[] = array('#markup' => drupal_render($form['delete']));
$content = array_merge($content, drupal_get_form('mediamosa_integrity_check_delete_submit'));
$content = array_merge($content, $start_check);
$content[] = array('#markup' => $post_page_info);
$content[] = array('#markup' => '<p>Last integrity run: ' . variable_get('mediamosa_integrity_run_date_start', 'never') . ' - ' . variable_get('mediamosa_integrity_run_date_end', 'never') . '</p>');
return $content;
}
?>