View source
<?php
function notifications_views_views_api() {
return array(
'api' => 2,
);
}
function notifications_views_views_data() {
$data = array();
$data['messaging_store'] = array(
'table' => array(
'group' => t('Messaging'),
'base' => array(
'field' => 'mqid',
'title' => t('Messaging'),
'help' => t('Messaging store.'),
'weight' => 0,
),
),
);
$data['messaging_store']['mqid'] = array(
'title' => t('MQID'),
'help' => t('The ID of the message'),
'field' => array(
'handler' => 'views_handler_field',
'click sortable' => TRUE,
),
'sort' => array(
'handler' => 'views_handler_sort',
),
);
$data['messaging_store']['subject'] = array(
'title' => t('Subject'),
'help' => t('The subject of the message'),
'field' => array(
'handler' => 'views_handler_field',
'click sortable' => TRUE,
),
'sort' => array(
'handler' => 'views_handler_sort',
),
);
$data['messaging_store']['body'] = array(
'title' => t('Message'),
'help' => t('The body of the message'),
'field' => array(
'handler' => 'notifications_views_handler_field_body',
),
);
$data['messaging_store']['created'] = array(
'title' => t('Creation date'),
'help' => t('The date that the messag was created.'),
'field' => array(
'handler' => 'views_handler_field',
),
'sort' => array(
'handler' => 'views_handler_sort',
),
);
$data['messaging_store']['delete_link'] = array(
'title' => t('Delete link'),
'help' => t('Provides a link to delete the message'),
'field' => array(
'handler' => 'notifications_views_handler_field_delete_link',
),
);
$data['messaging_store']['method'] = array(
'title' => t('Method'),
'help' => t('The delivery method for the message'),
'field' => array(
'handler' => 'views_handler_field',
),
);
$data['messaging_store']['sender'] = array(
'title' => t('Sender'),
'help' => t("The User ID of the message sender."),
'relationship' => array(
'base' => 'users',
'field' => 'uid',
'handler' => 'views_handler_relationship',
'label' => t('Sender'),
),
);
$data['messaging_store']['uid'] = array(
'title' => t('Receiver'),
'help' => t("The User ID of the message receiver."),
'relationship' => array(
'base' => 'users',
'field' => 'uid',
'handler' => 'views_handler_relationship',
'label' => t('Receiver'),
),
);
$data['notifications']['table']['group'] = t('Notifications');
$data['notifications']['table']['base'] = array(
'field' => 'sid',
'title' => t('Notifications'),
'help' => t('Notifications subscriptions.'),
'weight' => 0,
);
$data['notifications']['table']['join'] = array(
'node' => array(
'table' => 'notifications',
'left_field' => 'sid',
'field' => 'sid',
'left_table' => 'notifications_fields',
),
'users' => array(
'table' => 'notifications',
'left_field' => 'uid',
'field' => 'uid',
'left_table' => 'users',
),
);
$data['notifications']['uid_current'] = array(
'title' => t('Subscription by the current user'),
'help' => t('Filter the view to the currently logged in user.'),
'filter' => array(
'real field' => 'uid',
'title' => t('Current'),
'handler' => 'views_handler_filter_user_current',
),
);
$data['notifications']['uid'] = array(
'title' => t('Subscriber UID'),
'help' => t('The UID of the subscriber.'),
'argument' => array(
'handler' => 'views_handler_argument_user_uid',
'parent' => 'views_handler_argument_numeric',
'numeric' => TRUE,
),
'relationship' => array(
'base' => 'users',
'field' => 'uid',
'handler' => 'views_handler_relationship',
'label' => t('Subscriber'),
),
);
$data['notifications']['send_method'] = array(
'title' => t('Send method'),
'help' => t('Filter to subscriptions with this send method.'),
'field' => array(
'handler' => 'views_handler_field',
),
'filter' => array(
'title' => t('Method'),
'handler' => 'views_handler_filter_subscription_send_method',
),
);
$data['notifications']['type'] = array(
'title' => t('Type'),
'help' => t('Filter to subscriptions of this type.'),
'field' => array(
'handler' => 'views_handler_field',
),
'filter' => array(
'title' => t('Type'),
'handler' => 'views_handler_filter_subscription_type',
),
'argument' => array(
'handler' => 'views_handler_argument_user_uid',
'parent' => 'views_handler_argument_numeric',
'numeric' => TRUE,
),
);
$data['notifications']['send_interval'] = array(
'title' => t('Send Interval'),
'help' => t('Filter to subscriptions on this interval.'),
'field' => array(
'handler' => 'views_handler_field_subscription_interval',
),
'filter' => array(
'title' => t('Send Interval'),
'handler' => 'views_handler_filter_subscription_interval',
),
);
$data['notifications_fields']['table']['group'] = t('Notifications');
$data['notifications_fields']['table']['join'] = array(
'users' => array(
'table' => 'notifications_fields',
'left_field' => 'sid',
'field' => 'sid',
'left_table' => 'notifications',
),
'node' => array(
'table' => 'notifications_fields',
'left_field' => 'nid',
'field' => 'value',
'extra' => array(
array(
'field' => 'field',
'value' => 'nid',
),
),
),
'notifications' => array(
'table' => 'notifications_fields',
'left_field' => 'sid',
'field' => 'sid',
'left_table' => 'notifications',
),
);
$data['notifications_fields']['nid'] = array(
'title' => t('Subscribed Nid'),
'help' => t('The node ID of the subscribed node.'),
'argument' => array(
'real field' => 'value',
'handler' => 'views_handler_argument_node_nid',
'parent' => 'views_handler_argument_numeric',
'numeric' => TRUE,
'validate type' => 'nid',
'extra' => array(
array(
'field' => 'field',
'value' => 'nid',
),
),
),
'relationship' => array(
'base' => 'node',
'real field' => 'value',
'handler' => 'views_handler_relationship_notifications',
'label' => t('Thread'),
'extra' => array(
array(
'field' => 'field',
'value' => 'nid',
'table' => 'notifications_fields',
),
),
),
);
$data['notifications_fields']['author'] = array(
'title' => t('Subscribed Author'),
'help' => t('The UID of the subscribed author.'),
'argument' => array(
'real field' => 'value',
'handler' => 'views_handler_argument_user_uid',
'parent' => 'views_handler_argument_numeric',
'numeric' => TRUE,
'extra' => array(
array(
'field' => 'field',
'value' => 'author',
),
),
),
'relationship' => array(
'base' => 'users',
'real field' => 'value',
'handler' => 'views_handler_relationship_notifications',
'label' => t('Author'),
'extra' => array(
array(
'field' => 'field',
'value' => 'author',
'table' => 'notifications_fields',
),
),
),
);
return $data;
}
function notifications_views_views_handlers() {
return array(
'info' => array(
'path' => drupal_get_path('module', 'notifications_views'),
),
'handlers' => array(
'views_handler_filter_subscription_send_method' => array(
'parent' => 'views_handler_filter_in_operator',
),
'views_handler_filter_subscription_type' => array(
'parent' => 'views_handler_filter_in_operator',
),
'views_handler_filter_subscription_interval' => array(
'parent' => 'views_handler_filter_in_operator',
),
'views_handler_argument_subscription_type' => array(
'parent' => 'views_handler_argument',
),
'notifications_views_handler_field_body' => array(
'parent' => 'views_handler_field',
),
'notifications_views_handler_field_delete_link' => array(
'parent' => 'views_handler_field',
),
'views_handler_field_subscription_type' => array(
'parent' => 'views_handler_field',
),
'views_handler_field_subscription_interval' => array(
'parent' => 'views_handler_field',
),
'views_handler_relationship_notifications' => array(
'parent' => 'views_handler_relationship',
),
),
);
}