og_subgroups_views_handler_field_parents.inc in Subgroups for Organic groups 6
File
modules/og_subgroups_views/includes/og_subgroups_views_handler_field_parents.inc
View source
<?php
class og_subgroups_views_handler_field_parents extends views_handler_field_prerender_list {
function init(&$view, $options) {
parent::init($view, $options);
$this->additional_fields['node_nid'] = array(
'table' => 'node',
'field' => 'nid',
);
$this->additional_fields['og_subgroups_parent'] = array(
'table' => 'og_subgroups',
'field' => 'parent',
);
}
function query() {
$this
->add_additional_fields();
}
function options_form(&$form, &$form_state) {
parent::options_form($form, $form_state);
$form['link'] = array(
'#type' => 'checkbox',
'#title' => t('Link to the parent groups'),
'#default_value' => isset($this->options['link']) ? $this->options['link'] : 1,
);
}
function option_definition() {
$options = parent::option_definition();
$options['link'] = array(
'default' => isset($this->definition['link default']) ? $this->definition['link default'] : FALSE,
);
return $options;
}
function pre_render($values) {
og_subgroups_include('tree');
$this->field_alias = $this->aliases['node_nid'];
foreach ($values as $value) {
$parents = og_subgroups_get_group_parents($value);
foreach ($parents as $nid => $parent) {
if ($this->options['link']) {
$this->items[$value->nid][$parent->nid] = l($parent->title, "node/{$parent->nid}");
}
else {
$this->items[$value->nid][$parent->nid] = $parent->title;
}
}
}
}
}