diff --git a/cache/stores/memcache/addinstanceform.php b/cache/stores/memcache/addinstanceform.php index 984966a8b56..eb7c999a1be 100644 --- a/cache/stores/memcache/addinstanceform.php +++ b/cache/stores/memcache/addinstanceform.php @@ -49,7 +49,8 @@ class cachestore_memcache_addinstance_form extends cachestore_addinstance_form { $form->addElement('text', 'prefix', get_string('prefix', 'cachestore_memcache'), array('maxlength' => 5, 'size' => 5)); $form->addHelpButton('prefix', 'prefix', 'cachestore_memcache'); - $form->setType('prefix', PARAM_ALPHAEXT); + $form->setType('prefix', PARAM_TEXT); // We set to text but we have a rule to limit to alphanumext. $form->setDefault('prefix', 'mdl_'); + $form->addRule('prefix', get_string('prefixinvalid', 'cachestore_memcache'), 'regex', '#^[a-zA-Z0-9\-_]+$#'); } } \ No newline at end of file diff --git a/cache/stores/memcache/lang/en/cachestore_memcache.php b/cache/stores/memcache/lang/en/cachestore_memcache.php index 5cba887de78..fb87d289836 100644 --- a/cache/stores/memcache/lang/en/cachestore_memcache.php +++ b/cache/stores/memcache/lang/en/cachestore_memcache.php @@ -31,6 +31,7 @@ $string['prefix'] = 'Key prefix'; $string['prefix_help'] = 'This prefix is used for all key names on the memcache server. * If you only have one Moodle instance using this server, you can leave this value default. * Due to key length restrictions, a maximum of 5 characters is permitted.'; +$string['prefixinvalid'] = 'Invalid prefix. You can only use a-z A-Z 0-9-_.'; $string['servers'] = 'Servers'; $string['servers_help'] = 'This sets the servers that should be utilised by this memcache adapter. Servers should be defined one per line and consist of a server address and optionally a port and weight. diff --git a/cache/stores/memcache/lib.php b/cache/stores/memcache/lib.php index 882ab3775cb..2e104bd6385 100644 --- a/cache/stores/memcache/lib.php +++ b/cache/stores/memcache/lib.php @@ -404,7 +404,7 @@ class cachestore_memcache extends cache_store implements cache_is_configurable { * Generates an instance of the cache store that can be used for testing. * * @param cache_definition $definition - * @return false + * @return cachestore_memcache|false */ public static function initialise_test_instance(cache_definition $definition) { if (!self::are_requirements_met()) { diff --git a/cache/stores/memcached/addinstanceform.php b/cache/stores/memcached/addinstanceform.php index 293b1988153..c833a18bbae 100644 --- a/cache/stores/memcached/addinstanceform.php +++ b/cache/stores/memcached/addinstanceform.php @@ -60,8 +60,9 @@ class cachestore_memcached_addinstance_form extends cachestore_addinstance_form $form->setType('serialiser', PARAM_INT); $form->addElement('text', 'prefix', get_string('prefix', 'cachestore_memcached'), array('size' => 16)); - $form->setType('prefix', PARAM_ALPHANUM); + $form->setType('prefix', PARAM_TEXT); // We set to text but we have a rule to limit to alphanumext. $form->addHelpButton('prefix', 'prefix', 'cachestore_memcached'); + $form->addRule('prefix', get_string('prefixinvalid', 'cachestore_memcached'), 'regex', '#^[a-zA-Z0-9\-_]+$#'); $hashoptions = cachestore_memcached::config_get_hash_options(); $form->addElement('select', 'hash', get_string('hash', 'cachestore_memcached'), $hashoptions); diff --git a/cache/stores/memcached/lang/en/cachestore_memcached.php b/cache/stores/memcached/lang/en/cachestore_memcached.php index 67c3cd22ec2..87713f6755d 100644 --- a/cache/stores/memcached/lang/en/cachestore_memcached.php +++ b/cache/stores/memcached/lang/en/cachestore_memcached.php @@ -42,6 +42,7 @@ $string['hash_murmur'] = 'Murmur'; $string['pluginname'] = 'Memcached'; $string['prefix'] = 'Prefix key'; $string['prefix_help'] = 'This can be used to create a "domain" for your item keys allowing you to create multiple memcached stores on a single memcached installation. It cannot be longer than 16 characters in order to ensure key length issues are not encountered.'; +$string['prefixinvalid'] = 'Invalid prefix. You can only use a-z A-Z 0-9-_.'; $string['serialiser_igbinary'] = 'The igbinary serializer.'; $string['serialiser_json'] = 'The JSON serializer.'; $string['serialiser_php'] = 'The default PHP serializer.'; diff --git a/cache/stores/memcached/lib.php b/cache/stores/memcached/lib.php index 4f96fda5f14..a74dc83e053 100644 --- a/cache/stores/memcached/lib.php +++ b/cache/stores/memcached/lib.php @@ -444,7 +444,7 @@ class cachestore_memcached extends cache_store implements cache_is_configurable * Generates an instance of the cache store that can be used for testing. * * @param cache_definition $definition - * @return false + * @return cachestore_memcached|false */ public static function initialise_test_instance(cache_definition $definition) {