--- shazamgallery.module_old	2006-05-02 10:02:34.000000000 -0700
+++ shazamgallery.module	2006-05-10 17:30:00.000000000 -0700
@@ -1,5 +1,5 @@
 <?php
-// $Id: shazamgallery.module,v 1.25 2006/05/02 15:17:44 ber Exp $
+// $Id: shazamgallery.module,v 1.21 2006/03/02 19:34:47 ber Exp $
 
 /**
  * Implementation of hook_help
@@ -29,6 +29,27 @@
 }
 
 /**
+ * Implementation of hook_access
+ */
+function shazamgallery_access($op, $node) {
+  global $user;
+
+  if ($op == 'create') {
+    return user_access('create gallery');
+  }
+
+  if ($op == 'update' || $op == 'delete') {
+    if (user_access('edit own gallery') && ($user->uid == $node->uid)) {
+      return TRUE;
+    }
+  }
+
+  if ($op == 'add to gallery') {
+    return user_access('create images');
+  }
+}
+
+/**
  * Implementation of hook_settings
  */
 function shazamgallery_settings() {
@@ -72,8 +93,6 @@
                      'access' => user_access('access content'),
                      'type' => MENU_SUGGESTED_ITEM,
                      'callback' => 'shazamgallery_fetch');
-    $items[] = array('path' => 'node/add/gallery', 'title' => t('gallery'),
-                     'access' => user_access('create gallery'));
   }
   return $items;
 }
@@ -86,27 +105,6 @@
 }
 
 /**
- * Implementation of hook_access().
- */
-function shazamgallery_access($op, $node) {
-  global $user;
-
-  if ($op == 'create') {
-    return user_access('create gallery');
-  }
-
-  if ($op == 'update') {
-    if (($node->uid == $user->uid && user_access('edit own gallery'))) {
-      return TRUE;
-    }
-    else {
-       // do nothing. node-access() will determine further access
-    }
-  }
-}
-
-
-/**
  * Implementation of hook_form
  */
 function shazamgallery_form(&$node, &$param) {
@@ -212,18 +210,18 @@
  * Implementation of hook_form_alter().
  */
 function shazamgallery_form_alter($form_id, &$form) {
-  // hunmonk's module dependency check: see http://drupal.org/node/54463
-  if ($form_id == 'system_modules' && !$_POST) {
-    shazamgallery_system_module_validate($form);
-  }
   if (isset($form['type'])) {
     // Extend only image node form
     if ('image_node_form' == $form_id) {
       $node = $form['#node'];
 
+      if ($node->nid) {
       //Todo: make the default per-parent-gallery
       $parents = shazamgallery_get_parents($node->nid);
-
+      }
+      elseif (arg(3) == 'gallery' && is_numeric(arg(4))) {
+        $parents = array(arg(4));
+      }
       $options = array('<'.t('none').'>');
       foreach (shazamgallery_get_galleries() as $gallery) {
         $options[$gallery->nid] = $gallery->title;
@@ -252,26 +250,6 @@
   }
 }
 
-/**
- * hunmonk's module dependency check: see http://drupal.org/node/54463
- */
-function shazamgallery_system_module_validate(&$form) {
-  $module = 'shazamgallery';
-  $dependencies = array('views', 'image');
-  foreach ($dependencies as $dependency) {
-      if (!in_array($dependency, $form['status']['#default_value'])) {
-        $missing_dependency = TRUE;
-        $missing_dependency_list[] = $dependency;
-      }
-  }
-  if (in_array($module, $form['status']['#default_value']) && isset($missing_dependency)) {
-    db_query("UPDATE {system} SET status = 0 WHERE type = 'module' AND name = '%s'", $module);
-    $key = array_search($module, $form['status']['#default_value']);
-    unset($form['status']['#default_value'][$key]);
-    drupal_set_message(t('The module %module was deactivated--it requires the following disabled/non-existant modules to function properly: %dependencies', array('%module' => $module, '%dependencies' => implode(', ', $missing_dependency_list))), 'error');
-  }
-}
-
 function _shazamgallery_image_insert($node) {
  //save the parents
  if ($node->shazam_parents) {
@@ -303,8 +281,15 @@
   $links = array();
   $types = variable_get('shazamgallery_nodes', array('image'));
 
+  if ($node && $node->type == 'gallery' && 
+    shazamgallery_access('add to gallery', $node)) {
+    foreach ($types as $type) {
+      $links[] = l(t('add %s', array('%s' => $type)), "node/add/$type/gallery/$node->nid");
+    }
+  }
+
   if ($type == "page" && user_access('access content')) {
-    if (_image_get_vid()) {
+    if (_image_gallery_get_vid()) {
       $links[] = l(t("image galleries"), "gallery");
     }
   }
@@ -312,6 +297,7 @@
   return $links;
 }
 
+
 /**
  * Implementation of hook_block.
  *
@@ -443,7 +429,6 @@
  * @param moderate nodes in moderation queue. 1 is in queue, 0 is out of queue, unspecified is all.
  */
 function shazamgallery_get_galleries($moderate = 'all') {
-  $galleries = array();
   if ($moderate == 0 || $moderate == 1) {
     $res = db_query(db_rewrite_sql("SELECT n.nid FROM {node} n WHERE n.type = 'gallery' AND n.status = 1 AND n.moderate = %d ORDER BY n.created DESC"), $moderate);
   }
@@ -477,10 +462,10 @@
  * Set the breadcrumb for any image node
  */
 function _shazamgallery_set_image_breadcrumb($node) {
-  $terms = taxonomy_node_get_terms_by_vocabulary($node->nid, _image_get_vid());
+  $terms = taxonomy_node_get_terms_by_vocabulary($node->nid, _image_gallery_get_vid());
   $term = array_pop($terms);
   if ($term) {
-    $vocabulary = taxonomy_get_vocabulary(_image_get_vid());
+    $vocabulary = taxonomy_get_vocabulary(_image_gallery_get_vid());
     $breadcrumb[] = array('path' => 'gallery', 'title' => $vocabulary->name);
     // XXXtangent: changed this to use galleries for the breadcrumb instead of taxonomy
     if ($parents = shazamgallery_get_parents($node->nid)) {
@@ -634,53 +619,6 @@
   );
   $views[$view->name] = $view;
 
-  $view = new stdClass();
-  $view->name = 'shazam_frontpage';
-  $view->description = 'List of latest images';
-  $view->page = TRUE;
-  $view->page_title = '';
-  $view->page_header = '';
-  $view->page_header_format = '1';
-  $view->page_type = 'teaser';
-  $view->url = 'gallery/latest';
-  $view->use_pager = TRUE;
-  $view->nodes_per_page = '10';
-  $view->sort = array (
-    array (
-      'tablename' => 'node',
-      'field' => 'sticky',
-      'sortorder' => 'DESC',
-      'options' => '',
-    ),
-    array (
-      'tablename' => 'node',
-      'field' => 'created',
-      'sortorder' => 'DESC',
-      'options' => '',
-    ),
-  );
-  $view->argument = array (
-  );
-  $view->field = array (
-  );
-  $view->filter = array (
-    array (
-      'tablename' => 'node',
-      'field' => 'promote',
-      'operator' => '=',
-      'options' => '',
-      'value' => '1',
-    ),
-    array (
-      'tablename' => 'node',
-      'field' => 'type',
-      'operator' => 'OR',
-      'options' => '',
-      'value' => array ('image'),
-    ),
-  );
-  $view->requires = array(node);
-  $views[$view->name] = $view;
 
   //Latest Image. Single node.
   $view = new stdClass();
