You are here

function ccl_local_actions_ccl_cache_update in Custom Contextual Links 7

Same name and namespace in other branches
  1. 8 ccl_local_actions/ccl_local_actions.module \ccl_local_actions_ccl_cache_update()

Hook function triggered by the chache update routine of the main module.

File

ccl_local_actions/ccl_local_actions.module, line 197
Adds the ability to create local tasks with CCL.

Code

function ccl_local_actions_ccl_cache_update() {
  $actions = db_query("SELECT * FROM {ccl} WHERE type = :type", array(
    ':type' => 'local_actions',
  ));
  $la_cache = array();
  foreach ($actions as $action) {
    $action->options = unserialize($action->options);
    $advanced = array();
    if (isset($action->options['advanced_css'])) {
      $advanced['class'] = $action->options['advanced_css'];
    }
    if (isset($action->options['advanced_query'])) {
      $advanced['query'] = $action->options['advanced_query'];
    }
    if (isset($action->options['advanced_anchor'])) {
      $advanced['anchor'] = $action->options['advanced_anchor'];
    }
    if (isset($action->options['advanced_target']) && $action->options['advanced_target'] != "default") {
      $advanced['target'] = $action->options['advanced_target'];
    }
    if (isset($action->options['advanced_destination'])) {
      $advanced['destination'] = $action->options['advanced_destination'];
    }
    $la_cache[] = array(
      'title' => $action->title,
      'href' => $action->link,
      'advanced' => $advanced,
      'visibility' => array(
        'path' => $action->options['la_visibility'],
        'pages' => $action->options['la_pages'],
        'types' => $action->options['la_types'],
        'roles' => $action->options['la_roles'],
      ),
    );
  }
  cache_set('ccl_local_actions', $la_cache);
}