summaryrefslogtreecommitdiff
path: root/modules/gallery/helpers/module.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules/gallery/helpers/module.php')
-rw-r--r--modules/gallery/helpers/module.php91
1 files changed, 32 insertions, 59 deletions
diff --git a/modules/gallery/helpers/module.php b/modules/gallery/helpers/module.php
index 7863520e..2b446daa 100644
--- a/modules/gallery/helpers/module.php
+++ b/modules/gallery/helpers/module.php
@@ -35,7 +35,7 @@ class module_Core {
* @param integer $version
*/
static function set_version($module_name, $version) {
- $module = self::get($module_name);
+ $module = module::get($module_name);
if (!$module->loaded()) {
$module->name = $module_name;
$module->active = $module_name == "gallery"; // only gallery is active by default
@@ -62,7 +62,7 @@ class module_Core {
* not found
*/
static function info($module_name) {
- $module_list = self::available();
+ $module_list = module::available();
return isset($module_list->$module_name) ? $module_list->$module_name : false;
}
@@ -94,10 +94,10 @@ class module_Core {
$modules->$module_name =
new ArrayObject(parse_ini_file($file), ArrayObject::ARRAY_AS_PROPS);
$m =& $modules->$module_name;
- $m->installed = self::is_installed($module_name);
- $m->active = self::is_active($module_name);
+ $m->installed = module::is_installed($module_name);
+ $m->active = module::is_active($module_name);
$m->code_version = $m->version;
- $m->version = self::get_version($module_name);
+ $m->version = module::get_version($module_name);
$m->locked = false;
if ($m->active && $m->version != $m->code_version) {
@@ -107,7 +107,7 @@ class module_Core {
// Lock certain modules
$modules->gallery->locked = true;
- $identity_module = self::get_var("gallery", "identity_provider", "user");
+ $identity_module = module::get_var("gallery", "identity_provider", "user");
$modules->$identity_module->locked = true;
$modules->ksort();
self::$available = $modules;
@@ -258,7 +258,7 @@ class module_Core {
call_user_func_array(array($installer_class, "activate"), array());
}
- $module = self::get($module_name);
+ $module = module::get($module_name);
if ($module->loaded()) {
$module->active = true;
$module->save();
@@ -285,7 +285,7 @@ class module_Core {
call_user_func_array(array($installer_class, "deactivate"), array());
}
- $module = self::get($module_name);
+ $module = module::get($module_name);
if ($module->loaded()) {
$module->active = false;
$module->save();
@@ -312,7 +312,7 @@ class module_Core {
}
graphics::remove_rules($module_name);
- $module = self::get($module_name);
+ $module = module::get($module_name);
if ($module->loaded()) {
$module->delete();
}
@@ -425,48 +425,21 @@ class module_Core {
* @return the value
*/
static function get_var($module_name, $name, $default_value=null) {
- // We cache all vars in gallery._cache so that we can load all vars at once for
- // performance.
+ // We cache vars so we can load them all at once for performance.
if (empty(self::$var_cache)) {
- $row = db::build()
- ->select("value")
- ->from("vars")
- ->where("module_name", "=", "gallery")
- ->where("name", "=", "_cache")
- ->execute()
- ->current();
- if ($row) {
- self::$var_cache = unserialize($row->value);
- } else {
- // gallery._cache doesn't exist. Create it now.
+ self::$var_cache = Cache::instance()->get("var_cache");
+ if (empty(self::$var_cache)) {
+ // Cache doesn't exist, create it now.
foreach (db::build()
->select("module_name", "name", "value")
->from("vars")
->order_by("module_name")
->order_by("name")
->execute() as $row) {
- if ($row->module_name == "gallery" && $row->name == "_cache") {
- // This could happen if there's a race condition
- continue;
- }
// Mute the "Creating default object from empty value" warning below
@self::$var_cache->{$row->module_name}->{$row->name} = $row->value;
}
- $cache = ORM::factory("var");
- $cache->module_name = "gallery";
- $cache->name = "_cache";
- $cache->value = serialize(self::$var_cache);
- try {
- $cache->save();
- } catch (Database_Exception $e) {
- // There's a potential race condition here. Don't fail if that happens because it's
- // bound to be transient and not a huge deal, but at least put something in the logs.
- if (stristr($e->getMessage(), "duplicate entry")) {
- Kohana_Log::add("error", "Failed to cache vars");
- } else {
- throw $e;
- }
- }
+ Cache::instance()->set("var_cache", self::$var_cache, array("vars"));
}
}
@@ -495,11 +468,7 @@ class module_Core {
$var->value = $value;
$var->save();
- db::build()
- ->delete("vars")
- ->where("module_name", "=", "gallery")
- ->where("name", "=", "_cache")
- ->execute();
+ Cache::instance()->delete("var_cache");
self::$var_cache = null;
}
@@ -524,11 +493,7 @@ class module_Core {
->where("name", "=", $name)
->execute();
- db::build()
- ->delete("vars")
- ->where("module_name", "=", "gallery")
- ->where("name", "=", "_cache")
- ->execute();
+ Cache::instance()->delete("var_cache");
self::$var_cache = null;
}
@@ -538,19 +503,27 @@ class module_Core {
* @param string $name
*/
static function clear_var($module_name, $name) {
- $var = ORM::factory("var")
+ db::build()
+ ->delete("vars")
->where("module_name", "=", $module_name)
->where("name", "=", $name)
- ->find();
- if ($var->loaded()) {
- $var->delete();
- }
+ ->execute();
+
+ Cache::instance()->delete("var_cache");
+ self::$var_cache = null;
+ }
+ /**
+ * Remove all variables for this module.
+ * @param string $module_name
+ */
+ static function clear_all_vars($module_name) {
db::build()
->delete("vars")
- ->where("module_name", "=", "gallery")
- ->where("name", "=", "_cache")
+ ->where("module_name", "=", $module_name)
->execute();
+
+ Cache::instance()->delete("var_cache");
self::$var_cache = null;
}
@@ -559,6 +532,6 @@ class module_Core {
* @param string $module_name
*/
static function get_version($module_name) {
- return self::get($module_name)->version;
+ return module::get($module_name)->version;
}
}