View source
<?php
function spaces_views_pre_view(&$view, $display_id, $args) {
if ($view->display_handler->definition['handler'] == 'views_plugin_display_page') {
if ($feature = context_get('spaces', 'feature')) {
}
}
}
function spaces_views_plugins() {
return array(
'module' => 'spaces',
'access' => array(
'spaces_feature' => array(
'title' => t('Spaces feature'),
'help' => t('Access will be granted to users with the specified permission string.'),
'handler' => 'spaces_plugin_access_spaces_feature',
'path' => drupal_get_path('module', 'spaces') . '/includes',
'uses options' => TRUE,
),
),
);
}
function spaces_views_handlers() {
return array(
'info' => array(
'path' => drupal_get_path('module', 'spaces') . '/includes',
),
'handlers' => array(
'spaces_handler_filter_spaces_current' => array(
'parent' => 'views_handler_filter',
),
'spaces_handler_filter_spaces_feature' => array(
'parent' => 'views_handler_filter',
),
'spaces_handler_field_spaces_feature' => array(
'parent' => 'views_handler_field_node_type',
),
),
);
}
function spaces_views_data() {
$data = array();
$data['spaces']['table']['group'] = t('Spaces');
$data['spaces']['table']['join'] = array(
'node' => array(
'left_field' => 'nid',
'field' => 'sid',
),
);
$data['spaces']['current'] = array(
'title' => t('Node in current space'),
'help' => t('Posts in current space.'),
'filter' => array(
'handler' => 'spaces_handler_filter_spaces_current',
),
);
$data['spaces_node']['table']['group'] = t('Spaces');
$data['spaces_node']['table']['join'] = array(
'node' => array(
'table' => 'node',
'left_field' => 'nid',
'field' => 'nid',
),
);
$data['spaces_node']['feature'] = array(
'title' => t('Spaces feature'),
'field' => array(
'field' => 'type',
'handler' => 'spaces_handler_field_spaces_feature',
),
);
return $data;
}
function spaces_views_data_alter(&$data) {
$data['node']['feature'] = array(
'group' => t('Spaces'),
'title' => t('Node type in current feature'),
'help' => t('Filters on node types associated with the current spaces feature.'),
'filter' => array(
'field' => 'type',
'handler' => 'spaces_handler_filter_spaces_feature',
),
);
}