--- 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 @@ 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();