function image_gallery_views_data_alter in Image 7
Same name and namespace in other branches
- 6 contrib/image_gallery/views/image_gallery.views.inc \image_gallery_views_data_alter()
Implementation of hook_views_data_alter(). Add fields for image gallery (ie vocabulary terms) to the term_data table.
File
- contrib/
image_gallery/ views/ image_gallery.views.inc, line 42 - Image Gallery views integration.
Code
function image_gallery_views_data_alter(&$data) {
// ----------------------------------------------------------------------
// Relationships for cover node.
//
// These allow any node field to be used to create the gallery cover node.
// The limitation, however, is that either consider the immediate gallery,
// or a flat pool of the gallery and descendants.
// Note that a bug in Views -- http://drupal.org/node/380560 -- will cause
// an error message when adding node fields on these relationships.
$data['term_data']['image_gallery_cover_latest'] = array(
'group' => t('Image gallery'),
'relationship' => array(
'title' => t('Latest image'),
'label' => t('Cover image, latest'),
'help' => t('Relate an image gallery to its most recently updated node (does not consider child galleries).'),
'handler' => 'image_gallery_handler_relationship_gallery_cover',
'base' => 'node',
'field' => 'nid',
'correlated field' => 'tid',
'subquery order' => ' gallery_cover_node.created DESC ',
),
);
$data['term_data']['image_gallery_cover_oldest'] = array(
'group' => t('Image gallery'),
'relationship' => array(
'title' => t('Oldest image'),
'label' => t('Cover image, oldest'),
'help' => t('Relate an image gallery to its oldest node (does not consider child galleries).'),
'handler' => 'image_gallery_handler_relationship_gallery_cover',
'base' => 'node',
'field' => 'nid',
'correlated field' => 'tid',
'subquery order' => ' gallery_cover_node.created ASC ',
),
);
$data['term_data']['image_gallery_cover_node_title'] = array(
'group' => t('Image gallery'),
'relationship' => array(
'title' => t('First image by title'),
'label' => t('Cover image, first by title'),
'help' => t('Relate an image gallery to its first node when sorted by title (does not consider child galleries).'),
'handler' => 'image_gallery_handler_relationship_gallery_cover',
'base' => 'node',
'field' => 'nid',
'correlated field' => 'tid',
'subquery order' => ' gallery_cover_node.title ASC ',
),
);
// ----------------------------------------------------------------------
// Simple fields.
// Gallery count.
$data['term_data']['image_gallery_count'] = array(
'group' => t('Image gallery'),
'field' => array(
'title' => t('Count'),
'help' => t('Count of items in a gallery.'),
'handler' => 'image_gallery_handler_field_gallery_count',
),
);
// ----------------------------------------------------------------------
// Fields for cover image.
//
// These use a combination of code and separate queries to get a cover node.
// This makes them more powerful that using the relationship cover node,
// as we can consider child galleries recursively rather than just
// flattening all descendant galleries.
// We can also do complex things such as grab the top-most node from the
// gallery according to how the view for that gallery sorts them.
// The downside however is that without a relationship, the fields here are
// all you've got.
// To add more fields, define them on term_data and optionally add handlers.
// See image_gallery_handler_field_gallery_cover for more information.
$data['term_data']['image_gallery_latest_thumbnail'] = array(
'group' => t('Image gallery'),
'field' => array(
'title' => t('Latest image'),
'help' => t('The most recently posted image in the gallery or its child galleries.'),
'handler' => 'image_gallery_handler_field_gallery_cover_thumbnail',
'order clause' => 'n.sticky DESC, n.created DESC',
),
);
$data['term_data']['image_gallery_latest_time'] = array(
'group' => t('Image gallery'),
'field' => array(
'title' => t('Last updated time'),
'help' => t('The time of the most recently posted image in the gallery or its child galleries.'),
'handler' => 'image_gallery_handler_field_gallery_cover_latest_time',
'order clause' => 'n.sticky DESC, n.created DESC',
),
);
$data['term_data']['image_gallery_first_title'] = array(
'group' => t('Image gallery'),
'field' => array(
'title' => t('First image by title'),
'help' => t('The first posted image in the gallery or its child galleries.'),
'handler' => 'image_gallery_handler_field_gallery_cover_thumbnail',
'order clause' => 'n.sticky DESC, n.title ASC',
),
);
$data['term_data']['image_gallery_oldest_thumbnail'] = array(
'group' => t('Image gallery'),
'field' => array(
'title' => t('Oldest image'),
'help' => t('The first posted image in the gallery or its child galleries.'),
'handler' => 'image_gallery_handler_field_gallery_cover_thumbnail',
'order clause' => 'n.sticky DESC, n.created ASC',
),
);
}