public static function type_form_validation($mform, $data, $errors) { if (!empty($data['filters']) && !json_decode($data['filters'])) { $errors['filters'] = get_string('invalid_filters', 'repository_entermedia'); } try { $client = new Client(array('base_uri' => $data['uri'] . 'mediadb/services/')); $response = $client->get('system/systemstatus'); if ($response->getStatusCode() === 200) { $body = json_decode($response->getBody()); if (!$body || $body->response->status !== 'ok') { $errors['uri'] = get_string('uri_notok', 'repository_entermedia'); } } else { $errors['uri'] = get_string('uri_statuscode', 'repository_entermedia') . $response->getStatusCode(); } } catch (GuzzleException $e) { $errors['uri'] = get_string('uri_exception', 'repository_entermedia'); } if (isset($data['autologin_enable'])) { if (!repository_entermedia::static_try_login($data['uri'], $data['autologin_user'], $data['autologin_password'])) { $errors['autologin_enable'] = get_string('autologin_error', 'repository_entermedia'); } } // A little bit hacky to empty the cache here... $cache = cache::make('repository_entermedia', 'filters'); $cache->delete('filters'); return parent::type_form_validation($mform, $data, $errors); }