Drupal views: view group members (organic groups)

Wie ooit al in Drupal met Views heeft liggen knoeien, weet dat het niet gemakkelijk is om, bijvoorbeeld, alle leden van een groep in een block af te drukken.
Welnu, na een avond van gevloek en frustraties (ik wist dat het kon, ik had het al ooit eens gedaan, maar wist niet meer hoe) ben ik er dan toch in geslaagd het aan de praat te krijgen zoals het hoort.
Om de medemens en -niet in de laatste plaats- mezelf, het in de toekomst gemakkelijker te maken, kun je hieronder de code gewoon (gratis en voor niks! 😉 ) knippen en plakken.

Ohja, en doe daarna je vrouw/vriendin de groeten, ze zal blij zijn dat je ook aan haar denkt 😉

$view = new view;
$view->name = 'og_members_block';
$view->description = 'Member listing block';
$view->tag = 'og';
$view->view_php = '';
$view->base_table = 'users';
$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(
  'picture' => array(
    'id' => 'picture',
    'table' => 'users',
    'field' => 'picture',
    'label' => '',
    'relationship' => 'none',
  ),
  'name' => array(
    'id' => 'name',
    'table' => 'users',
    'field' => 'name',
    'label' => '',
    'link_to_user' => 1,
    'relationship' => 'none',
  ),
  'is_admin' => array(
    'id' => 'is_admin',
    'table' => 'og_uid',
    'field' => 'is_admin',
    'label' => '',
    'relationship' => 'none',
  ),
));
$handler->override_option('sorts', array(
  'created' => array(
    'id' => 'created',
    'table' => 'og_uid',
    'field' => 'created',
    'order' => 'DESC',
    'granularity' => 'second',
    'relationship' => 'none',
  ),
));
$handler->override_option('arguments', array(
  'nid' => array(
    'default_action' => 'default',
    'style_plugin' => 'default_summary',
    'style_options' => array(
      'count' => TRUE,
      'override' => FALSE,
      'items_per_page' => 25,
    ),
    'wildcard' => 'all',
    'wildcard_substitution' => 'Alle',
    'title' => '',
    'default_argument_type' => 'php',
    'default_argument' => '',
    'validate_type' => 'og_group_types',
    'validate_fail' => 'empty',
    'break_phrase' => 0,
    'not' => 0,
    'id' => 'nid',
    'table' => 'og_uid',
    'field' => 'nid',
    'add_table' => 0,
    'relationship' => 'none',
    'default_argument_fixed' => '39',
    'default_argument_php' => 'if ($node = og_get_group_context()) {
                return $node->nid;
              }
              else {
                return NULL;
              }',
    'validate_argument_node_type' => array(
      'poll' => 0,
      'event' => 0,
      'group' => 0,
      'page' => 0,
      'startpagina' => 0,
      'story' => 0,
    ),
    'validate_argument_php' => '',
    'require_value' => 0,
    'reduce_duplicates' => 0,
    'validate_argument_vocabulary' => array(
      '1' => 0,
      '2' => 0,
      '3' => 0,
      '4' => 0,
    ),
    'validate_argument_type' => 'tid',
    'default_argument_user' => 0,
    'validate_argument_node_access' => 0,
    'validate_argument_nid_type' => 'nid',
    'validate_argument_is_member' => 0,
    'default_options_div_prefix' => '',
  ),
));
$handler->override_option('filters', array(
  'is_admin' => array(
    'operator' => 'not in',
    'value' => array(
      '1' => '1',
    ),
    'group' => 0,
    'exposed' => FALSE,
    'expose' => array(
      'operator' => FALSE,
      'label' => '',
    ),
    'id' => 'is_admin',
    'table' => 'og_uid',
    'field' => 'is_admin',
    'relationship' => 'none',
    'expose_button' => array(
      'button' => 'Expose',
    ),
  ),
));
$handler->override_option('access', array(
  'type' => 'none',
  'role' => array(),
  'perm' => '',
));
$handler->override_option('title', 'Recent members');
$handler->override_option('empty', 'Niet gevonden');
$handler->override_option('empty_format', '1');
$handler->override_option('use_pager', '1');
$handler->override_option('style_plugin', 'list');
$handler->override_option('style_options', array(
  'type' => 'ul',
));
$handler->override_option('row_options', array(
  'inline' => array(
    'name' => 'name',
    'is_admin' => 'is_admin',
  ),
  'separator' => ' ',
));
$handler = $view->new_display('block', 'Block Admins', 'block');
$handler->override_option('title', 'Group admins');
$handler->override_option('block_description', 'Group admins');
$handler->override_option('block_caching', -1);
$handler = $view->new_display('block', 'Block Admins, Members', 'block_1');
$handler->override_option('block_description', 'Group members');
$handler->override_option('block_caching', -1);

Eén Reactie

  1. Drupal Meester

    Dankjewel, mijn vrouw vond het erg fijn!

Leave a reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.