public function delete(MediaModel $media, UserAccountModel $user)
 {
     global $DB;
     try {
         $DB->beginTransaction();
         $stat = $DB->prepare("UPDATE media_in_group SET removed_by_user_account_id=:removed_by_user_account_id," . " removed_at=:removed_at , removal_approved_at= :removal_approved_at WHERE " . " media_id=:media_id AND removed_at IS NULL ");
         $stat->execute(array('media_id' => $media->getId(), 'removed_at' => \TimeSource::getFormattedForDataBase(), 'removal_approved_at' => \TimeSource::getFormattedForDataBase(), 'removed_by_user_account_id' => $user->getId()));
         $stat = $DB->prepare("UPDATE media_in_venue SET removed_by_user_account_id=:removed_by_user_account_id," . " removed_at=:removed_at , removal_approved_at= :removal_approved_at WHERE " . " media_id=:media_id AND removed_at IS NULL ");
         $stat->execute(array('media_id' => $media->getId(), 'removed_at' => \TimeSource::getFormattedForDataBase(), 'removal_approved_at' => \TimeSource::getFormattedForDataBase(), 'removed_by_user_account_id' => $user->getId()));
         $stat = $DB->prepare("UPDATE media_in_event SET removed_by_user_account_id=:removed_by_user_account_id," . " removed_at=:removed_at , removal_approved_at= :removal_approved_at WHERE " . " media_id=:media_id AND removed_at IS NULL ");
         $stat->execute(array('media_id' => $media->getId(), 'removed_at' => \TimeSource::getFormattedForDataBase(), 'removal_approved_at' => \TimeSource::getFormattedForDataBase(), 'removed_by_user_account_id' => $user->getId()));
         $stat = $DB->prepare("UPDATE media_information SET deleted_by_user_account_id=:deleted_by_user_account_id," . " deleted_at=:deleted_at WHERE " . " id=:id AND deleted_at IS NULL ");
         $stat->execute(array('id' => $media->getId(), 'deleted_at' => \TimeSource::getFormattedForDataBase(), 'deleted_by_user_account_id' => $user->getId()));
         $DB->commit();
     } catch (Exception $e) {
         $DB->rollBack();
     }
     $media->deleteFiles();
 }
 public function deleteFiles()
 {
     global $CONFIG;
     $dirname = $CONFIG->fileStoreLocation . DIRECTORY_SEPARATOR . 'media' . DIRECTORY_SEPARATOR;
     $cacheNormalDirname = $CONFIG->tmpFileCacheLocation . DIRECTORY_SEPARATOR . 'media' . DIRECTORY_SEPARATOR . 'normal' . DIRECTORY_SEPARATOR;
     $cacheThumbDirname = $CONFIG->tmpFileCacheLocation . DIRECTORY_SEPARATOR . 'media' . DIRECTORY_SEPARATOR . 'thumbnail' . DIRECTORY_SEPARATOR;
     foreach (MediaModel::getAllowedImageExtensions() as $extension) {
         $filename = $dirname . $this->getId() . "." . $extension;
         $cacheNormalFileName = $cacheNormalDirname . $this->getId() . "." . $extension;
         $cacheThumbFileName = $cacheThumbDirname . $this->getId() . "." . $extension;
         if (file_exists($filename)) {
             @unlink($filename);
         }
         if (file_exists($cacheNormalFileName)) {
             @unlink($cacheNormalFileName);
         }
         if (file_exists($cacheThumbFileName)) {
             @unlink($cacheThumbFileName);
         }
     }
 }
 public function fetchAll()
 {
     $this->buildStart();
     $this->build();
     $this->buildStat();
     $results = array();
     while ($data = $this->stat->fetch()) {
         $media = new MediaModel();
         $media->setFromDataBaseRow($data);
         $results[] = $media;
     }
     return $results;
 }
 public function remove(MediaModel $media, GroupModel $group, UserAccountModel $user)
 {
     global $DB;
     $stat = $DB->prepare("UPDATE media_in_group SET removed_by_user_account_id=:removed_by_user_account_id," . " removed_at=:removed_at, removal_approved_at=:removal_approved_at  WHERE " . " group_id=:group_id AND media_id=:media_id AND removed_at IS NULL ");
     $stat->execute(array('group_id' => $group->getId(), 'media_id' => $media->getId(), 'removed_at' => \TimeSource::getFormattedForDataBase(), 'removal_approved_at' => \TimeSource::getFormattedForDataBase(), 'removed_by_user_account_id' => $user->getId()));
 }