123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- <?php
- /**
- * @file
- * Hooks provided by Context.
- */
- /**
- * CTools plugin API hook for Context. Note that a proper entry in
- * hook_ctools_plugin_api() must exist for this hook to be called.
- */
- function hook_context_plugins() {
- $plugins = array();
- $plugins['foo_context_condition_bar'] = array(
- 'handler' => array(
- 'path' => drupal_get_path('module', 'foo') .'/plugins',
- 'file' => 'foo_context_condition_bar.inc',
- 'class' => 'foo_context_condition_bar',
- 'parent' => 'context_condition',
- ),
- );
- $plugins['foo_context_reaction_baz'] = array(
- 'handler' => array(
- 'path' => drupal_get_path('module', 'foo') .'/plugins',
- 'file' => 'foo_context_reaction_baz.inc',
- 'class' => 'foo_context_reaction_baz',
- 'parent' => 'context_reaction',
- ),
- );
- return $plugins;
- }
- /**
- * Registry hook for conditions & reactions.
- *
- * Each entry associates a condition or reaction with the CTools plugin to be
- * used as its plugin class.
- */
- function hook_context_registry() {
- return array(
- 'conditions' => array(
- 'bar' => array(
- 'title' => t('Name of condition "bar"'),
- 'plugin' => 'foo_context_condition_bar',
- ),
- ),
- 'reactions' => array(
- 'baz' => array(
- 'title' => t('Name of reaction "baz"'),
- 'plugin' => 'foo_context_reaction_baz',
- ),
- ),
- );
- }
- /**
- * Execute Context page conditions
- *
- * Allows modules to hook into Context's hook_page_build to execute their
- * conditions at an appropriate time before the firing of reactions.
- */
- function hook_context_page_condition() {
- if ($plugin = context_get_plugin('condition', 'bar')) {
- $plugin->execute();
- }
- }
- /**
- * Execute Context page reactions
- *
- * Allows modules to hook into Context's hook_page_build to execute their
- * reactions at an appropriate time after the firing of conditions.
- */
- function hook_context_page_reaction() {
- if ($plugin = context_get_plugin('reaction', 'baz')) {
- $plugin->execute();
- }
- }
- /**
- * Alter the registry.
- *
- * Allows modules to alter the registry. Default plugins can be replaced by
- * custom ones declared in hook_context_plugins().
- *
- * @param $registry
- * The registry, passed by reference.
- */
- function hook_context_registry_alter(&$registry) {
- if (isset($registry['reactions']['baz'])) {
- $registry['reactions']['baz']['plugin'] = 'custom_context_reaction_baz';
- }
- }
- /**
- * Alter/add a condition to a node-related event.
- *
- * Allows modules to add one or more context condition plugin executions to a
- * node view, form, etc.
- *
- * @param $node
- * The node object.
- * @param $op
- * The node-related operation: 'node', 'form', 'comment'.
- */
- function hook_context_node_condition_alter(&$node, $op) {
- if ($plugin = context_get_plugin('condition', 'bar')) {
- $plugin->execute($node, $op);
- }
- }
- /**
- * Alter a context directly after it has been loaded. Allows modules to alter
- * a context object's reactions. While you may alter conditions, this will
- * generally have no effect as conditions are cached for performance and
- * contexts are loaded after conditions are checked, not before.
- *
- * @param &$context
- * The context object by reference.
- */
- function hook_context_load_alter(&$context) {
- if ($context->name === 'foo' && isset($context->reactions['block'])) {
- $context->reactions['block']['blocks']['locale-0'] = array(
- 'module' => 'locale',
- 'delta' => '0',
- 'region' => 'header',
- 'weight' => '2',
- );
- }
- }
|