Move formfactor code to OC_Template

This commit is contained in:
Bart Visscher 2012-06-18 12:57:11 +02:00
parent 79f9d61ec8
commit 332603a263
2 changed files with 37 additions and 34 deletions

View File

@ -95,31 +95,6 @@ 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 initPaths(){
// calculate the root directories
OC::$SERVERROOT=str_replace("\\",'/',substr(__FILE__,0,-13));
@ -237,15 +212,6 @@ class OC{
}
public static function initTemplateEngine() {
// 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.7.2.min" );
OC_Util::addScript( "jquery-ui-1.8.16.custom.min" );

View File

@ -166,11 +166,48 @@ class OC_Template{
$this->findTemplate($name);
}
/**
* 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 use 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);
}
/**
* @brief Returns the formfactor extension for current formfactor
*/
static public function getFormFactorExtension()
{
// if the formfactor is not yet autodetected do the
// autodetection now. For possible formfactors check the
// detectFormfactor documentation
if(!isset($_SESSION['formfactor'])){
$_SESSION['formfactor'] = self::detectFormfactor();
}
// allow manual override via GET parameter
if(isset($_GET['formfactor'])){
$_SESSION['formfactor']=$_GET['formfactor'];
}
$formfactor=$_SESSION['formfactor'];
if($formfactor=='default') {
$fext='';