Skip to content
context_reaction_delta.inc 1.04 KiB
Newer Older
Sebastian Siemssen's avatar
Sebastian Siemssen committed
<?php

/**
 * Expose themes as context reactions.
 */
class context_reaction_delta extends context_reaction {
  /**
   * @todo
   */
  function options_form($context) {
    $values = $this->fetch_from_context($context);
    $options = delta_layout_options();

    $form = array(
      '#tree' => TRUE,
      '#title' => t('Delta Override Template'),
    );

    $form['delta'] = array(
      '#type' => count($options) > 10 ? 'select' : 'radios',
      '#title' => t('Select Custom theme settings template.'),
      '#default_value' => isset($values['delta']) ? $values['delta'] : '',
      '#options' => $options,
      '#required' => TRUE,
    );
    
    return $form;
  }

  /**
   * @todo
   */
  function execute() {
    global $delta, $theme_key;
    
    foreach (context_active_contexts() as $context) {
      if (!empty($context->reactions['delta']) && delta_valid($context->reactions['delta']['delta'], $theme_key)) {
Sebastian Siemssen's avatar
Sebastian Siemssen committed
        $delta = $context->reactions['delta']['delta'];
        
        delta_inject_settings($delta, $theme_key);
      }
    }
  }
}