Berichten over ‘drupal’

Drupal views: view group members (organic groups)

Sunday, 21 December 2008

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);

Drupal views: upcoming events per Organic Group

Saturday, 14 March 2009

Je wilt de komende evenementen van een bepaalde groep in een blok tonen op je Drupal website?
En je hebt al uren liggen knoeien met de instellingen?
Probleem opgelost! Importeer volgende code bij je views et voila…
Vergeet zeker je views cache niet te legen wanneer het “now” keyword niet wil werken 😉

$view = new view;
$view->name = 'og_event';
$view->description = 'Volgende keer block';
$view->tag = 'volgende keer';
$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(
'field_datum_value' => array(
'label' => '',
'alter' => array(
'alter_text' => 0,
'text' => '',
'make_link' => 0,
'path' => '',
'alt' => '',
'prefix' => '',
'suffix' => '',
'help' => '',
'trim' => 0,
'max_length' => '',
'word_boundary' => 1,
'ellipsis' => 1,
'html' => 0,
),
'link_to_node' => 0,
'label_type' => 'none',
'format' => 'default',
'multiple' => array(
'multiple_number' => '',
'multiple_from' => '',
'multiple_to' => '',
'group' => TRUE,
),
'repeat' => array(
'show_repeat_rule' => '',
),
'fromto' => array(
'fromto' => 'value',
),
'exclude' => 0,
'id' => 'field_datum_value',
'table' => 'node_data_field_datum',
'field' => 'field_datum_value',
'override' => array(
'button' => 'Override',
),
'relationship' => 'none',
),
'title' => array(
'label' => '',
'alter' => array(
'alter_text' => 0,
'text' => '',
'make_link' => 1,
'path' => '',
'alt' => '',
'prefix' => '',
'suffix' => '',
'help' => '',
'trim' => 0,
'max_length' => '',
'word_boundary' => 1,
'ellipsis' => 1,
'html' => 0,
),
'link_to_node' => 1,
'exclude' => 0,
'id' => 'title',
'table' => 'node',
'field' => 'title',
'relationship' => 'none',
'override' => array(
'button' => 'Override',
),
),
));
$handler->override_option('sorts', array(
'field_datum_value' => array(
'id' => 'field_datum_value',
'table' => 'node_data_field_datum',
'field' => 'field_datum_value',
),
));
$handler->override_option('arguments', array(
'group_nid' => array(
'id' => 'group_nid',
'table' => 'og_ancestry',
'field' => 'group_nid',
),
'date_argument' => array(
'default_action' => 'ignore',
'style_plugin' => 'default_summary',
'style_options' => array(),
'wildcard' => 'all',
'wildcard_substitution' => 'Alle',
'title' => '',
'default_argument_type' => 'date',
'default_argument' => '',
'validate_type' => 'none',
'validate_fail' => 'not found',
'date_fields' => array(
'node_data_field_datum.field_datum_value' => 'node_data_field_datum.field_datum_value',
'node_data_field_toeterdate.field_toeterdate_value' => 'node_data_field_toeterdate.field_toeterdate_value',
),
'year_range' => '-3:+3',
'date_method' => 'OR',
'granularity' => 'month',
'id' => 'date_argument',
'table' => 'node',
'field' => 'date_argument',
'override' => array(
'button' => 'Override',
),
'relationship' => 'none',
'default_options_div_prefix' => '',
'default_argument_user' => 0,
'default_argument_fixed' => '',
'default_argument_php' => '',
'validate_argument_node_type' => array(
'poll' => 0,
'faq' => 0,
'event' => 0,
'event2' => 0,
'event3' => 0,
'group' => 0,
'page' => 0,
'startpagina' => 0,
'story' => 0,
),
'validate_argument_node_access' => 0,
'validate_argument_nid_type' => 'nid',
'user_argument_type' => '',
'restrict_user_roles' => 0,
'user_roles' => array(),
'validate_argument_is_member' => 0,
'validate_argument_php' => '',
),
));
$handler->override_option('access', array(
'type' => 'none',
));
$handler->override_option('title', 'Volgende keer');
$handler->override_option('footer', '<br />');
$handler->override_option('footer_format', '2');
$handler->override_option('footer_empty', 0);
$handler->override_option('empty', 'Geen vergaderingen gevonden.');
$handler->override_option('empty_format', '2');
$handler->override_option('items_per_page', 1);
$handler->override_option('use_more', 1);
$handler = $view->new_display('block', 'Blok', 'block_1');
$handler->override_option('filters', array(
'picg' => array(
'operator' => '=',
'value' => '',
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'id' => 'picg',
'table' => 'og_ancestry',
'field' => 'picg',
'override' => array(
'button' => 'Use default',
),
'relationship' => 'none',
),
'date_filter' => array(
'operator' => '>=',
'value' => array(
'value' => '2009-03-14 00:00:00',
'min' => NULL,
'max' => NULL,
'default_date' => 'now',
'default_to_date' => '',
),
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'date_fields' => array(
'node_data_field_datum.field_datum_value' => 'node_data_field_datum.field_datum_value',
),
'date_method' => 'OR',
'granularity' => 'day',
'form_type' => 'date_select',
'default_date' => 'now',
'default_to_date' => '',
'year_range' => '-3:+3',
'id' => 'date_filter',
'table' => 'node',
'field' => 'date_filter',
'override' => array(
'button' => 'Use default',
),
'relationship' => 'none',
),
));
$handler->override_option('block_description', '');
$handler->override_option('block_caching', -1);

Tips voor Drupal

Saturday, 13 June 2009

Verschillende tekst voor ingelogde en niet ingelogde gebruikers

<?php 
if (user_is_logged_in()) {
	//message to logged-in user
} else {
	//message to anonymous user
}
?>

Drupal views: upcoming event block

Monday, 22 June 2009
$view = new view;
$view->name = 'og_event';
$view->description = 'Volgende keer block';
$view->tag = 'volgende keer';
$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' => 1,
'path' => '',
'alt' => '',
'prefix' => '',
'suffix' => '',
'help' => '',
'trim' => 0,
'max_length' => '',
'word_boundary' => 1,
'ellipsis' => 1,
'html' => 0,
),
'link_to_node' => 1,
'exclude' => 0,
'id' => 'title',
'table' => 'node',
'field' => 'title',
'relationship' => 'none',
'override' => array(
'button' => 'Override',
),
),
'field_datum_value' => array(
'id' => 'field_datum_value',
'table' => 'node_data_field_datum',
'field' => 'field_datum_value',
),
));
$handler->override_option('sorts', array(
'field_datum_value' => array(
'order' => 'ASC',
'delta' => -1,
'id' => 'field_datum_value',
'table' => 'node_data_field_datum',
'field' => 'field_datum_value',
'relationship' => 'none',
),
));
$handler->override_option('arguments', array(
'group_nid' => array(
'default_action' => 'default',
'style_plugin' => 'default_summary',
'style_options' => array(),
'wildcard' => 'all',
'wildcard_substitution' => 'Alle',
'title' => '',
'breadcrumb' => '',
'default_argument_type' => 'php',
'default_argument' => '',
'validate_type' => 'og_group_types',
'validate_fail' => 'not found',
'break_phrase' => 0,
'not' => 0,
'id' => 'group_nid',
'table' => 'og_ancestry',
'field' => 'group_nid',
'validate_user_argument_type' => 'uid',
'validate_user_roles' => array(
'2' => 0,
'5' => 0,
'3' => 0,
'4' => 0,
),
'relationship' => 'none',
'default_options_div_prefix' => '',
'default_argument_user' => 0,
'default_argument_fixed' => '',
'default_argument_php' => 'if ($node = og_get_group_context()) {
return $node->nid;
}
else {
return NULL;
}',
'validate_argument_node_type' => array(
'event2' => 'event2',
'poll' => 0,
'faq' => 0,
'event' => 0,
'group' => 0,
'page' => 0,
'startpagina' => 0,
'story' => 0,
'takpagina' => 0,
),
'validate_argument_node_access' => 0,
'validate_argument_nid_type' => 'nid',
'validate_user_restrict_roles' => 0,
'validate_argument_is_member' => 0,
'validate_argument_php' => '',
'override' => array(
'button' => 'Override',
),
),
));
$handler->override_option('filters', array(
'date_filter' => array(
'operator' => '=',
'value' => array(
'min' => NULL,
'max' => NULL,
'value' => NULL,
'default_date' => 'now',
'default_to_date' => '',
),
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'date_fields' => array(
'node_data_field_datum.field_datum_value' => 'node_data_field_datum.field_datum_value',
),
'date_method' => 'OR',
'granularity' => 'day',
'form_type' => 'date_popup',
'default_date' => 'now',
'default_to_date' => '',
'year_range' => '-3:+3',
'id' => 'date_filter',
'table' => 'node',
'field' => 'date_filter',
'relationship' => 'none',
),
));
$handler->override_option('access', array(
'type' => 'none',
));
$handler->override_option('cache', array(
'type' => 'none',
));
$handler->override_option('header', '
<h2><img style="position: relative; top: 5px; height: 26px; width: 26px;" src="/files/toeter.gif" alt="toeter" /> Volgende keer</h2>
');
$handler->override_option('header_format', '2');
$handler->override_option('header_empty', 1);
$handler->override_option('footer', '
');
$handler->override_option('footer_format', '2');
$handler->override_option('footer_empty', 0);
$handler->override_option('empty', 'Geen vergaderingen gevonden.');
$handler->override_option('empty_format', '2');
$handler->override_option('items_per_page', 1);
$handler->override_option('use_more', 1);
$handler = $view->new_display('block', 'Blok', 'block_1');
$handler->override_option('filters', array(
'type' => array(
'operator' => 'in',
'value' => array(
'event2' => 'event2',
),
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'id' => 'type',
'table' => 'node',
'field' => 'type',
'relationship' => 'none',
),
'date_filter' => array(
'operator' => '>=',
'value' => array(
'value' => NULL,
'min' => NULL,
'max' => NULL,
'default_date' => 'now',
'default_to_date' => '',
),
'group' => '0',
'exposed' => FALSE,
'expose' => array(
'operator' => FALSE,
'label' => '',
),
'date_fields' => array(
'node_data_field_datum.field_datum_value' => 'node_data_field_datum.field_datum_value',
),
'date_method' => 'OR',
'granularity' => 'day',
'form_type' => 'date_popup',
'default_date' => 'now',
'default_to_date' => '',
'year_range' => '-3:+3',
'id' => 'date_filter',
'table' => 'node',
'field' => 'date_filter',
'override' => array(
'button' => 'Use default',
),
'relationship' => 'none',
),
));
$handler->override_option('block_description', '');
$handler->override_option('block_caching', -1);

Drupal 7 tabs (klasse toevoegen)

Wednesday, 2 May 2012

Soms zijn er zo van die dagen waarop je letterlijk uren verschijt (pardon my French) om simpele zaken op te lossen. Stel bijvoorbeeld dat je, gewoon omdat je absoluut met bootstrap wil werken, een klasse wil toevoegen aan Drupal tabs. Gewoon. Een klasse toevoegen.

Geen probleem, we zoeken onze template.php op en typen naar hartelust: (bron: http://drupal.org/node/173880)

function MYTHEME_menu_local_tasks() {
$output = '';
if ($primary = menu_local_tasks()) {
    $output .= "<ul class=\"tabs primary nav nav-tabs\">\n"
    $output .= $primary;
    $output .= "</ul>\n";
}
return $output;
}

Oeps! render($tabs); die in onze page.tpl.php normaal voor onze tabs zou moeten zorgen geeft ons doodleuk “array” terug als resultaat.

We ontmoeten Google, onze goede vriend in tijden van crisis en problemen, en ontdekken dat drupal_render($output) zowaar een mirakeloplossing is. (bron: http://drupal.org/node/986290)
Testen die handel! En jawel hoor, dat doet het…. tot je effectief ook klikt op de netjes van de juiste klasse voorziene tabs. Oeps 2!

    Warning: Invalid argument supplied for foreach() in element_children() (regel 6244 van /Users/..xxx../includes/common.inc).
    Warning: Cannot use a scalar value as an array in drupal_render() (regel 5723 van /Users/..xxx../includes/common.inc).
    Warning: Cannot use a scalar value as an array in drupal_render() (regel 5778 van /Users/..xxx../includes/common.inc).

Een error kleurt ons scherm rood en dat wil nu eenmaal zeggen: niet goed!

Terug op zoek. En deze keer werkt het wel. In je page.tpl.php laat je gewoon die render($tabs) staan en in template.php voeg je volgende code toe: (bron: http://drupal.org/project/basic )

function MYTHEME_menu_local_tasks(&$variables) {
$output = '';
if (!empty($variables['primary'])) {
$variables['primary']['#prefix'] = '<h2>' . t('Primary tabs') . '</h2>';
$variables['primary']['#prefix'] .= '<ul class="nav nav-tabs tabs primary clearfix">';
$variables['primary']['#suffix'] = '</ul>';
$output .= drupal_render($variables['primary']);
}
if (!empty($variables['secondary'])) {
$variables['secondary']['#prefix'] = '<h2>' . t('Secondary tabs') . '</h2>';
$variables['secondary']['#prefix'] .= '<ul>';
$variables['secondary']['#suffix'] = '</ul>';
$output .= drupal_render($variables['secondary']);
}
return $output;
}

waar MYTHEME uiteraard vervangen moet worden door de naam van je theme.

Voila, u heeft zonet uren zoekplezier bespaard. 😉