You are here

function _cacheflush_clear_preset in CacheFlush 7.3

Same name and namespace in other branches
  1. 7 cacheflush.inc \_cacheflush_clear_preset()
  2. 7.2 cacheflush.inc \_cacheflush_clear_preset()

Based on settings decide witch clear cache function to be called.

Parameters

int $preset_id: Preset id to do clear cache for.

4 calls to _cacheflush_clear_preset()
CacheFlushRulesEvents::testEvents in modules/cacheflush_rules/cacheflush_rules.test
Test the events.
cacheflush_clear_preset_menu_callback in ./cacheflush.api.inc
Call clear cache and send back.
cacheflush_rules_clear in modules/cacheflush_rules/cacheflush_rules.rules.inc
Rules action function.
drush_cacheflush_drush_cacheflush in modules/cacheflush_drush/cacheflush_drush.drush.inc
Callback function for drush cacheflush.
1 string reference to '_cacheflush_clear_preset'
cacheflush_cron_cronapi in modules/cacheflush_cron/cacheflush_cron.module
Implements hook_cronapi().

File

./cacheflush.api.inc, line 36
Cacheflusher module inc file with dinamic clear cache functions.

Code

function _cacheflush_clear_preset($preset_id) {
  $entity = cacheflush_load($preset_id);
  if (!$entity) {
    drupal_set_message(t('Invalid ID'), 'error');
    return;
  }
  if ($entity->status == 0) {
    drupal_set_message(t('This entity is disabled.'), 'error');
    drupal_access_denied();
    return;
  }

  // Call: hook_cacheflush_before_clear().
  module_invoke_all('cacheflush_before_clear', $entity);
  $presets = unserialize($entity->data);
  if ($presets) {
    foreach ($presets as $cache) {
      foreach ($cache['functions'] as $value) {
        call_user_func_array($value['#name'], $value['#params']);
      }
    }
  }
  drupal_set_message(t("All predefined cache options at @name was cleared.", array(
    '@name' => $entity->title,
  )));

  // Call: hook_cacheflush_after_clear().
  module_invoke_all('cacheflush_after_clear', $entity);
}