| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 | 
							
- Context 3.x API
 
- ---------------
 
- The following is an overview of using the Context API.
 
- The context static cache
 
- ------------------------
 
- Context provides a centralized set of API functions for setting and retrieving a
 
- static cache:
 
-     // Set a static cache value at [my_namspace][mykey]
 
-     context_set('my_namespace', 'mykey', $value);
 
-     // Retrieve a static cache value at [my_namespace][mykey]
 
-     context_get('my_namespace', 'mykey'); // $value
 
-     // Boolean for whether there is a value at [my_namespace][mykey]
 
-     context_isset('my_namespace', 'mykey'); // TRUE
 
- These are used internally by context but may also be used by other modules. Just
 
- do not use the namespace `context` unless you want to affect things that context
 
- is up to.
 
- Adding a condition or reaction plugin
 
- -------------------------------------
 
- Both context conditions and reactions utilize the CTools plugins API. In order
 
- to add a new condition or reaction for your module, follow these steps:
 
- 1. Implement `hook_context_plugins()` to define your plugins, classes, and class
 
-   hierarchy.
 
-         function mymodule_context_plugins() {
 
-           $plugins = array();
 
-           $plugins['mymodule_context_condition_bar'] = array(
 
-             'handler' => array(
 
-               'path' => drupal_get_path('module', 'mymodule') .'/plugins',
 
-               'file' => 'mymodule_context_condition_bar.inc',
 
-               'class' => 'mymodule_context_condition_bar',
 
-               'parent' => 'context_condition',
 
-             ),
 
-           );
 
-           return $plugins;
 
-         }
 
- 2. Implement `hook_context_registry()` to define your conditions and/or
 
-   reactions and map them to plugins.
 
-         function mymodule_context_registry() {
 
-           return array(
 
-             'conditions' => array(
 
-               'bar' => array(
 
-                 'title' => t('Name of condition "bar"'),
 
-                 'plugin' => 'mymodule_context_condition_bar',
 
-               ),
 
-             ),
 
-           );
 
-         }
 
- 3. Write your condition or reaction plugin class. It's best to look at one of
 
-   the included plugins as a starting point.
 
- 4. Create a Drupal integration point for your plugin. A node page condition
 
-   plugin, for example, may be invoked from `hook_node_view()`. Typically a
 
-   Drupal integration point for a condition uses a Drupal hook to trigger
 
-   tests that determine whether context conditions are met for one or more
 
-   plug-ins. For example, this is how the context module itself uses
 
-   hook_init():
 
-         function context_init() {
 
-           if ($plugin = context_get_plugin('condition', 'path')) {
 
-             $plugin->execute();
 
-           }
 
-           if ($plugin = context_get_plugin('condition', 'language')) {
 
-             global $language;
 
-             $plugin->execute($language->language);
 
-           }
 
-           if ($plugin = context_get_plugin('condition', 'user')) {
 
-             global $user;
 
-             $plugin->execute($user);
 
-           }
 
-         }
 
-   This function first instantiates the Context module's path condition
 
-   plugin (filename context_condition_path.inc in the plugins directory),
 
-   and then uses that plugin's execute() method. The execute() method
 
-   determine whether any path conditions are met and, if so, it activates
 
-   the contexts that match those conditions. After setting contexts based
 
-   path conditions, the context_init() function then does the same thing
 
-   with the Context module's language and user condition plugins.
 
- Replacing or extending existing plugins
 
- ---------------------------------------
 
- You can replace a condition or reaction plugin with your own plugin class using
 
- `hook_context_registry_alter()`:
 
-     function mymodule_context_registry_alter(&$registry) {
 
-       if (!empty($registry['conditions']['node'])) {
 
-         $registry['conditions']['node']['plugin'] = 'mymodule_context_condition_customnode';
 
-       }
 
-     }
 
- This entry would swap out the default node condition plugin for a custom one
 
- provided by `mymodule`. Note that any replacement plugins must have an entry in
 
- `hook_context_plugins()`.
 
 
  |