first import from 7.x-1.1

Signed-off-by: bachy <git@g-u-i.net>
This commit is contained in:
bachy
2012-10-17 15:19:21 +02:00
commit 04d628c609
19 changed files with 4653 additions and 0 deletions

View File

@@ -0,0 +1,332 @@
<?php
/**
* @file
* Provides support for the Views module.
*/
/**
* Implementation of hook_views_handlers().
*/
function flag_lists_views_handlers() {
return array(
'info' => array(
'path' => drupal_get_path('module', 'flag_lists') . '/includes',
),
'handlers' => array(
'flag_lists_handler_field_list' => array(
'parent' => 'views_handler_field',
'file' => 'flag_lists_handler_field_list.inc',
),
'flag_lists_handler_field_template' => array(
'parent' => 'views_handler_field',
'file' => 'flag_lists_handler_field_template.inc',
),
'flag_lists_handler_field_list_edit' => array(
'parent' => 'views_handler_field',
'file' => 'flag_lists_handler_field_list_edit.inc',
),
'flag_lists_handler_field_list_delete' => array(
'parent' => 'views_handler_field',
'file' => 'flag_lists_handler_field_list_delete.inc',
),
'flag_lists_handler_field_template_types' => array(
'parent' => 'views_handler_field_prerender_list',
'file' => 'flag_lists_handler_field_template_types.inc',
),
'flag_lists_handler_filter_template' => array(
'parent' => 'views_handler_filter_in_operator',
'file' => 'flag_lists_handler_filter_template.inc',
),
'flag_lists_handler_argument_fid' => array(
'parent' => 'views_handler_argument_numeric',
'file' => 'flag_lists_handler_argument_fid.inc',
),
),
);
}
/**
* Implementation of hook_views_data_alter().
*/
function flag_lists_views_data_alter(&$data) {
// We want access to users table fields.
$data['users']['table']['join']['flag_lists_flags'] = array(
'left_field' => 'uid',
'field' => 'uid',
);
// We need fid and name form flags' data, and join.
$data['flags'] = array(
'table' => array(
'group' => t('Flag'),
'join' => array(
'flag_lists_flags' => array(
'left_field' => 'pfid',
'field' => 'fid',
),
),
),
'fid' => array(
'title' => t('Flag fid'),
'help' => t('Flag id'),
'field' => array(
'click sortable' => TRUE,
),
'filter' => array(
'handler' => 'views_handler_filter_numeric',
'allow empty' => TRUE,
),
'argument' => array(
'handler' => 'views_handler_argument_numeric',
),
'sort' => array(
'handler' => 'views_handler_sort',
),
),
'name' => array(
'title' => t('Template name'),
'help' => t('The name of the list template flag'),
'field' => array(
'handler' => 'flag_lists_handler_field_template',
'click sortable' => TRUE,
),
'filter' => array(
'handler' => 'flag_lists_handler_filter_template',
'allow empty' => TRUE,
),
'sort' => array(
'handler' => 'views_handler_sort',
),
),
);
// Add the checkbox for flagging nodes VBO style, minus batch API
foreach (entity_get_info() as $entity_type => $info) {
if (isset($info['base table']) && $info['base table'] == 'node' && isset($data[$info['base table']])) {
$data[$info['base table']]['flag_lists_ops'] = array(
'title' => t('Flag lists operations'),
'help' => t('Provide a checkbox to select the row for flag lists operations.'),
'real field' => $info['entity keys']['id'],
'field' => array(
'handler' => 'flag_lists_handler_field_ops',
'click sortable' => FALSE,
),
);
break;
}
}
}
/**
* Implementation of hook_views_data().
*/
function flag_lists_views_data() {
$data = array();
// flag_lists_flags data
$data['flag_lists_flags'] = array(
'table' => array(
'base' => array(
'field' => 'fid',
'title' => t('Flag lists'),
'help' => 'User created flag lists',
'weight' => 10,
'database' => 'default',
),
'group' => t('Flag lists'),
'join' => array(
'node' => array(
'table' => 'flag_lists_flags',
'left_table' => 'flag_lists_content',
'left_field' => 'fid',
'field' => 'fid',
),
),
),
'fid' => array(
'title' => t('fid'),
'help' => t('Flag list id, required for Flag lists operationis\'s "unflag" action.'),
'field' => array(
'handler' => 'flag_lists_handler_field_list',
'click sortable' => TRUE,
),
'filter' => array(
'handler' => 'views_handler_filter_numeric',
'allow empty' => TRUE,
),
'argument' => array(
'handler' => 'flag_lists_handler_argument_fid',
),
'sort' => array(
'handler' => 'views_handler_sort',
),
),
'pfid' => array(
'title' => t('pfid'),
'help' => t('Template flag id'),
'field' => array(
'handler' => 'flag_lists_handler_field_pfid',
'click sortable' => TRUE,
),
'filter' => array(
'handler' => 'views_handler_filter_numeric',
'allow empty' => TRUE,
),
'argument' => array(
'handler' => 'views_handler_argument_numeric',
),
'sort' => array(
'handler' => 'views_handler_sort',
),
),
'uid' => array(
'title' => t('Uid'),
'help' => t('The list owner\'s uid'), // The help that appears on the UI,
'field' => array(
'handler' => 'views_handler_field_user',
'click sortable' => TRUE,
),
'argument' => array(
'handler' => 'views_handler_argument_user_uid',
'name field' => 'name', // display this field in the summary
),
'filter' => array(
'title' => t('Name'),
'handler' => 'views_handler_filter_user_name',
),
'sort' => array(
'handler' => 'views_handler_sort',
),
),
'name' => array(
'title' => t('machine name'),
'help' => t('Machine name of the list'),
'field' => array(
'handler' => 'flag_lists_handler_field_list',
'click sortable' => TRUE,
),
'filter' => array(
'handler' => 'views_handler_filter_string',
'allow empty' => TRUE,
),
'argument' => array(
'handler' => 'views_handler_argument_string',
),
'sort' => array(
'handler' => 'views_handler_sort',
),
),
'title' => array(
'title' => t('List title'),
'help' => t('Title of the list'),
'field' => array(
'click sortable' => TRUE,
'handler' => 'flag_lists_handler_field_list',
),
'filter' => array(
'handler' => 'views_handler_filter_string',
'allow empty' => TRUE,
),
'argument' => array(
'handler' => 'views_handler_argument_string',
),
'sort' => array(
'handler' => 'views_handler_sort',
),
),
'edit_list' => array(
'field' => array(
'title' => t('Edit link'),
'help' => t('Link to edit the list title'),
'handler' => 'flag_lists_handler_field_list_edit',
),
),
'delete_list' => array(
'field' => array(
'title' => t('Delete link'),
'help' => t('Link to delete the list'),
'handler' => 'flag_lists_handler_field_list_delete',
),
),
);
// Flag_lists_content data
$data['flag_lists_content'] = array(
'table' => array(
'join' => array(
'node' => array(
'left_field' => 'nid',
'field' => 'content_id',
),
),
'group' => t('Flag lists'),
),
'uid' => array(
'relationship' => array(
'title' => t('User'),
'help' => t('The user who listed this node'),
'base' => 'users',
'handler' => 'views_handler_relationship',
'label' => t('List user'),
),
),
'content_id' => array(
'relationship' => array(
'title' => t('Node'),
'help' => t('The node that has been listed'),
'base' => 'node',
'handler' => 'views_handler_relationship',
'label' => t('Listed content'),
),
),
'timestamp' => array(
'title' => t('Time listed'),
'help' => t('The time this node was listed'),
'field' => array(
'handler' => 'views_handler_field_date',
'click sortable' => TRUE,
),
'filter' => array(
'handler' => 'views_handler_filter_numeric',
'allow empty' => TRUE,
),
'argument' => array(
'handler' => 'views_handler_argument_numeric',
),
'sort' => array(
'handler' => 'views_handler_sort',
),
),
);
// Flag_lists_types data
$data['flag_lists_types'] = array(
'table' => array(
'group' => t('Flag lists'),
'join' => array(
'flag_lists_flags' => array(
'table' => 'flag_lists_types',
'type' => 'INNER',
'left_table' => 'flags',
'left_field' => 'name',
'field' => 'name',
),
),
),
'type' => array(
'title' => t('Template types'),
'help' => t('Node types that can be listed by lists using this template'),
'field' => array(
'click sortable' => FALSE,
'handler' => 'flag_lists_handler_field_template_types',
),
),
);
return $data;
}

View File

@@ -0,0 +1,864 @@
<?php
/**
* @file
* Contains default views for the flag_lists module.
*/
/**
* Implementation of hook_views_default_views().
*/
function flag_lists_views_default_views() {
$view = new view;
$view->name = 'flag_lists';
$view->description = 'Flag lists';
$view->tag = '';
$view->view_php = '';
$view->base_table = 'flag_lists_flags';
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
$handler = $view->new_display('default', 'Defaults', 'default');
$handler->override_option('fields', array(
'title' => array(
'label' => 'List',
'alter' => array(
'alter_text' => 0,
'text' => '',
'make_link' => 0,
'path' => '',
'link_class' => '',
'alt' => '',
'prefix' => '',
'suffix' => '',
'target' => '',
'help' => '',
'trim' => 0,
'max_length' => '',
'word_boundary' => 1,
'ellipsis' => 1,
'html' => 0,
'strip_tags' => 0,
),
'empty' => '',
'hide_empty' => 0,
'empty_zero' => 0,
'link_to_list' => 1,
'exclude' => 0,
'id' => 'title',
'table' => 'flag_lists_flags',
'field' => 'title',
'relationship' => 'none',
),
'name' => array(
'label' => 'Owner',
'alter' => array(
'alter_text' => 0,
'text' => '',
'make_link' => 0,
'path' => '',
'link_class' => '',
'alt' => '',
'prefix' => '',
'suffix' => '',
'target' => '',
'help' => '',
'trim' => 0,
'max_length' => '',
'word_boundary' => 1,
'ellipsis' => 1,
'html' => 0,
'strip_tags' => 0,
),
'empty' => '',
'hide_empty' => 0,
'empty_zero' => 0,
'link_to_user' => 1,
'overwrite_anonymous' => 0,
'anonymous_text' => '',
'exclude' => 0,
'id' => 'name',
'table' => 'users',
'field' => 'name',
'relationship' => 'none',
),
'edit_list' => array(
'label' => 'Operations',
'alter' => array(
'alter_text' => 0,
'text' => '',
'make_link' => 0,
'path' => '',
'link_class' => '',
'alt' => '',
'prefix' => '',
'suffix' => '',
'target' => '',
'help' => '',
'trim' => 0,
'max_length' => '',
'word_boundary' => 1,
'ellipsis' => 1,
'html' => 0,
'strip_tags' => 0,
),
'empty' => '',
'hide_empty' => 0,
'empty_zero' => 0,
'text' => 'edit',
'exclude' => 0,
'id' => 'edit_list',
'table' => 'flag_lists_flags',
'field' => 'edit_list',
'relationship' => 'none',
),
'delete_list' => array(
'label' => 'Delete link',
'alter' => array(
'alter_text' => 0,
'text' => '',
'make_link' => 0,
'path' => '',
'link_class' => '',
'alt' => '',
'prefix' => '',
'suffix' => '',
'target' => '',
'help' => '',
'trim' => 0,
'max_length' => '',
'word_boundary' => 1,
'ellipsis' => 1,
'html' => 0,
'strip_tags' => 0,
),
'empty' => '',
'hide_empty' => 0,
'empty_zero' => 0,
'text' => '',
'exclude' => 0,
'id' => 'delete_list',
'table' => 'flag_lists_flags',
'field' => 'delete_list',
'relationship' => 'none',
),
'name_2' => array(
'label' => 'Edit template',
'alter' => array(
'alter_text' => 0,
'text' => '',
'make_link' => 0,
'path' => '',
'link_class' => '',
'alt' => '',
'prefix' => '',
'suffix' => '',
'target' => '',
'help' => '',
'trim' => 0,
'max_length' => '',
'word_boundary' => 0,
'ellipsis' => 0,
'html' => 0,
'strip_tags' => 0,
),
'empty' => '',
'hide_empty' => 0,
'empty_zero' => 0,
'link_to_template' => 1,
'exclude' => 0,
'link_to_list' => FALSE,
'id' => 'name_2',
'table' => 'flags',
'field' => 'name',
'relationship' => 'none',
),
'type' => array(
'label' => 'Template types',
'alter' => array(
'alter_text' => 0,
'text' => '',
'make_link' => 0,
'path' => '',
'link_class' => '',
'alt' => '',
'prefix' => '',
'suffix' => '',
'target' => '',
'help' => '',
'trim' => 0,
'max_length' => '',
'word_boundary' => 1,
'ellipsis' => 1,
'html' => 0,
'strip_tags' => 0,
),
'empty' => '',
'hide_empty' => 0,
'empty_zero' => 0,
'type' => 'separator',
'separator' => ', ',
'exclude' => 0,
'id' => 'type',
'table' => 'flag_lists_types',
'field' => 'type',
'relationship' => 'none',
),
));
$handler->override_option('filters', array(
'title' => array(
'operator' => 'contains',
'value' => '',
'group' => '0',
'exposed' => TRUE,
'expose' => array(
'use_operator' => 0,
'operator' => 'title_op',
'identifier' => 'title',
'label' => 'List title',
'optional' => 1,
'remember' => 1,
),
'case' => 0,
'id' => 'title',
'table' => 'flag_lists_flags',
'field' => 'title',
'relationship' => 'none',
),
'uid' => array(
'operator' => 'in',
'value' => '',
'group' => '0',
'exposed' => TRUE,
'expose' => array(
'use_operator' => 0,
'operator' => 'uid_op',
'identifier' => 'uid',
'label' => 'Owner',
'optional' => 1,
'remember' => 1,
'reduce' => 0,
),
'id' => 'uid',
'table' => 'flag_lists_flags',
'field' => 'uid',
'relationship' => 'none',
),
'name' => array(
'operator' => 'in',
'value' => array(),
'group' => '0',
'exposed' => TRUE,
'expose' => array(
'use_operator' => 0,
'operator' => 'name_op',
'identifier' => 'name',
'label' => 'Template name',
'optional' => 1,
'single' => 1,
'remember' => 0,
'reduce' => 0,
),
'id' => 'name',
'table' => 'flags',
'field' => 'name',
'relationship' => 'none',
),
));
$handler->override_option('access', array(
'type' => 'perm',
'perm' => 'administer flags',
));
$handler->override_option('cache', array(
'type' => 'none',
));
$handler->override_option('items_per_page', 25);
$handler->override_option('use_pager', '1');
$handler->override_option('style_plugin', 'table');
$handler->override_option('style_options', array(
'grouping' => '',
'override' => 1,
'sticky' => 0,
'order' => 'asc',
'columns' => array(
'title' => 'title',
'name' => 'name',
'edit_list' => 'edit_list',
'delete_list' => 'edit_list',
'name_2' => 'name_2',
),
'info' => array(
'title' => array(
'sortable' => 1,
'separator' => '',
),
'name' => array(
'sortable' => 1,
'separator' => '',
),
'edit_list' => array(
'separator' => ' ',
),
'delete_list' => array(
'separator' => '',
),
'name_2' => array(
'sortable' => 0,
'separator' => '',
),
),
'default' => 'title',
));
$views[$view->name] = $view;
$view = new view;
$view->name = 'flag_lists_content';
$view->description = 'Flag lists listed content';
$view->tag = '';
$view->view_php = '';
$view->base_table = 'node';
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
$handler = $view->new_display('default', 'Defaults', 'default');
$handler->override_option('relationships', array(
'content_id' => array(
'label' => 'Listed content',
'required' => 1,
'id' => 'content_id',
'table' => 'flag_lists_content',
'field' => 'content_id',
'relationship' => 'none',
),
));
$handler->override_option('fields', array(
'title' => array(
'label' => 'Node Title',
'alter' => array(
'alter_text' => 0,
'text' => '',
'make_link' => 0,
'path' => '',
'link_class' => '',
'alt' => '',
'prefix' => '',
'suffix' => '',
'target' => '',
'help' => '',
'trim' => 0,
'max_length' => '',
'word_boundary' => 1,
'ellipsis' => 1,
'html' => 0,
'strip_tags' => 0,
),
'empty' => '',
'hide_empty' => 0,
'empty_zero' => 0,
'link_to_node' => 1,
'exclude' => 0,
'id' => 'title',
'table' => 'node',
'field' => 'title',
'relationship' => 'none',
),
'title_1' => array(
'label' => 'List title',
'alter' => array(
'alter_text' => 0,
'text' => '',
'make_link' => 0,
'path' => '',
'link_class' => '',
'alt' => '',
'prefix' => '',
'suffix' => '',
'target' => '',
'help' => '',
'trim' => 0,
'max_length' => '',
'word_boundary' => 1,
'ellipsis' => 1,
'html' => 0,
'strip_tags' => 0,
),
'empty' => '',
'hide_empty' => 0,
'empty_zero' => 0,
'link_to_list' => 1,
'exclude' => 0,
'id' => 'title_1',
'table' => 'flag_lists_flags',
'field' => 'title',
'relationship' => 'none',
),
'name' => array(
'label' => 'Name',
'alter' => array(
'alter_text' => 0,
'text' => '',
'make_link' => 0,
'path' => '',
'link_class' => '',
'alt' => '',
'prefix' => '',
'suffix' => '',
'target' => '',
'help' => '',
'trim' => 0,
'max_length' => '',
'word_boundary' => 1,
'ellipsis' => 1,
'html' => 0,
'strip_tags' => 0,
),
'empty' => '',
'hide_empty' => 0,
'empty_zero' => 0,
'link_to_user' => 1,
'overwrite_anonymous' => 0,
'anonymous_text' => '',
'exclude' => 0,
'id' => 'name',
'table' => 'users',
'field' => 'name',
'relationship' => 'uid',
),
'timestamp' => array(
'label' => 'Time listed',
'alter' => array(
'alter_text' => 0,
'text' => '',
'make_link' => 0,
'path' => '',
'link_class' => '',
'alt' => '',
'prefix' => '',
'suffix' => '',
'target' => '',
'help' => '',
'trim' => 0,
'max_length' => '',
'word_boundary' => 1,
'ellipsis' => 1,
'html' => 0,
'strip_tags' => 0,
),
'empty' => '',
'hide_empty' => 0,
'empty_zero' => 0,
'date_format' => 'small',
'custom_date_format' => '',
'exclude' => 0,
'id' => 'timestamp',
'table' => 'flag_lists_content',
'field' => 'timestamp',
'relationship' => 'none',
),
));
$handler->override_option('filters', array(
'status' => array(
'operator' => '=',
'value' => '1',
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'id' => 'status',
'table' => 'node',
'field' => 'status',
'relationship' => 'none',
),
));
$handler->override_option('access', array(
'type' => 'perm',
'perm' => 'view flag lists',
));
$handler->override_option('cache', array(
'type' => 'none',
));
$handler->override_option('items_per_page', 25);
$handler->override_option('use_pager', '1');
$handler->override_option('style_plugin', 'table');
$handler->override_option('style_options', array(
'grouping' => '',
'override' => 1,
'sticky' => 0,
'order' => 'desc',
'columns' => array(
'title' => 'title',
'title_1' => 'title_1',
'name' => 'name',
'timestamp' => 'timestamp',
),
'info' => array(
'title' => array(
'sortable' => 1,
'separator' => '',
),
'title_1' => array(
'sortable' => 1,
'separator' => '',
),
'name' => array(
'sortable' => 1,
'separator' => '',
),
'timestamp' => array(
'sortable' => 1,
'separator' => '',
),
),
'default' => 'timestamp',
));
$views[$view->name] = $view;
$view = new view;
$view->name = 'flag_lists_user_lists';
$view->description = 'Flag lists user lists';
$view->tag = '';
$view->view_php = '';
$view->base_table = 'flag_lists_flags';
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
$handler = $view->new_display('default', 'Defaults', 'default');
$handler->override_option('fields', array(
'title' => array(
'label' => 'List',
'alter' => array(
'alter_text' => 0,
'text' => '',
'make_link' => 0,
'path' => '',
'link_class' => '',
'alt' => '',
'prefix' => '',
'suffix' => '',
'target' => '',
'help' => '',
'trim' => 0,
'max_length' => '',
'word_boundary' => 1,
'ellipsis' => 1,
'html' => 0,
'strip_tags' => 0,
),
'empty' => '',
'hide_empty' => 0,
'empty_zero' => 0,
'link_to_list' => 1,
'exclude' => 0,
'id' => 'title',
'table' => 'flag_lists_flags',
'field' => 'title',
'relationship' => 'none',
),
'edit_list' => array(
'label' => 'Edit link',
'alter' => array(
'alter_text' => 0,
'text' => '',
'make_link' => 0,
'path' => '',
'link_class' => '',
'alt' => '',
'prefix' => '',
'suffix' => '',
'target' => '',
'help' => '',
'trim' => 0,
'max_length' => '',
'word_boundary' => 1,
'ellipsis' => 1,
'html' => 0,
'strip_tags' => 0,
),
'empty' => '',
'hide_empty' => 0,
'empty_zero' => 0,
'text' => 'Edit',
'exclude' => 0,
'id' => 'edit_list',
'table' => 'flag_lists_flags',
'field' => 'edit_list',
'relationship' => 'none',
),
'delete_list' => array(
'label' => 'Delete link',
'alter' => array(
'alter_text' => 0,
'text' => '',
'make_link' => 0,
'path' => '',
'link_class' => '',
'alt' => '',
'prefix' => '',
'suffix' => '',
'target' => '',
'help' => '',
'trim' => 0,
'max_length' => '',
'word_boundary' => 1,
'ellipsis' => 1,
'html' => 0,
'strip_tags' => 0,
),
'empty' => '',
'hide_empty' => 0,
'empty_zero' => 0,
'text' => '',
'exclude' => 0,
'id' => 'delete_list',
'table' => 'flag_lists_flags',
'field' => 'delete_list',
'relationship' => 'none',
),
));
$handler->override_option('arguments', array(
'uid' => array(
'default_action' => 'not found',
'style_plugin' => 'default_summary',
'style_options' => array(),
'wildcard' => 'all',
'wildcard_substitution' => 'All',
'title' => '%1\'s lists',
'breadcrumb' => '',
'default_argument_type' => 'fixed',
'default_argument' => '',
'validate_type' => 'none',
'validate_fail' => 'not found',
'break_phrase' => 0,
'not' => 0,
'id' => 'uid',
'table' => 'flag_lists_flags',
'field' => 'uid',
'validate_user_argument_type' => 'uid',
'validate_user_roles' => array(
'2' => 0,
),
'relationship' => 'none',
'default_options_div_prefix' => '',
'default_argument_fixed' => '',
'default_argument_user' => 0,
'default_argument_php' => '',
'validate_argument_node_type' => array(
'page' => 0,
'story' => 0,
),
'validate_argument_node_access' => 0,
'validate_argument_nid_type' => 'nid',
'validate_argument_vocabulary' => array(),
'validate_argument_type' => 'tid',
'validate_argument_transform' => 0,
'validate_user_restrict_roles' => 0,
'validate_argument_node_flag_name' => '*relationship*',
'validate_argument_node_flag_test' => 'flaggable',
'validate_argument_node_flag_id_type' => 'id',
'validate_argument_user_flag_name' => '*relationship*',
'validate_argument_user_flag_test' => 'flaggable',
'validate_argument_user_flag_id_type' => 'id',
'validate_argument_php' => '',
),
));
$handler->override_option('access', array(
'type' => 'perm',
'perm' => 'view flag lists',
));
$handler->override_option('cache', array(
'type' => 'none',
));
$handler->override_option('items_per_page', 25);
$handler->override_option('use_pager', '1');
$handler->override_option('style_plugin', 'table');
$handler->override_option('style_options', array(
'grouping' => '',
'override' => 1,
'sticky' => 0,
'order' => 'asc',
'columns' => array(
'title' => 'title',
'name' => 'name',
),
'info' => array(
'title' => array(
'sortable' => 1,
'separator' => '',
),
'name' => array(
'sortable' => 1,
'separator' => '',
),
),
'default' => 'title',
));
$views[$view->name] = $view;
$view = new view;
$view->name = 'flag_lists_user_list';
$view->description = 'Flag lists - one of a user\'s lists';
$view->tag = '';
$view->view_php = '';
$view->base_table = 'node';
$view->is_cacheable = FALSE;
$view->api_version = 2;
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
$handler = $view->new_display('default', 'Defaults', 'default');
$handler->override_option('fields', array(
'title' => array(
'label' => '',
'alter' => array(
'alter_text' => 0,
'text' => '',
'make_link' => 0,
'path' => '',
'link_class' => '',
'alt' => '',
'prefix' => '',
'suffix' => '',
'target' => '',
'help' => '',
'trim' => 0,
'max_length' => '',
'word_boundary' => 1,
'ellipsis' => 1,
'html' => 0,
'strip_tags' => 0,
),
'empty' => '',
'hide_empty' => 0,
'empty_zero' => 0,
'link_to_node' => 1,
'exclude' => 0,
'id' => 'title',
'table' => 'node',
'field' => 'title',
'relationship' => 'none',
),
));
$handler->override_option('sorts', array(
'timestamp' => array(
'order' => 'DESC',
'id' => 'timestamp',
'table' => 'flag_lists_content',
'field' => 'timestamp',
'relationship' => 'none',
),
));
$handler->override_option('arguments', array(
'fid' => array(
'default_action' => 'not found',
'style_plugin' => 'default_summary',
'style_options' => array(),
'wildcard' => 'all',
'wildcard_substitution' => 'All',
'title' => '%1',
'breadcrumb' => '',
'default_argument_type' => 'fixed',
'default_argument' => '',
'validate_type' => 'none',
'validate_fail' => 'not found',
'break_phrase' => 0,
'not' => 0,
'id' => 'fid',
'table' => 'flag_lists_flags',
'field' => 'fid',
'validate_user_argument_type' => 'uid',
'validate_user_roles' => array(
'2' => 0,
'3' => 0,
'4' => 0,
),
'relationship' => 'none',
'default_options_div_prefix' => '',
'default_argument_fixed' => '',
'default_argument_user' => 0,
'default_argument_image_size' => '_original',
'default_argument_php' => '',
'validate_argument_node_type' => array(
'image' => 0,
'club' => 0,
'club_topic' => 0,
'page' => 0,
'profile' => 0,
'story' => 0,
'vehicle' => 0,
),
'validate_argument_node_access' => 0,
'validate_argument_nid_type' => 'nid',
'validate_argument_vocabulary' => array(
'1' => 0,
'3' => 0,
),
'validate_argument_type' => 'tid',
'validate_argument_transform' => 0,
'validate_user_restrict_roles' => 0,
'validate_argument_node_flag_name' => '*relationship*',
'validate_argument_node_flag_test' => 'flaggable',
'validate_argument_node_flag_id_type' => 'id',
'validate_argument_user_flag_name' => '*relationship*',
'validate_argument_user_flag_test' => 'flaggable',
'validate_argument_user_flag_id_type' => 'id',
'image_size' => array(
'_original' => '_original',
'thumbnail' => 'thumbnail',
'preview' => 'preview',
'home' => 'home',
'expanded' => 'expanded',
'block_icon' => 'block_icon',
'club_grid' => 'club_grid',
'full' => 'full',
),
'validate_argument_is_member' => 'OG_VIEWS_DO_NOT_VALIDATE_MEMBERSHIP',
'validate_argument_group_node_type' => array(
'club' => 0,
),
'validate_argument_php' => '',
'override' => array(
'button' => 'Override',
),
),
));
$handler->override_option('filters', array(
'status' => array(
'operator' => '=',
'value' => '1',
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'id' => 'status',
'table' => 'node',
'field' => 'status',
'relationship' => 'none',
),
));
$handler->override_option('access', array(
'type' => 'none',
));
$handler->override_option('cache', array(
'type' => 'none',
));
$handler = $view->new_display('page', 'Page', 'page_1');
$handler->override_option('path', 'flags/lists/%');
$handler->override_option('menu', array(
'type' => 'none',
'title' => '',
'description' => '',
'weight' => 0,
'name' => 'navigation',
));
$handler->override_option('tab_options', array(
'type' => 'none',
'title' => '',
'description' => '',
'weight' => 0,
'name' => 'navigation',
));
$views[$view->name] = $view;
return $views;
}

View File

@@ -0,0 +1,26 @@
<?php
/**
* @file
* Provide list fid argument handler.
*/
/**
* Argument handler to accept a list id.
*/
class flag_lists_handler_argument_fid extends views_handler_argument_numeric {
/**
* Override the behavior of title(). Get the title of the list.
*/
function title_query() {
$titles = array();
$result = db_select('flag_lists_flags', 'fl')
->fields('fl', array('title'))
->condition('fl.fid', $this->value, 'IN')
->execute();
foreach ($result as $term) {
$titles[] = check_plain($term->title);
}
return $titles;
}
}

View File

@@ -0,0 +1,56 @@
<?php
// $I$
/**
* @file
* Contains the basic 'list title' field handler.
*/
/**
* Field handler to provide simple renderer that allows linking to a list.
*/
class flag_lists_handler_field_list extends views_handler_field {
/**
* Constructor to provide additional field to add.
*/
function construct() {
parent::construct();
$this->additional_fields['fid'] = array('table' => 'flag_lists_flags', 'field' => 'fid');
$this->additional_fields['uid'] = array('table' => 'flag_lists_flags', 'field' => 'uid');
}
function option_definition() {
$options = parent::option_definition();
$options['link_to_list'] = array('default' => FALSE);
return $options;
}
/**
* Provide link to list option
*/
function options_form(&$form, &$form_state) {
parent::options_form($form, $form_state);
$form['link_to_list'] = array(
'#title' => t('Link this field to its list'),
'#description' => t('This will override any other link you have set.'),
'#type' => 'checkbox',
'#default_value' => !empty($this->options['link_to_list']),
);
}
/**
* Render whatever the data is as a link to the list.
*
* Data should be made XSS safe prior to calling this function.
*/
function render_link($data, $values) {
if (!empty($this->options['link_to_list']) && $data !== NULL && $data !== '') {
$this->options['alter']['make_link'] = TRUE;
$this->options['alter']['path'] = "user/" . $values->{$this->aliases['uid']} . "/flags/lists/" . $values->{$this->aliases['fid']};
}
return $data;
}
function render($values) {
return $this->render_link(check_plain($values->{$this->field_alias}), $values);
}
}

View File

@@ -0,0 +1,50 @@
<?php
// $I$
/**
* @file
* Contains the basic 'list delete' field handler.
*/
/**
* Field handler to provide simple renderer that links to the list edit page.
*/
class flag_lists_handler_field_list_delete extends views_handler_field {
function construct() {
parent::construct();
$this->additional_fields['fid'] = 'fid';
}
function option_definition() {
$options = parent::option_definition();
$options['text'] = array('default' => '', 'translatable' => TRUE);
return $options;
}
function options_form(&$form, &$form_state) {
parent::options_form($form, $form_state);
$form['text'] = array(
'#type' => 'textfield',
'#title' => t('Text to display'),
'#default_value' => $this->options['text'],
);
}
function query() {
$this->ensure_my_table();
$this->add_additional_fields();
}
function render($values) {
$fid = $values->{$this->aliases['fid']};
// Check delete access.
if (!flag_lists_is_owner('delete', $fid)) {
return;
}
$text = !empty($this->options['text']) ? $this->options['text'] : t('delete');
return l($text, "flags/lists/delete/" . $fid, array('query' => drupal_get_destination()));
}
}

View File

@@ -0,0 +1,50 @@
<?php
// $I$
/**
* @file
* Contains the basic 'list edit' field handler.
*/
/**
* Field handler to provide simple renderer that links to the list edit page.
*/
class flag_lists_handler_field_list_edit extends views_handler_field {
function construct() {
parent::construct();
$this->additional_fields['fid'] = 'fid';
}
function option_definition() {
$options = parent::option_definition();
$options['text'] = array('default' => '', 'translatable' => TRUE);
return $options;
}
function options_form(&$form, &$form_state) {
parent::options_form($form, $form_state);
$form['text'] = array(
'#type' => 'textfield',
'#title' => t('Text to display'),
'#default_value' => $this->options['text'],
);
}
function query() {
$this->ensure_my_table();
$this->add_additional_fields();
}
function render($values) {
$fid = $values->{$this->aliases['fid']};
// Check edit access.
if (!flag_lists_is_owner('edit', $fid)) {
return;
}
$text = !empty($this->options['text']) ? $this->options['text'] : t('edit');
return l($text, "flags/lists/edit/" . $fid, array('query' => drupal_get_destination()));
}
}

View File

@@ -0,0 +1,94 @@
<?php
class flag_lists_handler_field_ops extends views_handler_field {
function option_definition() {
$options = parent::option_definition();
$options['flo'] = array(
'contains' => array(
'force_single' => array('default' => FALSE),
'operation' => array('default' => 'flag'),
),
);
return $options;
}
function options_form(&$form, &$form_state) {
parent::options_form($form, $form_state);
$form['flo'] = array(
'#type' => 'fieldset',
'#title' => t('Flag lists operations'),
'#collapsible' => FALSE,
'#collapsed' => FALSE,
);
$form['flo']['force_single'] = array(
'#type' => 'checkbox',
'#title' => t('Force single'),
'#default_value' => $this->options['flo']['force_single'],
'#description' => t('Check this box to restrict selection to a single value.'),
);
$form['flo']['operation'] = array(
'#type' => 'radios',
'#title' => t('Operation'),
'#default_value' => $this->options['flo']['operation'],
'#description' => t('The flag lists operation for this selection.'),
'#options' => array(
'flag' => 'Add to list',
'unflag' => 'Remove from list',
),
'#required' => TRUE,
);
}
/**
* If the view is using a table style, provide a
* placeholder for a "select all" checkbox.
*/
function label() {
if ($this->view->style_plugin instanceof views_plugin_style_table && !$this->options['flo']['force_single']) {
return '<!--flag-lists-ops-select-all-->';
}
else {
return parent::label();
}
}
function render($values) {
return '<!--form-item-' . $this->options['id'] . '--' . $this->view->row_index . '-->';
}
function views_form(&$form, &$form_state) {
// The view is empty, abort.
if (empty($this->view->result)) {
return;
}
$form[$this->options['id']] = array(
'#tree' => TRUE,
);
// At this point, the query has already been run, so we can access the results
// in order to get the base key value (for example, nid for nodes).
foreach ($this->view->result as $row_index => $row) {
$entity_id = $this->get_value($row);
if ($this->options['flo']['force_single']) {
$form[$this->options['id']][$row_index] = array(
'#type' => 'radio',
'#parents' => array($this->options['id']),
'#return_value' => $entity_id,
);
}
else {
$form[$this->options['id']][$row_index] = array(
'#type' => 'checkbox',
'#return_value' => $entity_id . (isset($row->flag_lists_flags_fid) ? ('-' . $row->flag_lists_flags_fid) : ''),
'#default_value' => FALSE,
'#attributes' => array('class' => array('flo-select')),
);
}
}
}
}

View File

@@ -0,0 +1,55 @@
<?php
// $I$
/**
* @file
* Contains the basic 'list template' field handler.
*/
/**
* Field handler to provide simple renderer that allows linking to a list's template flag.
*/
class flag_lists_handler_field_template extends views_handler_field {
/**
* Constructor to provide additional field to add.
*/
function construct() {
parent::construct();
$this->additional_fields['name'] = array('table' => 'flags', 'field' => 'name');
}
function option_definition() {
$options = parent::option_definition();
$options['link_to_template'] = array('default' => FALSE);
return $options;
}
/**
* Provide link to list option
*/
function options_form(&$form, &$form_state) {
parent::options_form($form, $form_state);
$form['link_to_template'] = array(
'#title' => t('Link this field to its list template'),
'#description' => t('This will override any other link you have set.'),
'#type' => 'checkbox',
'#default_value' => !empty($this->options['link_to_template']),
);
}
/**
* Render whatever the data is as a link to the list.
*
* Data should be made XSS safe prior to calling this function.
*/
function render_link($data, $values) {
if (!empty($this->options['link_to_template']) && $data !== NULL && $data !== '') {
$this->options['alter']['make_link'] = TRUE;
$this->options['alter']['path'] = "admin/build/flags/edit/" . $values->{$this->aliases['name']};
}
return $data;
}
function render($values) {
return $this->render_link(check_plain($values->{$this->field_alias}), $values);
}
}

View File

@@ -0,0 +1,65 @@
<?php
/**
* @file flag_lists_handler_field_template_types.inc
* Field handler to provide a list of template node types.
*/
class flag_lists_handler_field_template_types extends views_handler_field_prerender_list {
function construct() {
parent::construct();
$this->additional_fields['name'] = array('table' => 'flags', 'field' => 'name');
}
function query() {
$this->add_additional_fields();
$this->field_alias = $this->aliases['name'];
}
function pre_render($values) {
$names = array();
$this->items = array();
foreach ($values as $result) {
$names[] = $result->{$this->aliases['name']};
}
if (count($names)) {
$query = db_select('flag_lists_types', 'flt');
$query->innerJoin('flags', 'f', 'flt.name = f.name');
$result = $query->fields('flt', array('type', 'name'))
->condition('f.name', $names, 'IN')
->orderBy('flt.type')
->execute();
foreach ($result as $type) {
$this->items[$type->name][$type->type] = check_plain($type->type);
}
}
}
function render($values) {
$field = $values->{$this->field_alias};
if (!empty($this->items[$field])) {
if ($this->options['type'] == 'separator') {
return implode($this->sanitize_value($this->options['separator']), $this->items[$field]);
}
else {
return theme('item_list',
array(
'items' => $this->items[$field],
'title' => NULL,
'type' => $this->options['type']
));
}
}
}
function get_value($values, $field = NULL, $raw = FALSE) {
if ($raw) {
return parent::get_value($values, $field);
}
$item = $this->get_items($values);
$item = (array) $item;
if (isset($field) && isset($item[$field])) {
return $item[$field];
}
return $item;
}
}

View File

@@ -0,0 +1,17 @@
<?php
/**
* @file flag_lists_handler_filter_template.inc
* Filter by list template
*/
class flag_lists_handler_filter_template extends views_handler_filter_in_operator {
function get_value_options() {
if (!isset($this->value_options)) {
$this->value_title = t('List templates');
$templates = flag_lists_get_templates();
foreach ($templates as $template) {
$options[$template->name] = $template->name;
}
$this->value_options = $options;
}
}
}