You are here

function advanced_forum_forum_context_create_forum in Advanced Forum 7.2

Same name and namespace in other branches
  1. 6.2 plugins/contexts/forum.inc \advanced_forum_forum_context_create_forum()

Create a context, either from manual configuration or from an argument on the URL.

Parameters

bool $empty: If true, just return an empty context.

array|null $data: If from settings form, an array as from a form. If from argument, a string.

array|bool $conf: TRUE if the $data is coming from admin configuration, FALSE if it's from a URL arg.

Return value

object. a Context object.

1 string reference to 'advanced_forum_forum_context_create_forum'
forum.inc in plugins/contexts/forum.inc
Plugin to provide a user context

File

plugins/contexts/forum.inc, line 43
Plugin to provide a user context

Code

function advanced_forum_forum_context_create_forum($empty, $data = NULL, $conf = FALSE) {
  $context = new ctools_context(array(
    'forum',
    'term',
  ));
  $context->plugin = 'forum';
  if ($empty) {
    return $context;
  }
  if ($conf) {
    if (!empty($data['tid'])) {
      $data = taxonomy_term_load($data['tid']);
    }
    else {
      $data = taxonomy_vocabulary_load(variable_get('forum_nav_vocabulary', 0));
      $data->tid = 0;
    }
  }
  if (!empty($data)) {
    $data->container = !$data->tid || in_array($data->tid, variable_get('forum_containers', array()));
    $context->data = clone $data;
    $context->title = $data->name;
    $context->argument = $data->tid;
    $context->vid = variable_get('forum_nav_vocabulary', '');
    $context->vocabulary = taxonomy_vocabulary_load($context->vid);
    if ($data->tid) {
      $context->parents = taxonomy_get_parents_all($data->tid);
    }
    return $context;
  }
}