[ Index ] |
PHP Cross Reference of moodle-2.8 |
[Summary view] [Print] [Text view]
1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 /** 18 * The library file for the memcached cache store. 19 * 20 * This file is part of the memcached cache store, it contains the API for interacting with an instance of the store. 21 * 22 * @package cachestore_memcached 23 * @copyright 2012 Sam Hemelryk 24 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 25 */ 26 27 defined('MOODLE_INTERNAL') || die(); 28 29 require_once($CFG->dirroot.'/cache/forms.php'); 30 require_once($CFG->dirroot.'/cache/stores/memcached/lib.php'); 31 32 /** 33 * Form for adding a memcached instance. 34 * 35 * @copyright 2012 Sam Hemelryk 36 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 37 */ 38 class cachestore_memcached_addinstance_form extends cachestore_addinstance_form { 39 40 /** 41 * Adds the desired form elements. 42 */ 43 protected function configuration_definition() { 44 $form = $this->_form; 45 46 $form->addElement('textarea', 'servers', get_string('servers', 'cachestore_memcached'), array('cols' => 75, 'rows' => 5)); 47 $form->addHelpButton('servers', 'servers', 'cachestore_memcached'); 48 $form->addRule('servers', get_string('required'), 'required'); 49 $form->setType('servers', PARAM_RAW); 50 51 $form->addElement('selectyesno', 'compression', get_string('usecompression', 'cachestore_memcached')); 52 $form->addHelpButton('compression', 'usecompression', 'cachestore_memcached'); 53 $form->setDefault('compression', 1); 54 $form->setType('compression', PARAM_BOOL); 55 56 $serialiseroptions = cachestore_memcached::config_get_serialiser_options(); 57 $form->addElement('select', 'serialiser', get_string('useserialiser', 'cachestore_memcached'), $serialiseroptions); 58 $form->addHelpButton('serialiser', 'useserialiser', 'cachestore_memcached'); 59 $form->setDefault('serialiser', Memcached::SERIALIZER_PHP); 60 $form->setType('serialiser', PARAM_INT); 61 62 $form->addElement('text', 'prefix', get_string('prefix', 'cachestore_memcached'), array('size' => 16)); 63 $form->setType('prefix', PARAM_TEXT); // We set to text but we have a rule to limit to alphanumext. 64 $form->addHelpButton('prefix', 'prefix', 'cachestore_memcached'); 65 $form->addRule('prefix', get_string('prefixinvalid', 'cachestore_memcached'), 'regex', '#^[a-zA-Z0-9\-_]+$#'); 66 67 $hashoptions = cachestore_memcached::config_get_hash_options(); 68 $form->addElement('select', 'hash', get_string('hash', 'cachestore_memcached'), $hashoptions); 69 $form->addHelpButton('hash', 'hash', 'cachestore_memcached'); 70 $form->setDefault('serialiser', Memcached::HASH_DEFAULT); 71 $form->setType('serialiser', PARAM_INT); 72 73 $form->addElement('selectyesno', 'bufferwrites', get_string('bufferwrites', 'cachestore_memcached')); 74 $form->addHelpButton('bufferwrites', 'bufferwrites', 'cachestore_memcached'); 75 $form->setDefault('bufferwrites', 0); 76 $form->setType('bufferwrites', PARAM_BOOL); 77 78 $form->addElement('header', 'clusteredheader', get_string('clustered', 'cachestore_memcached')); 79 80 $form->addElement('checkbox', 'clustered', get_string('clustered', 'cachestore_memcached')); 81 $form->setDefault('checkbox', false); 82 $form->addHelpButton('clustered', 'clustered', 'cachestore_memcached'); 83 84 $form->addElement('textarea', 'setservers', get_string('setservers', 'cachestore_memcached'), 85 array('cols' => 75, 'rows' => 5)); 86 $form->addHelpButton('setservers', 'setservers', 'cachestore_memcached'); 87 $form->disabledIf('setservers', 'clustered'); 88 $form->setType('setservers', PARAM_RAW); 89 } 90 91 /** 92 * Perform minimal validation on the settings form. 93 * 94 * @param array $data 95 * @param array $files 96 */ 97 public function validation($data, $files) { 98 $errors = parent::validation($data, $files); 99 100 if (isset($data['clustered']) && ($data['clustered'] == 1)) { 101 // Set servers is required with in cluster mode. 102 if (!isset($data['setservers'])) { 103 $errors['setservers'] = get_string('required'); 104 } else { 105 $trimmed = trim($data['setservers']); 106 if (empty($trimmed)) { 107 $errors['setservers'] = get_string('required'); 108 } 109 } 110 111 $validservers = false; 112 if (isset($data['servers'])) { 113 $servers = trim($data['servers']); 114 $servers = explode("\n", $servers); 115 if (count($servers) === 1) { 116 $validservers = true; 117 } 118 } 119 120 if (!$validservers) { 121 $errors['servers'] = get_string('serversclusterinvalid', 'cachestore_memcached'); 122 } 123 } 124 125 return $errors; 126 } 127 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:29:05 2014 | Cross-referenced by PHPXref 0.7.1 |