nextcloud/lib/base.php

113 lines
3.4 KiB
PHP
Raw Normal View History

2010-03-10 15:03:40 +03:00
<?php
/**
2011-04-15 21:24:23 +04:00
* ownCloud
*
* @author Frank Karlitschek
* @copyright 2010 Frank Karlitschek karlitschek@kde.org
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation; either
* version 3 of the License, or any later version.
*
* This library 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 AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
2010-03-10 15:03:40 +03:00
2011-07-27 21:07:28 +04:00
// Get rid of this stupid require_once OC_...
function OC_autoload($className) {
if(strpos($className,'OC_')===0) {
require_once strtolower(str_replace('_','/',substr($className,3)) . '.php');
}
}
spl_autoload_register('OC_autoload');
2010-03-10 15:03:40 +03:00
// set some stuff
//ob_start();
2011-04-16 22:07:57 +04:00
error_reporting(E_ALL | E_STRICT);
2010-06-29 16:53:54 +04:00
2010-03-10 15:03:40 +03:00
date_default_timezone_set('Europe/Berlin');
ini_set('arg_separator.output','&amp;');
ini_set('session.cookie_httponly','1;');
session_start();
// calculate the documentroot
$SERVERROOT=substr(__FILE__,0,-13);
2010-06-27 20:09:59 +04:00
$DOCUMENTROOT=realpath($_SERVER['DOCUMENT_ROOT']);
$SERVERROOT=str_replace("\\",'/',$SERVERROOT);
2010-06-27 20:09:59 +04:00
$SUBURI=substr(realpath($_SERVER["SCRIPT_FILENAME"]),strlen($SERVERROOT));
$scriptName=$_SERVER["SCRIPT_NAME"];
2011-07-27 22:04:42 +04:00
if(substr($scriptName,-1)=='/'){
$scriptName.='index.php';
}
$WEBROOT=substr($scriptName,0,strlen($scriptName)-strlen($SUBURI));
2010-06-27 02:16:09 +04:00
2010-06-27 20:09:59 +04:00
2010-06-27 02:16:09 +04:00
if($WEBROOT!='' and $WEBROOT[0]!=='/'){
$WEBROOT='/'.$WEBROOT;
}
// set the right include path
2011-04-16 12:12:53 +04:00
set_include_path($SERVERROOT.'/lib'.PATH_SEPARATOR.$SERVERROOT.'/config'.PATH_SEPARATOR.$SERVERROOT.'/3dparty'.PATH_SEPARATOR.get_include_path().PATH_SEPARATOR.$SERVERROOT);
// define runtime variables - unless this already has been done
if( !isset( $RUNTIME_NOSETUPFS )){
$RUNTIME_NOSETUPFS = false;
}
if( !isset( $RUNTIME_NOAPPS )){
$RUNTIME_NOAPPS = false;
}
2011-04-16 14:18:42 +04:00
// TODO: we should get rid of this one, too
// WARNING: to make everything even more confusing, DATADIRECTORY is a var that
// changes and DATATIRECTORY_ROOT stays the same, but is set by
// "datadirectory". Any questions?
$CONFIG_DATADIRECTORY = OC_CONFIG::getValue( "datadirectory", "$SERVERROOT/data" );
2010-03-10 15:03:40 +03:00
// redirect to https site if configured
2011-04-16 14:18:42 +04:00
if( OC_CONFIG::getValue( "forcessl", false )){
if(!isset($_SERVER['HTTPS']) or $_SERVER['HTTPS'] != 'on') {
$url = "https://". $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
header("Location: $url");
2011-04-16 14:18:42 +04:00
exit();
}
2010-03-10 15:03:40 +03:00
}
$error=(count(OC_UTIL::checkServer())>0);
2011-07-27 22:04:42 +04:00
// User and Groups
if( !OC_CONFIG::getValue( "installed", false )){
$_SESSION['user_id'] = '';
}
OC_USER::useBackend( OC_CONFIG::getValue( "userbackend", "database" ));
2011-04-16 14:18:42 +04:00
OC_GROUP::setBackend( OC_CONFIG::getValue( "groupbackend", "database" ));
2011-07-27 22:04:42 +04:00
// Was in required file ... put it here
OC_FILESYSTEM::registerStorageType('local','OC_FILESTORAGE_LOCAL',array('datadir'=>'string'));
// Set up file system unless forbidden
if(!$error and !$RUNTIME_NOSETUPFS ){
OC_UTIL::setupFS();
}
2010-03-10 15:03:40 +03:00
// Add the stuff we need always
2011-07-26 01:16:05 +04:00
OC_UTIL::addScript( "jquery-1.6.2.min" );
OC_UTIL::addScript( "jquery-ui-1.8.14.custom.min" );
OC_UTIL::addScript( "js" );
2011-07-26 01:16:05 +04:00
OC_UTIL::addStyle( "jquery-ui-1.8.14.custom" );
OC_UTIL::addStyle( "styles" );
2011-03-04 01:08:11 +03:00
// Load Apps
if(!$error and !$RUNTIME_NOAPPS ){
OC_APP::loadApps();
}