MDL-45724 cache: fixed warning structure bug
authorSam Hemelryk <sam@moodle.com>
Wed, 23 Jul 2014 03:16:20 +0000 (15:16 +1200)
committerSam Hemelryk <sam@moodle.com>
Wed, 23 Jul 2014 03:24:59 +0000 (15:24 +1200)
cache/admin.php
cache/classes/store.php
cache/stores/memcache/lib.php

index 827b137..775ce25 100644 (file)
@@ -280,7 +280,11 @@ if (!empty($action) && confirm_sesskey()) {
     }
 }
 
-$notifications = array_merge($notifications, cache_helper::warnings($stores));
+// Add cache store warnings to the list of notifications.
+// Obviously as these are warnings they are show as failures.
+foreach (cache_helper::warnings($stores) as $warning) {
+    $notifications[] = array($warning, false);
+}
 
 $PAGE->set_title($title);
 $PAGE->set_heading($SITE->fullname);
index 464df84..9d124d3 100644 (file)
@@ -372,11 +372,7 @@ abstract class cache_store implements cache_store_interface {
      * This should be used to notify things like configuration conflicts etc.
      * The warnings returned here will be displayed on the cache configuration screen.
      *
-     * @return array[] Returns an array of arrays with the format:
-     *     $notifications = array(
-     *         array('This is a success message', true),
-     *         array('This is a failure message', false),
-     *     );
+     * @return string[] An array of warning strings from the store instance.
      */
     public function get_warnings() {
         return array();
index 036da56..aa5c15d 100644 (file)
@@ -589,7 +589,7 @@ class cachestore_memcache extends cache_store implements cache_is_configurable {
             $host = array_shift($bits);
             $port = (count($bits)) ? array_shift($bits) : '11211';
             foreach ($this->servers as $server) {
-                if ($server[0] === $host && $server[1] === $port) {
+                if ($server[0] === $host && $server[1] == $port) {
                     $warnings[] = get_string('sessionhandlerconflict', 'cachestore_memcache', $this->my_name());
                     break;
                 }