<?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);
}
Beispiel #3
0
 /**
  * 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'));
 }