You are here

function gallery_assist_delete in Gallery Assist 6

Implementation of hook_delete().

1 call to gallery_assist_delete()
gallery_assist_nodeapi in ./gallery_assist.module
Implementation of hook_nodeapi().

File

./gallery_assist.module, line 3287
Drupal content type with gallery functionality.

Code

function gallery_assist_delete(&$node) {
  global $user;
  if ($_POST['form_id'] == 'node_delete_confirm' && $_POST['confirm'] == 1) {
    $delete = TRUE;
  }
  elseif ($_POST['form_id'] == 'node_admin_content' && $_POST['operation'] == 'delete' && $_POST['confirm'] == 1) {
    $delete = TRUE;
  }
  else {
    $delete = FALSE;
  }
  $count = db_result(db_query("SELECT count(*) FROM {gallery_assist} WHERE ref = %d", $node->ref));
  if ($delete && !empty($node->ref) && $count == 1) {
    if (gallery_assist_check_access($node, 'edit')) {
      $settings = variable_get("gallery_assist_{$node->type}_data", array());
      $galleries = db_result(db_query("SELECT count(*) FROM {gallery_assist} WHERE ref = %d", $node->ref));
      if ($galleries == 1 and count($node->gallitems) > 0) {
        foreach ($node->gallitems as $pid => $item) {
          db_query("DELETE FROM {files} WHERE fid = %d", $item->fid);
          db_query("DELETE FROM {gallery_assist_item} WHERE pid = %d", $pid);
          db_query("DELETE FROM {gallery_assist_translated} WHERE pid = %d", $pid);
          gallery_assist_delete_items($item);
        }
        gallery_assist_delete_directory(variable_get('gallery_assist_directory', file_directory_path() . '/gallery_assist') . '/' . $node->uid . '/' . $node->ganame);

        // Send information to other modules when a image will be deleted.
        $node_light = new \stdClass();
        $node_light->nid = $node->nid;
        $node_light->ref = $node->ref;
        $node_light->nodetype = $node->type;
        $count = db_result(db_query("SELECT count(*) FROM {gallery_assist} WHERE ref = %d", $node->ref));
        if ($count == 1) {
          foreach (module_implements('gallery_assist_api') as $name) {
            $function = $name . '_gallery_assist_api';
            $result = $function('delete', NULL, $node_light);
          }
        }
      }
      else {
        db_query("DELETE FROM {gallery_assist_translated} WHERE gref = %d and lang = '%s'", $node->gref, $node->language);
      }
      db_query("DELETE FROM {gallery_assist} WHERE nid = %d", $node->nid);
    }
  }
}