_media_management_delete_still

Versions
mediamosa-174
_media_management_delete_still($asset_id, $mediafile_id = NULL, $still_id = NULL)

Code

media_management/media_management.module, line 317

<?php
function _media_management_delete_still($asset_id, $mediafile_id = NULL, $still_id = NULL) {
// haal de still gegeven(s) op en verwijder deze van disk.
  db_set_active('data');
  if ($still_id) {
    $result_query = db_query("SELECT mediafile_id AS still_id, app_id, sannas_mount_point, mediafile_source FROM {mediafile} WHERE mediafile_id = '%s' AND is_still = 'TRUE' AND asset_id_root = '%s'", $still_id, $asset_id);
  }
  elseif ($mediafile_id) {
    $result_query = db_query("
      SELECT s.mediafile_id AS still_id, s.app_id, s.sannas_mount_point, s.mediafile_source
      FROM {mediafile} AS s
      INNER JOIN {mediafile} AS m USING(asset_id)
      WHERE m.mediafile_id = '%s' AND s.is_still = 'TRUE' AND m.asset_id_root = '%s' AND s.asset_id_root = '%s' AND s.mediafile_source = '%s'", $mediafile_id, $asset_id, $asset_id, $mediafile_id);
  }
  else {
    $result_query = db_query("SELECT mediafile_id AS still_id, app_id, sannas_mount_point, mediafile_source FROM {mediafile} WHERE asset_id_root = '%s' AND is_still = 'TRUE'", $asset_id);
  }
  db_set_active();

  $m_id = array();
  while ($query_result_row = db_fetch_object($result_query)) {
    watchdog("server", sprintf("Deleting still: %s/%s/%s/%s", $query_result_row->sannas_mount_point, STILL_LOCATION, $query_result_row->still_id{0}, $query_result_row->still_id));

// fysiek verwijderen
    @unlink(sprintf("%s/%s/%s/%s", $query_result_row->sannas_mount_point, STILL_LOCATION, $query_result_row->still_id{0}, $query_result_row->still_id));

    $m_id[] = $query_result_row->still_id;

    if (!$mediafile_id) {
      $mediafile_id = $query_result_row->mediafile_source;
    }
  }

// verwijder alle stills voor deze asset uit de database
  db_set_active('data');

  if ($m_id && is_array($m_id) && $m_id != array()) {
    $imploded = implode("', '", $m_id);
    db_query(sprintf("DELETE FROM {mediafile_metadata} WHERE mediafile_id IN('%s')", $imploded));
    db_query(sprintf("DELETE FROM {mediafile} WHERE mediafile_id IN('%s')", $imploded));
    unset($imploded);
  }

  // Check is there a default image after the deletion in the media (video) file
  $default = db_result(db_query_range("
    SELECT mm.mediafile_id
    FROM {mediafile_metadata} AS mm
    INNER JOIN {mediafile} AS m USING(mediafile_id)
    WHERE mm.still_default = 'TRUE' AND m.asset_id_root = '%s' AND m.is_still = 'TRUE' AND m.mediafile_source = '%s'
    ", $asset_id, $mediafile_id, 0, 1));
  if (!$default) {
    // There aren't any default image, so creating one
    $default = db_result(db_query_range("
      SELECT mm.mediafile_id
      FROM {mediafile_metadata} AS mm
      INNER JOIN {mediafile} AS m USING(mediafile_id)
      WHERE m.asset_id_root = '%s' AND m.is_still = 'TRUE' AND m.mediafile_source = '%s'
      ORDER BY mm.still_order
      ", $asset_id, $mediafile_id, 0, 1));
    if ($default) {
      db_query("
        UPDATE {mediafile_metadata}
        SET still_default = 'TRUE'
        WHERE mediafile_id = '%s'
        ", $default);
    }
  }
/*
  // Check is there a default image after the deletion in the asset
  $default = db_result(db_query_range("
    SELECT mm.mediafile_id
    FROM {mediafile_metadata} AS mm
    INNER JOIN {mediafile} AS m USING(mediafile_id)
    WHERE mm.still_default = 'TRUE' AND m.asset_id_root = '%s' AND m.is_still = 'TRUE'
    ", $asset_id, 0, 1));
  if (!$default) {
    // There aren't any default image, so creating one
    $default = db_result(db_query_range("
      SELECT mm.mediafile_id
      FROM {mediafile_metadata} AS mm
      INNER JOIN {mediafile} AS m USING(mediafile_id)
      WHERE m.asset_id_root = '%s' AND m.is_still = 'TRUE'
      ORDER BY mm.still_order
      ", $asset_id, 0, 1));
    if ($default) {
      db_query("
        UPDATE {mediafile_metadata}
        SET still_default = 'TRUE'
        WHERE mediafile_id = '%s'
        ", $default);
    }
  }
 */

  db_set_active();

// retourneer een ok
  return TRUE;
}
?>