function ctools_object_cache_set

Store an object in the non-volatile ctools cache.

Parameters

$obj: A 128 character or less string to define what kind of object is being stored; primarily this is used to prevent collisions.

$name: The name of the object being stored.

$cache: The object to be cached. This will be serialized prior to writing.

$sid: The session id, allowing someone to use Session API or their own solution; defaults to session_id().

7 calls to ctools_object_cache_set()
CtoolsObjectCache::testObjectStorage in tests/object_cache.test
ctools_ajax_sample_cache_set in ctools_ajax_sample/ctools_ajax_sample.module
Store our little cache so that we can retain data from form to form.
ctools_cache_simple_cache_set in plugins/cache/simple.inc
ctools_export_ui::edit_cache_set_key in plugins/export_ui/ctools_export_ui.class.php
ctools_stylizer_set_settings_cache in includes/stylizer.inc
Store changes to a task handler in the object cache.

... See full list

File

includes/object-cache.inc, line 71

Code

function ctools_object_cache_set($obj, $name, $cache, $sid = NULL) {
  // Store the CTools session id in the user session to force a
  // session for anonymous users in Drupal 7 and Drupal 6 Pressflow.
  // see http://drupal.org/node/562374, http://drupal.org/node/861778
  if (empty($GLOBALS['user']->uid) && empty($_SESSION['ctools_session_id'])) {
    $_SESSION['ctools_hold_session'] = TRUE;
  }
  ctools_object_cache_clear($obj, $name, $sid);
  if (!$sid) {
    $sid = session_id();
  }
  db_insert('ctools_object_cache')->fields(array(
    'sid' => $sid,
    'obj' => $obj,
    'name' => md5($name),
    'data' => serialize($cache),
    'updated' => REQUEST_TIME,
  ))
    ->execute();
}