diff sites/all/modules/ctools/plugins/cache/export_ui.inc @ 0:ff03f76ab3fe

initial version
author danieleb <danielebarchiesi@me.com>
date Wed, 21 Aug 2013 18:51:11 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sites/all/modules/ctools/plugins/cache/export_ui.inc	Wed Aug 21 18:51:11 2013 +0100
@@ -0,0 +1,39 @@
+<?php
+
+/**
+ * @file
+ * A caching mechanism for use with subsystems that use the export ui.
+ */
+
+$plugin = array(
+  // cache plugins are the rare plugin types that have no real UI but
+  // we're providing a title just in case.
+  'title' => t('Export UI wizard cache'),
+  'cache get' => 'ctools_cache_export_ui_cache_get',
+  'cache set' => 'ctools_cache_export_ui_cache_set',
+  // Some operations use a 'finalize' but that really just means set
+  // for us, since we're not using temporary storage for subsystems.
+  'cache finalize' => 'ctools_cache_export_ui_cache_set',
+);
+
+function ctools_cache_export_ui_cache_get($plugin_name, $key) {
+  ctools_include('export-ui');
+  $plugin = ctools_get_export_ui($plugin_name);
+  $handler = ctools_export_ui_get_handler($plugin);
+  if ($handler) {
+    $item = $handler->edit_cache_get($key);
+    if (!$item) {
+      $item = ctools_export_crud_load($handler->plugin['schema'], $key);
+    }
+    return $item;
+  }
+}
+
+function ctools_cache_export_ui_cache_set($plugin_name, $key, $item) {
+  ctools_include('export-ui');
+  $plugin = ctools_get_export_ui($plugin_name);
+  $handler = ctools_export_ui_get_handler($plugin);
+  if ($handler) {
+    return $handler->edit_cache_set_key($item, $key);
+  }
+}