You are here

function cache_actions_action_clear_panels_mini_cache in Cache Actions 7

Same name and namespace in other branches
  1. 6.2 cache_actions.rules.inc \cache_actions_action_clear_panels_mini_cache()
  2. 6 cache_actions.rules.inc \cache_actions_action_clear_panels_mini_cache()

Clear the cache of the specified mini panel.

Parameters

array $mini_panels the name of the mini panels.:

2 string references to 'cache_actions_action_clear_panels_mini_cache'
cache_actions_rules_action_info in ./cache_actions.rules.inc
Implementation of hook_rules_action_info().
cache_actions_test_rules_defaults in cache_actions_test/cache_actions_test.rules_defaults.inc
Implementation of hook_rules_defaults(). Below are the rules needed for the testing.

File

./cache_actions.rules.inc, line 514
This file provides the rules integration for this module.

Code

function cache_actions_action_clear_panels_mini_cache($mini_panels) {
  if (module_exists('panels_mini')) {
    ctools_include('plugins', 'panels');
    foreach ($mini_panels as $name) {
      $panel = panels_mini_load($name);

      // Don't load a display if we already have it.
      if (isset($panel->display)) {
        $display = $panel->display;
      }
      else {
        $display = panels_load_display($panel->did);
      }
      if (is_object($display)) {
        panels_clear_cached_content($display);
      }
      else {
        watchdog('cache_actions', "The mini panel variant %panel doesn't exist.\n          You need to look over your rules and see if there's any rules\n          involving that panel.", array(
          '%panel' => $display,
        ), WATCHDOG_ERROR);
      }
    }
  }
}