summaryrefslogtreecommitdiffstats
path: root/lib/base.php
diff options
context:
space:
mode:
authorFrank Karlitschek <karlitschek@kde.org>2012-01-06 17:21:24 +0100
committerFrank Karlitschek <karlitschek@kde.org>2012-01-06 17:21:24 +0100
commitf9db4249a3a7b73f6c712cfa32b029e6d09595f5 (patch)
tree48cb2c1f129d489681180c9027b524346c4c782d /lib/base.php
parentf18e866a1e152a1fb13cb883d89d8efde413cea9 (diff)
downloadnextcloud-server-f9db4249a3a7b73f6c712cfa32b029e6d09595f5.tar.gz
nextcloud-server-f9db4249a3a7b73f6c712cfa32b029e6d09595f5.zip
add a formfactor session variable which is autodetected but can also manually overwritten via a get variable.
currently we have: * default -> the normal desktop browser interface * mobile -> interface for smartphones * tablet -> interface for tablets * standalone -> the default interface but without header, footer and sidebar. just the application. useful to use just a specific app on the desktop in a standalone window. In the future we should adapt the userinterface to the specific formfactor.
Diffstat (limited to 'lib/base.php')
-rw-r--r--lib/base.php37
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/base.php b/lib/base.php
index 700236c96c6..0954e3615bd 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -70,6 +70,31 @@ class OC{
}
}
+ /**
+ * autodetects the formfactor of the used device
+ * default -> the normal desktop browser interface
+ * mobile -> interface for smartphones
+ * tablet -> interface for tablets
+ * standalone -> the default interface but without header, footer and sidebar. just the application. useful to ue just a specific app on the desktop in a standalone window.
+ */
+ public static function detectFormfactor(){
+ // please add more useragent strings for other devices
+ if(isset($_SERVER['HTTP_USER_AGENT'])){
+ if(stripos($_SERVER['HTTP_USER_AGENT'],'ipad')>0) {
+ $mode='tablet';
+ }elseif(stripos($_SERVER['HTTP_USER_AGENT'],'iphone')>0){
+ $mode='mobile';
+ }elseif((stripos($_SERVER['HTTP_USER_AGENT'],'N9')>0) and (stripos($_SERVER['HTTP_USER_AGENT'],'nokia')>0)){
+ $mode='mobile';
+ }else{
+ $mode='default';
+ }
+ }else{
+ $mode='default';
+ }
+ return($mode);
+ }
+
public static function init(){
// register autoloader
spl_autoload_register(array('OC','autoload'));
@@ -130,6 +155,16 @@ class OC{
ini_set('session.cookie_httponly','1;');
session_start();
+ // if the formfactor is not yet autodetected do the autodetection now. For possible forfactors check the detectFormfactor documentation
+ if(!isset($_SESSION['formfactor'])){
+ $_SESSION['formfactor']=OC::detectFormfactor();
+ }
+ // allow manual override via GET parameter
+ if(isset($_GET['formfactor'])){
+ $_SESSION['formfactor']=$_GET['formfactor'];
+ }
+
+
// Add the stuff we need always
OC_Util::addScript( "jquery-1.6.4.min" );
OC_Util::addScript( "jquery-ui-1.8.14.custom.min" );
@@ -214,5 +249,7 @@ if(!function_exists('get_temp_dir')) {
require_once('fakedirstream.php');
+
+
// FROM search.php
new OC_Search_Provider_File();