<?php // This file is part of Moodle - http://moodle.org/ // // Moodle is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Moodle is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Moodle. If not, see <http://www.gnu.org/licenses/>. /** * This code processes switch device requests-> ... -> Theme selector UI. * * This script doesn't require login as not logged in users should still * be able to switch the device theme they are using. * * @package core * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require '../config.php'; $url = required_param('url', PARAM_LOCALURL); $newdevice = required_param('device', PARAM_TEXT); require_sesskey(); core_useragent::set_user_device_type($newdevice); redirect($url);
/** * Allows the user to switch the device they are seeing the theme for. * This allows mobile users to switch back to the default theme, or theme for any other device. * * @deprecated since 2.6 * @param string $newdevice The device the user is currently using. * @return string The device the user has switched to */ function set_user_device_type($newdevice) { debugging('set_user_device_type has been deprecated, please update your code to use core_useragent instead.', DEBUG_DEVELOPER); return core_useragent::set_user_device_type($newdevice); }
/** * This function will test custom device detection regular expression setting. */ public function test_devicedetectregex() { global $CFG; $this->resetAfterTest(); // Check config currently empty. $this->assertEmpty(json_decode($CFG->devicedetectregex)); $this->assertTrue(core_useragent::set_user_device_type('tablet')); $exceptionoccured = false; try { core_useragent::set_user_device_type('featurephone'); } catch (moodle_exception $e) { $exceptionoccured = true; } $this->assertTrue($exceptionoccured); // Set config and recheck. $config = array('featurephone' => '(Symbian|MIDP-1.0|Maemo|Windows CE)'); $CFG->devicedetectregex = json_encode($config); core_useragent::instance(true); // Clears singleton cache. $this->assertTrue(core_useragent::set_user_device_type('tablet')); $this->assertTrue(core_useragent::set_user_device_type('featurephone')); }