diff --git a/memcache_admin/memcache_admin.install b/memcache_admin/memcache_admin.install index 7c5c7118b208c699aba65e4fe9ea881884748183..e05e5aa98d5a18060f16e9779f523dfbf501d2d2 100644 --- a/memcache_admin/memcache_admin.install +++ b/memcache_admin/memcache_admin.install @@ -5,6 +5,38 @@ * Update functions for memcache_admin. */ +/** + * Implements hook_requirements(). + */ +function memcache_admin_requirements($phase) { + // Ensure translations don't break during installation. + $t = get_t(); + + $requirements = array(); + + if ($phase == 'install') { + if (!function_exists('dmemcache_object_cluster')) { + $requirements['memcache_admin'] = array( + 'title' => $t('Memcache admin'), + 'value' => $t('cache_backends not properly configured in settings.php, failed to load required file memcache.inc.'), + 'description' => $t('You must properly configure cache_backends in %settings before enabling the memcache_admin module. Please review %readme for more information.', array('%settings' => 'settings.php', '%readme' => 'README.txt')), + 'severity' => REQUIREMENT_ERROR, + ); + } + } + else if ($phase == 'runtime') { + if (!function_exists('dmemcache_object_cluster') && module_exists('memcache_admin')) { + $requirements['memcache_admin'] = array( + 'title' => $t('Memcache admin'), + 'value' => $t('cache_backends not properly configured in settings.php, failed to load required file memcache.inc.'), + 'description' => $t('You have enabled the memcache_admin module without properly configuring cache_backends in %settings. Please review %readme for more information.', array('%settings' => 'settings.php', '%readme' => 'README.txt')), + 'severity' => REQUIREMENT_WARNING, + ); + } + } + return $requirements; +} + /** * Flush caches and rebuild menu to allow new stats pages to appear. */ diff --git a/memcache_admin/memcache_admin.module b/memcache_admin/memcache_admin.module index 1d6227974ba851539c42abf818579c25f26e5521..4eba54b68fbb07fe1d5055ffab546dc1d0ddf482 100644 --- a/memcache_admin/memcache_admin.module +++ b/memcache_admin/memcache_admin.module @@ -60,7 +60,7 @@ function memcache_admin_menu() { $memcache_servers = variable_get('memcache_servers', array('127.0.0.1:11211' => 'default')); $clusters = array(); foreach ($memcache_servers as $server => $bin) { - if ($cluster = dmemcache_object_cluster($bin)) { + if (function_exists('dmemcache_object_cluster') && $cluster = dmemcache_object_cluster($bin)) { $name = $cluster['cluster']; $clusters[$name]['servers'][] = $server; $clusters[$name]['bin'] = _memcache_admin_get_bin_for_cluster($cluster['cluster']);