? TODO.txt ? patches ? views_defaults.inc ? contrib/image_attach/patches ? contrib/image_gallery/views_defaults.inc Index: image.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/image/image.module,v retrieving revision 1.259 diff -u -r1.259 image.module --- image.module 13 Nov 2007 03:21:53 -0000 1.259 +++ image.module 1 Dec 2007 15:32:16 -0000 @@ -11,6 +11,7 @@ if (module_exists('views')) { include(drupal_get_path('module', 'image') .'/views.inc'); + include(drupal_get_path('module', 'image') .'/views_defaults.inc'); } /** @@ -472,9 +473,13 @@ /** * Implementation of hook_block. * - * Offers 2 blocks: latest image and random image + * Offers 2 blocks: latest image and random image. Skip if Views module is enabled */ function image_block($op = 'list', $delta = 0) { + if(module_exists('views')){ + return; + } + switch ($op) { case 'list': $block[0]['info'] = t('Latest image'); Index: views.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/image/views.inc,v retrieving revision 1.4 diff -u -r1.4 views.inc --- views.inc 27 Aug 2007 22:50:39 -0000 1.4 +++ views.inc 1 Dec 2007 15:03:06 -0000 @@ -112,3 +112,58 @@ return $a; } +/** + * Implementation of hook_views_style_plugins() + */ +function image_views_style_plugins() { + $items['image_gallery'] = array( + 'name' => t('Image: Gallery'), + 'theme' => 'image_gallery_view', + 'validate' => 'views_ui_plugin_validate_list', + 'needs_fields' => true, + ); + return $items; +} + +/** + * Display the nodes of a view as an image gallery. + */ +function theme_image_gallery_view($view, $nodes, $type) { + drupal_add_css(drupal_get_path('module', 'image_gallery') .'/image_gallery.css'); + + $fields = _views_get_fields(); + + // get the size of images + // NB: in the ulikely event thath user adds more than one image field with different sizes... this breaks + foreach ($view->field as $field) { + if ($field['tablename'] == 'image_node') { + $size = image_get_sizes($field['options']); + } + } + $width = $size['width']; + // We'll add height to keep thumbnails lined up. + $height = $size['height'] + 25; + + $content .= '
'. format_plural(0, 'There is 1 image in this gallery', 'There are @count images in this gallery') ."
\n"; } --- contrib/image_gallery/views_defaults.inc +++ contrib/image_gallery/views_defaults.inc @@ -0,0 +1,104 @@ +name = 'image_gallery'; + $view->description = t('Basic image gallery. Embedded by the image_gallery module.'); + $view->access = array ( +); + $view->view_args_php = ''; + $view->page = TRUE; + $view->page_title = ''; + $view->page_header = ''; + $view->page_header_format = '1'; + $view->page_footer = ''; + $view->page_footer_format = '1'; + $view->page_empty = t('There are no images in this gallery.'); + $view->page_empty_format = '1'; + $view->page_type = 'image_gallery'; + $view->use_pager = TRUE; + $view->nodes_per_page = '6'; + $view->sort = array ( + array ( + 'tablename' => 'node', + 'field' => 'sticky', + 'sortorder' => 'DESC', + 'options' => '', + ), + array ( + 'tablename' => 'node', + 'field' => 'created', + 'sortorder' => 'DESC', + 'options' => 'normal', + ), + ); + $view->argument = array ( + array ( + 'type' => 'taxid', + 'argdefault' => '7', + 'title' => '%1', + 'options' => '', + 'wildcard' => '', + 'wildcard_substitution' => '', + ), + ); + $view->field = array ( + array ( + 'tablename' => 'image_node', + 'field' => 'nid', + 'label' => '', + 'handler' => 'image_views_handler_image_img_link', + 'options' => 'thumbnail', + ), + array ( + 'tablename' => 'node', + 'field' => 'title', + 'label' => '', + 'handler' => 'views_handler_field_nodelink', + 'options' => 'link', + ), + ); + $view->filter = array ( + array ( + 'tablename' => 'node', + 'field' => 'status', + 'operator' => '=', + 'options' => '', + 'value' => '1', + ), + array ( + 'tablename' => 'node', + 'field' => 'type', + 'operator' => 'OR', + 'options' => '', + 'value' => array ( + 0 => 'image', +), + ), + array ( + 'tablename' => 'term_data', + 'field' => 'vid', + 'operator' => 'AND', + 'options' => '', + 'value' => array ( + 0 => '1', +), + ), + ); + $view->exposed_filter = array ( + ); + $view->requires = array(node, image_node, term_data); + $views[$view->name] = $view; + + + return $views; +} --- views_defaults.inc +++ views_defaults.inc @@ -0,0 +1,189 @@ +name = 'image_recent'; + $view->description = t('Block and gallery page of recent images'); + $view->access = array (); + $view->view_args_php = ''; + $view->page = TRUE; + $view->page_title = t('Latest images'); + $view->page_header = ''; + $view->page_header_format = '1'; + $view->page_footer = ''; + $view->page_footer_format = '1'; + $view->page_empty = ''; + $view->page_empty_format = '1'; + $view->page_type = 'image_gallery'; + $view->url = 'image/recent'; + $view->use_pager = TRUE; + $view->nodes_per_page = '6'; + $view->menu = TRUE; + $view->menu_title = t('Latest images'); + $view->menu_tab = FALSE; + $view->menu_tab_weight = '0'; + $view->menu_tab_default = FALSE; + $view->menu_tab_default_parent = NULL; + $view->menu_tab_default_parent_type = 'tab'; + $view->menu_parent_tab_weight = '0'; + $view->menu_parent_title = ''; + $view->block = TRUE; + $view->block_title = t('Latest image'); + $view->block_header = ''; + $view->block_header_format = '1'; + $view->block_footer = ''; + $view->block_footer_format = '1'; + $view->block_empty = ''; + $view->block_empty_format = '1'; + $view->block_type = 'image_gallery'; + $view->nodes_per_block = '1'; + $view->block_more = TRUE; + $view->block_use_page_header = FALSE; + $view->block_use_page_footer = FALSE; + $view->block_use_page_empty = FALSE; + $view->sort = array ( + array ( + 'tablename' => 'node', + 'field' => 'created', + 'sortorder' => 'DESC', + 'options' => 'normal', + ), + ); + $view->argument = array ( + ); + $view->field = array ( + array ( + 'tablename' => 'image_node', + 'field' => 'nid', + 'label' => '', + 'handler' => 'image_views_handler_image_img_link', + 'options' => 'thumbnail', + ), + array ( + 'tablename' => 'node', + 'field' => 'title', + 'label' => '', + 'handler' => 'views_handler_field_nodelink', + 'options' => 'link', + ), + ); + $view->filter = array ( + array ( + 'tablename' => 'node', + 'field' => 'status', + 'operator' => '=', + 'options' => '', + 'value' => '1', + ), + array ( + 'tablename' => 'node', + 'field' => 'type', + 'operator' => 'OR', + 'options' => '', + 'value' => array ( + 0 => 'image', + ), + ), + ); + $view->exposed_filter = array ( + ); + $view->requires = array(node, image_node); + $views[$view->name] = $view; + + /** + * Random image block + */ + $view = new stdClass(); + $view->name = 'image_random'; + $view->description = t('Random image'); + $view->access = array ( +); + $view->view_args_php = ''; + $view->page = FALSE; + $view->page_title = ''; + $view->page_header = ''; + $view->page_header_format = '1'; + $view->page_footer = ''; + $view->page_footer_format = '1'; + $view->page_empty = ''; + $view->page_empty_format = '1'; + $view->page_type = 'image_gallery'; + $view->url = ''; + $view->use_pager = TRUE; + $view->nodes_per_page = '10'; + $view->block = TRUE; + $view->block_title = t('Random image'); + $view->block_header = ''; + $view->block_header_format = '1'; + $view->block_footer = ''; + $view->block_footer_format = '1'; + $view->block_empty = ''; + $view->block_empty_format = '1'; + $view->block_type = 'image_gallery'; + $view->nodes_per_block = '1'; + $view->block_more = FALSE; + $view->block_use_page_header = FALSE; + $view->block_use_page_footer = FALSE; + $view->block_use_page_empty = FALSE; + $view->sort = array ( + array ( + 'tablename' => 'node', + 'field' => 'random', + 'sortorder' => 'ASC', + 'options' => '', + ), + ); + $view->argument = array ( + ); + $view->field = array ( + array ( + 'tablename' => 'image_node', + 'field' => 'nid', + 'label' => '', + 'handler' => 'image_views_handler_image_img_link', + 'options' => 'thumbnail', + ), + array ( + 'tablename' => 'node', + 'field' => 'title', + 'label' => '', + 'handler' => 'views_handler_field_nodelink', + 'options' => 'link', + ), + ); + $view->filter = array ( + array ( + 'tablename' => 'node', + 'field' => 'status', + 'operator' => '=', + 'options' => '', + 'value' => '1', + ), + array ( + + 'tablename' => 'node', + 'field' => 'type', + 'operator' => 'OR', + 'options' => '', + 'value' => array ( + 0 => 'image', +), + ), + ); + $view->exposed_filter = array ( + ); + $view->requires = array(node, image_node); + $views[$view->name] = $view; + + + return $views; +}