| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | 
							- <?php
 
- /**
 
-  * Base class for a context reaction.
 
-  */
 
- class context_reaction {
 
-   var $plugin;
 
-   var $title;
 
-   var $description;
 
-   /**
 
-    * Clone our references when we're being cloned.
 
-    *
 
-    * PHP 5.3 performs 'shallow' clones when clone()'ing objects, meaning that
 
-    * any objects or arrays referenced by this object will not be copied, the
 
-    * cloned object will just reference our objects/arrays instead. By iterating
 
-    * over our properties and serializing and unserializing them, we force PHP to
 
-    * copy them.
 
-    */
 
-   function __clone() {
 
-     foreach ($this as $key => $val) {
 
-       if (is_object($val) || (is_array($val))) {
 
-         $this->{$key} = unserialize(serialize($val));
 
-       }
 
-     }
 
-   }
 
-   /**
 
-    * Constructor. Do not override.
 
-    */
 
-   function __construct($plugin, $info) {
 
-     $this->plugin = $plugin;
 
-     $this->title = isset($info['title']) ? $info['title'] : $plugin;
 
-     $this->description = isset($info['description']) ? $info['description'] : '';
 
-   }
 
-   function options_form($context) {
 
-     return array();
 
-   }
 
-   /**
 
-    * Options form submit handler.
 
-    */
 
-   function options_form_submit($values) {
 
-     return $values;
 
-   }
 
-   /**
 
-    * Settings form. Provide variable settings for your reaction.
 
-    */
 
-   function settings_form() {
 
-     return array();
 
-   }
 
-   /**
 
-    * Public method that is called from hooks or other integration points with
 
-    * Drupal. Note that it is not implemented in the base class, allowing
 
-    * extending classes to change the function signature if necessary.
 
-    *
 
-    * function execute($value) {
 
-    *   foreach ($this->get_contexts($value) as $context) {
 
-    *     $this->condition_met($context, $value);
 
-    *   }
 
-    * }
 
-    */
 
-   /**
 
-    * Retrieve active contexts that have values for this reaction.
 
-    */
 
-   function get_contexts() {
 
-     $contexts = array();
 
-     foreach (context_active_contexts() as $context) {
 
-       if ($this->fetch_from_context($context)) {
 
-         $contexts[$context->name] = $context;
 
-       }
 
-     }
 
-     return $contexts;
 
-   }
 
-   /**
 
-    * Retrieve options from the context provided.
 
-    */
 
-   function fetch_from_context($context) {
 
-     return isset($context->reactions[$this->plugin]) ? $context->reactions[$this->plugin] : array();
 
-   }
 
- }
 
 
  |