You are here

class context_reaction_theme in Context 6.3

Same name and namespace in other branches
  1. 6 plugins/context_reaction_theme.inc \context_reaction_theme
  2. 7.3 plugins/context_reaction_theme.inc \context_reaction_theme

Expose themes as context reactions.

Hierarchy

Expanded class hierarchy of context_reaction_theme

2 string references to 'context_reaction_theme'
_context_context_plugins in ./context.plugins.inc
Context plugins.
_context_context_registry in ./context.plugins.inc
Context registry.

File

plugins/context_reaction_theme.inc, line 6

View source
class context_reaction_theme extends context_reaction {

  /**
   * Editor form.
   */
  function editor_form($context) {
    $form = $this
      ->options_form($context);

    // Hide descriptions which take up too much space.
    unset($form['title']['#description']);
    unset($form['subtitle']['#description']);
    unset($form['class']['#description']);
    return $form;
  }

  /**
   * Submit handler for editor form.
   */
  function editor_form_submit($context, $values) {
    return $values;
  }

  /**
   * Allow admins to provide a section title, section subtitle and section class.
   */
  function options_form($context) {
    $values = $this
      ->fetch_from_context($context);
    $form = array(
      '#tree' => TRUE,
      '#title' => t('Theme variables'),
      'title' => array(
        '#title' => t('Section title'),
        '#description' => t('Provides this text as a <strong>$section_title</strong> variable for display in page.tpl.php when this context is active.'),
        '#type' => 'textfield',
        '#maxlength' => 255,
        '#default_value' => isset($values['title']) ? $values['title'] : '',
      ),
      'subtitle' => array(
        '#title' => t('Section subtitle'),
        '#description' => t('Provides this text as a <strong>$section_subtitle</strong> variable for display in page.tpl.php when this context is active.'),
        '#type' => 'textfield',
        '#maxlength' => 255,
        '#default_value' => isset($values['subtitle']) ? $values['subtitle'] : '',
      ),
      'class' => array(
        '#title' => t('Section class'),
        '#description' => t('Provides this text as an additional body class (in <strong>$body_classes</strong> in page.tpl.php) when this section is active.'),
        '#type' => 'textfield',
        '#maxlength' => 64,
        '#default_value' => isset($values['class']) ? $values['class'] : '',
      ),
    );
    return $form;
  }

  /**
   * Set 'section_title', and 'section_subtitle' if not set and merge all
   * additional classes onto the 'body_classes'.
   */
  function execute(&$vars) {
    $classes = array();
    foreach ($this
      ->get_contexts() as $k => $v) {
      if (!empty($v->reactions[$this->plugin]['title']) && !isset($vars['section_title'])) {
        $vars['section_title'] = check_plain(t($v->reactions[$this->plugin]['title']));
      }
      if (!empty($v->reactions[$this->plugin]['subtitle']) && !isset($vars['section_subtitle'])) {
        $vars['section_subtitle'] = check_plain(t($v->reactions[$this->plugin]['subtitle']));
      }
      if (!empty($v->reactions[$this->plugin]['class'])) {
        $classes[$v->reactions[$this->plugin]['class']] = $v->reactions[$this->plugin]['class'];
      }
    }
    $vars['body_classes'] .= !empty($classes) ? ' ' . check_plain(implode(' ', $classes)) : '';
  }

}

Members

Namesort descending Modifiers Type Description Overrides
context_reaction::$description property
context_reaction::$plugin property
context_reaction::$title property
context_reaction::fetch_from_context function Retrieve options from the context provided.
context_reaction::get_contexts function Retrieve active contexts that have values for this reaction.
context_reaction::options_form_submit function Options form submit handler. 3
context_reaction::settings_form function Settings form. Provide variable settings for your reaction. 1
context_reaction::__clone function Clone our references when we're being cloned.
context_reaction::__construct function Constructor. Do not override.
context_reaction_theme::editor_form function Editor form.
context_reaction_theme::editor_form_submit function Submit handler for editor form.
context_reaction_theme::execute function Set 'section_title', and 'section_subtitle' if not set and merge all additional classes onto the 'body_classes'.
context_reaction_theme::options_form function Allow admins to provide a section title, section subtitle and section class. Overrides context_reaction::options_form