Fix for context_ui_rebuild() where overridden contexts would not be reactivated corre...
authoryoung hahn
Sun, 30 Nov 2008 03:46:11 +0000 (03:46 +0000)
committeryoung hahn
Sun, 30 Nov 2008 03:46:11 +0000 (03:46 +0000)
context_ui/context_ui_admin.inc

index 1edd94c..d8303b5 100644 (file)
@@ -643,7 +643,15 @@ function context_ui_rebuild() {
       // db version and use the rest from code.
       if ($context) {
         $c->cid = $context->cid;
-        $c->status = $context->status;
+        // If status has been stored as overridden but user context no longer
+        // exists, we need to re-enable this system context.
+        if ($context->status == CONTEXT_OVERRIDDEN && !isset($ui[$c-namespace][$c->attribute][$c->value])) {
+          $c->status = CONTEXT_ENABLED;
+        }
+        // Otherwise, just use the stored status.
+        else {
+          $c->status = $context->status;
+        }
         context_ui_save($c);
         unset($system[$c->cid]); // remove this context from unused list
       }