/[drupal]/contributions/modules/node_media/node_media.views.inc
ViewVC logotype

Contents of /contributions/modules/node_media/node_media.views.inc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download) (as text)
Mon Dec 31 08:48:28 2007 UTC (22 months, 3 weeks ago) by develCuy
Branch: MAIN
CVS Tags: HEAD
Branch point for: DRUPAL-5
File MIME type: text/x-php
First release of Node Media includes the following features:
- Upload mpeg videos
- Upload sounds(only upload)
- Limit number of uploads according to type: image, sound, video
- Some minor bug fixing
1 <?php
2 /**
3 * @file
4 * Views API hook implementations for the node_media module.
5 */
6
7 function _node_media_views_tables() {
8 $tables['node_media'] = array(
9 'name' => 'node_media',
10 'provider' => 'internal',
11 'join' => array(
12 'left' => array(
13 'table' => 'node',
14 'field' => 'nid'
15 ),
16 'right' => array(
17 'field' => 'nid'
18 ),
19 ),
20 'fields' => array(
21 'node_media_display' => array(
22 'name' => t('Node media: Display node media'),
23 'notafield' => TRUE,
24 'query_handler' => '_node_media_query_handler_display',
25 'handler' => array(
26 '_node_media_views_handler_image_thumb' => t('Thumbnails'),
27 '_node_media_views_handler_image_fullsize' => t('Full size'),
28 ),
29 'sortable' => false,
30 'help' => t('Display all node media in one field.'),
31 ),
32 ),
33 'filters' => array(
34 'nid' => array(
35 'name' => t('Node media: Has node media'),
36 'operator' => array('=' => t('Exists')),
37 'list' => 'views_handler_operator_yesno',
38 'list-type' => 'select',
39 'handler' => '_node_media_handler_images_exist',
40 'help' => t('Filter whether the node has node media.'),
41 ),
42 ),
43 );
44 return $tables;
45 }
46
47 function _node_media_query_handler_display($field, $fieldinfo, &$query) {
48 $query->add_field('nid', 'node');
49 }
50
51 /**
52 * Views handler for displaying images.
53 */
54 function _node_media_views_handler_image_thumb($fieldinfo, $fielddata, $value, $data, $thumb = TRUE) {
55 $node = node_load(array('nid' => $data->nid));
56 $format = ($thumb ? 'thumbs' :'fullsize');
57 $return = theme('node_media_view', $node, TRUE, FALSE, $format);
58 return $return[0];
59 }
60
61 /**
62 * Views handler for displaying images in links to a popup window
63 */
64 function _node_media_views_handler_image_fullsize($fieldinfo, $fielddata, $value, $data) {
65 return _node_media_views_handler_image_thumb($fieldinfo, $fielddata, $value, $data, FALSE);
66 }
67
68 /**
69 * Views handler for filtering
70 */
71 function _node_media_handler_images_exist($op, $filter, $filterdata, &$query) {
72 switch ($op) {
73 case 'handler':
74 $query->ensure_table('node_media');
75 if ($filter['value']) {
76 $query->set_distinct();
77 $table_data = _views_get_tables();
78 $joins = array('type' => 'inner');
79 $joins = array_merge($joins, $table_data['node_media']['join']);
80 $query->joins['node_media'][1] = $joins;
81 }
82 else {
83 $query->add_where('ISNULL(node_media.id)');
84 }
85 }
86 }

  ViewVC Help
Powered by ViewVC 1.1.2