332
includes/flag_lists.views.inc
Normal file
332
includes/flag_lists.views.inc
Normal 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;
|
||||
}
|
864
includes/flag_lists.views_default.inc
Normal file
864
includes/flag_lists.views_default.inc
Normal 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;
|
||||
}
|
26
includes/flag_lists_handler_argument_fid.inc
Normal file
26
includes/flag_lists_handler_argument_fid.inc
Normal 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;
|
||||
}
|
||||
}
|
||||
|
56
includes/flag_lists_handler_field_list.inc
Normal file
56
includes/flag_lists_handler_field_list.inc
Normal 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);
|
||||
}
|
||||
}
|
50
includes/flag_lists_handler_field_list_delete.inc
Normal file
50
includes/flag_lists_handler_field_list_delete.inc
Normal 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()));
|
||||
}
|
||||
}
|
50
includes/flag_lists_handler_field_list_edit.inc
Normal file
50
includes/flag_lists_handler_field_list_edit.inc
Normal 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()));
|
||||
}
|
||||
}
|
94
includes/flag_lists_handler_field_ops.inc
Normal file
94
includes/flag_lists_handler_field_ops.inc
Normal 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')),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
55
includes/flag_lists_handler_field_template.inc
Normal file
55
includes/flag_lists_handler_field_template.inc
Normal 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);
|
||||
}
|
||||
}
|
65
includes/flag_lists_handler_field_template_types.inc
Normal file
65
includes/flag_lists_handler_field_template_types.inc
Normal 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;
|
||||
}
|
||||
}
|
17
includes/flag_lists_handler_filter_template.inc
Normal file
17
includes/flag_lists_handler_filter_template.inc
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user