Merge pull request #5116 from owncloud/interfaces2
More Interfaces for the public api
This commit is contained in:
commit
0501a947bc
14 changed files with 425 additions and 91 deletions
25
lib/apphelper.php
Normal file
25
lib/apphelper.php
Normal file
|
@ -0,0 +1,25 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace OC;
|
||||
|
||||
/**
|
||||
* TODO: Description
|
||||
*/
|
||||
class AppHelper implements \OCP\IHelper {
|
||||
/**
|
||||
* Gets the content of an URL by using CURL or a fallback if it is not
|
||||
* installed
|
||||
* @param string $url the url that should be fetched
|
||||
* @return string the content of the webpage
|
||||
*/
|
||||
public function getUrlContent($url) {
|
||||
return \OC_Util::getUrlContent($url);
|
||||
}
|
||||
}
|
34
lib/l10n/factory.php
Normal file
34
lib/l10n/factory.php
Normal file
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace OC\L10N;
|
||||
|
||||
/**
|
||||
* TODO: Description
|
||||
*/
|
||||
class Factory {
|
||||
/**
|
||||
* cached instances
|
||||
*/
|
||||
protected $instances = array();
|
||||
|
||||
/**
|
||||
* get an L10N instance
|
||||
* @param $app string
|
||||
* @param $lang string|null
|
||||
* @return OC_L10N
|
||||
*/
|
||||
public function get($app) {
|
||||
if (!isset($this->instances[$app])) {
|
||||
$this->instances[$app] = new \OC_L10N($app);
|
||||
}
|
||||
return $this->instances[$app];
|
||||
}
|
||||
|
||||
}
|
|
@ -43,7 +43,8 @@ class Request implements \ArrayAccess, \Countable, IRequest {
|
|||
'cookies',
|
||||
'urlParams',
|
||||
'parameters',
|
||||
'method'
|
||||
'method',
|
||||
'requesttoken',
|
||||
);
|
||||
|
||||
/**
|
||||
|
@ -54,9 +55,9 @@ class Request implements \ArrayAccess, \Countable, IRequest {
|
|||
* @param array 'files' the $_FILES array
|
||||
* @param array 'server' the $_SERVER array
|
||||
* @param array 'env' the $_ENV array
|
||||
* @param array 'session' the $_SESSION array
|
||||
* @param array 'cookies' the $_COOKIE array
|
||||
* @param string 'method' the request method (GET, POST etc)
|
||||
* @param string|false 'requesttoken' the requesttoken or false when not available
|
||||
* @see http://www.php.net/manual/en/reserved.variables.php
|
||||
*/
|
||||
public function __construct(array $vars=array()) {
|
||||
|
@ -354,4 +355,35 @@ class Request implements \ArrayAccess, \Countable, IRequest {
|
|||
|
||||
return $this->content;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the CSRF check was correct
|
||||
* @return bool true if CSRF check passed
|
||||
* @see OC_Util::$callLifespan
|
||||
* @see OC_Util::callRegister()
|
||||
*/
|
||||
public function passesCSRFCheck() {
|
||||
if($this->items['requesttoken'] === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (isset($this->items['get']['requesttoken'])) {
|
||||
$token = $this->items['get']['requesttoken'];
|
||||
} elseif (isset($this->items['post']['requesttoken'])) {
|
||||
$token = $this->items['post']['requesttoken'];
|
||||
} elseif (isset($this->items['server']['HTTP_REQUESTTOKEN'])) {
|
||||
$token = $this->items['server']['HTTP_REQUESTTOKEN'];
|
||||
} else {
|
||||
//no token found.
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check if the token is valid
|
||||
if($token !== $this->items['requesttoken']) {
|
||||
// Not valid
|
||||
return false;
|
||||
} else {
|
||||
// Valid token
|
||||
return true;
|
||||
}
|
||||
}}
|
||||
|
|
|
@ -160,7 +160,6 @@ class Config {
|
|||
*/
|
||||
private function writeData() {
|
||||
// Create a php file ...
|
||||
$defaults = new \OC_Defaults;
|
||||
$content = "<?php\n";
|
||||
if ($this->debugMode) {
|
||||
$content .= "define('DEBUG',true);\n";
|
||||
|
@ -172,6 +171,7 @@ class Config {
|
|||
// Write the file
|
||||
$result = @file_put_contents($this->configFilename, $content);
|
||||
if (!$result) {
|
||||
$defaults = new \OC_Defaults;
|
||||
$url = $defaults->getDocBaseUrl() . '/server/5.0/admin_manual/installation/installation_source.html#set-the-directory-permissions';
|
||||
throw new HintException(
|
||||
"Can't write into config directory!",
|
||||
|
|
|
@ -41,8 +41,7 @@ class OC_Helper {
|
|||
* Returns a url to the given app and file.
|
||||
*/
|
||||
public static function linkToRoute($route, $parameters = array()) {
|
||||
$urlLinkTo = OC::getRouter()->generate($route, $parameters);
|
||||
return $urlLinkTo;
|
||||
return OC::$server->getURLGenerator()->linkToRoute($route, $parameters);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -56,32 +55,7 @@ class OC_Helper {
|
|||
* Returns a url to the given app and file.
|
||||
*/
|
||||
public static function linkTo( $app, $file, $args = array() ) {
|
||||
if( $app != '' ) {
|
||||
$app_path = OC_App::getAppPath($app);
|
||||
// Check if the app is in the app folder
|
||||
if ($app_path && file_exists($app_path . '/' . $file)) {
|
||||
if (substr($file, -3) == 'php' || substr($file, -3) == 'css') {
|
||||
$urlLinkTo = OC::$WEBROOT . '/index.php/apps/' . $app;
|
||||
$urlLinkTo .= ($file != 'index.php') ? '/' . $file : '';
|
||||
} else {
|
||||
$urlLinkTo = OC_App::getAppWebPath($app) . '/' . $file;
|
||||
}
|
||||
} else {
|
||||
$urlLinkTo = OC::$WEBROOT . '/' . $app . '/' . $file;
|
||||
}
|
||||
} else {
|
||||
if (file_exists(OC::$SERVERROOT . '/core/' . $file)) {
|
||||
$urlLinkTo = OC::$WEBROOT . '/core/' . $file;
|
||||
} else {
|
||||
$urlLinkTo = OC::$WEBROOT . '/' . $file;
|
||||
}
|
||||
}
|
||||
|
||||
if ($args && $query = http_build_query($args, '', '&')) {
|
||||
$urlLinkTo .= '?' . $query;
|
||||
}
|
||||
|
||||
return $urlLinkTo;
|
||||
return OC::$server->getURLGenerator()->linkTo($app, $file, $args);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -107,7 +81,7 @@ class OC_Helper {
|
|||
* Returns a absolute url to the given app and file.
|
||||
*/
|
||||
public static function makeURLAbsolute($url) {
|
||||
return OC_Request::serverProtocol() . '://' . OC_Request::serverHost() . $url;
|
||||
return OC::$server->getURLGenerator()->makeURLAbsolute($url);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -156,25 +130,7 @@ class OC_Helper {
|
|||
* Returns the path to the image.
|
||||
*/
|
||||
public static function imagePath($app, $image) {
|
||||
// Read the selected theme from the config file
|
||||
$theme = OC_Util::getTheme();
|
||||
|
||||
// Check if the app is in the app folder
|
||||
if (file_exists(OC::$SERVERROOT . "/themes/$theme/apps/$app/img/$image")) {
|
||||
return OC::$WEBROOT . "/themes/$theme/apps/$app/img/$image";
|
||||
} elseif (file_exists(OC_App::getAppPath($app) . "/img/$image")) {
|
||||
return OC_App::getAppWebPath($app) . "/img/$image";
|
||||
} elseif (!empty($app) and file_exists(OC::$SERVERROOT . "/themes/$theme/$app/img/$image")) {
|
||||
return OC::$WEBROOT . "/themes/$theme/$app/img/$image";
|
||||
} elseif (!empty($app) and file_exists(OC::$SERVERROOT . "/$app/img/$image")) {
|
||||
return OC::$WEBROOT . "/$app/img/$image";
|
||||
} elseif (file_exists(OC::$SERVERROOT . "/themes/$theme/core/img/$image")) {
|
||||
return OC::$WEBROOT . "/themes/$theme/core/img/$image";
|
||||
} elseif (file_exists(OC::$SERVERROOT . "/core/img/$image")) {
|
||||
return OC::$WEBROOT . "/core/img/$image";
|
||||
} else {
|
||||
throw new RuntimeException('image not found: image:' . $image . ' webroot:' . OC::$WEBROOT . ' serverroot:' . OC::$SERVERROOT);
|
||||
}
|
||||
return OC::$server->getURLGenerator()->imagePath($app, $image);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -25,12 +25,7 @@
|
|||
/**
|
||||
* This class is for i18n and l10n
|
||||
*/
|
||||
class OC_L10N {
|
||||
/**
|
||||
* cached instances
|
||||
*/
|
||||
protected static $instances=array();
|
||||
|
||||
class OC_L10N implements \OCP\IL10N {
|
||||
/**
|
||||
* cache
|
||||
*/
|
||||
|
@ -83,13 +78,10 @@ class OC_L10N {
|
|||
* @return OC_L10N
|
||||
*/
|
||||
public static function get($app, $lang=null) {
|
||||
if(is_null($lang)) {
|
||||
if(!isset(self::$instances[$app])) {
|
||||
self::$instances[$app]=new OC_L10N($app);
|
||||
}
|
||||
return self::$instances[$app];
|
||||
}else{
|
||||
return new OC_L10N($app, $lang);
|
||||
if (is_null($lang)) {
|
||||
return OC::$server->getL10N($app);
|
||||
} else {
|
||||
return new \OC_L10N($app, $lang);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -22,6 +22,19 @@ class Server extends SimpleContainer implements IServerContainer {
|
|||
return new ContactsManager();
|
||||
});
|
||||
$this->registerService('Request', function($c) {
|
||||
if (isset($c['urlParams'])) {
|
||||
$urlParams = $c['urlParams'];
|
||||
} else {
|
||||
$urlParams = array();
|
||||
}
|
||||
|
||||
if (\OC::$session->exists('requesttoken')) {
|
||||
$requesttoken = \OC::$session->get('requesttoken');
|
||||
} else {
|
||||
$requesttoken = false;
|
||||
}
|
||||
|
||||
|
||||
return new Request(
|
||||
array(
|
||||
'get' => $_GET,
|
||||
|
@ -33,7 +46,9 @@ class Server extends SimpleContainer implements IServerContainer {
|
|||
'method' => (isset($_SERVER) && isset($_SERVER['REQUEST_METHOD']))
|
||||
? $_SERVER['REQUEST_METHOD']
|
||||
: null,
|
||||
'urlParams' => $c['urlParams']
|
||||
'params' => $params,
|
||||
'urlParams' => $urlParams,
|
||||
'requesttoken' => $requesttoken,
|
||||
)
|
||||
);
|
||||
});
|
||||
|
@ -102,6 +117,15 @@ class Server extends SimpleContainer implements IServerContainer {
|
|||
$this->registerService('AllConfig', function($c) {
|
||||
return new \OC\AllConfig();
|
||||
});
|
||||
$this->registerService('L10NFactory', function($c) {
|
||||
return new \OC\L10N\Factory();
|
||||
});
|
||||
$this->registerService('URLGenerator', function($c) {
|
||||
return new \OC\URLGenerator();
|
||||
});
|
||||
$this->registerService('AppHelper', function($c) {
|
||||
return new \OC\AppHelper();
|
||||
});
|
||||
$this->registerService('UserCache', function($c) {
|
||||
return new UserCache();
|
||||
});
|
||||
|
@ -217,6 +241,29 @@ class Server extends SimpleContainer implements IServerContainer {
|
|||
return $this->query('AllConfig');
|
||||
}
|
||||
|
||||
/**
|
||||
* get an L10N instance
|
||||
* @param $app string appid
|
||||
* @return \OC_L10N
|
||||
*/
|
||||
function getL10N($app) {
|
||||
return $this->query('L10NFactory')->get($app);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \OC\URLGenerator
|
||||
*/
|
||||
function getURLGenerator() {
|
||||
return $this->query('URLGenerator');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \OC\Helper
|
||||
*/
|
||||
function getHelper() {
|
||||
return $this->query('AppHelper');
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an ICache instance
|
||||
*
|
||||
|
|
|
@ -695,29 +695,7 @@ class OC_Util {
|
|||
* @see OC_Util::callRegister()
|
||||
*/
|
||||
public static function isCallRegistered() {
|
||||
if(!\OC::$session->exists('requesttoken')) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(isset($_GET['requesttoken'])) {
|
||||
$token = $_GET['requesttoken'];
|
||||
} elseif(isset($_POST['requesttoken'])) {
|
||||
$token = $_POST['requesttoken'];
|
||||
} elseif(isset($_SERVER['HTTP_REQUESTTOKEN'])) {
|
||||
$token = $_SERVER['HTTP_REQUESTTOKEN'];
|
||||
} else {
|
||||
//no token found.
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check if the token is valid
|
||||
if($token !== \OC::$session->get('requesttoken')) {
|
||||
// Not valid
|
||||
return false;
|
||||
} else {
|
||||
// Valid token
|
||||
return true;
|
||||
}
|
||||
return \OC::$server->getRequest()->passesCSRFCheck();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -982,9 +960,9 @@ class OC_Util {
|
|||
* @param string $url Url to get content
|
||||
* @return string of the response or false on error
|
||||
* This function get the content of a page via curl, if curl is enabled.
|
||||
* If not, file_get_element is used.
|
||||
* If not, file_get_contents is used.
|
||||
*/
|
||||
public static function getUrlContent($url){
|
||||
public static function getUrlContent($url) {
|
||||
if (function_exists('curl_init')) {
|
||||
$curl = curl_init();
|
||||
|
||||
|
|
23
lib/public/ihelper.php
Normal file
23
lib/public/ihelper.php
Normal file
|
@ -0,0 +1,23 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace OCP;
|
||||
|
||||
/**
|
||||
* Functions that don't have any specific interface to place
|
||||
*/
|
||||
interface IHelper {
|
||||
/**
|
||||
* Gets the content of an URL by using CURL or a fallback if it is not
|
||||
* installed
|
||||
* @param string $url the url that should be fetched
|
||||
* @return string the content of the webpage
|
||||
*/
|
||||
public function getUrlContent($url);
|
||||
}
|
67
lib/public/il10n.php
Normal file
67
lib/public/il10n.php
Normal file
|
@ -0,0 +1,67 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace OCP;
|
||||
|
||||
/**
|
||||
* TODO: Description
|
||||
*/
|
||||
interface IL10N {
|
||||
/**
|
||||
* @brief Translating
|
||||
* @param $text String The text we need a translation for
|
||||
* @param array $parameters default:array() Parameters for sprintf
|
||||
* @return \OC_L10N_String|string Translation or the same text
|
||||
*
|
||||
* Returns the translation. If no translation is found, $text will be
|
||||
* returned.
|
||||
*/
|
||||
public function t($text, $parameters = array());
|
||||
|
||||
/**
|
||||
* @brief Translating
|
||||
* @param $text_singular String the string to translate for exactly one object
|
||||
* @param $text_plural String the string to translate for n objects
|
||||
* @param $count Integer Number of objects
|
||||
* @param array $parameters default:array() Parameters for sprintf
|
||||
* @return \OC_L10N_String|string Translation or the same text
|
||||
*
|
||||
* Returns the translation. If no translation is found, $text will be
|
||||
* returned. %n will be replaced with the number of objects.
|
||||
*
|
||||
* The correct plural is determined by the plural_forms-function
|
||||
* provided by the po file.
|
||||
*
|
||||
*/
|
||||
public function n($text_singular, $text_plural, $count, $parameters = array());
|
||||
|
||||
/**
|
||||
* @brief Localization
|
||||
* @param $type Type of localization
|
||||
* @param $params parameters for this localization
|
||||
* @returns String or false
|
||||
*
|
||||
* Returns the localized data.
|
||||
*
|
||||
* Implemented types:
|
||||
* - date
|
||||
* - Creates a date
|
||||
* - l10n-field: date
|
||||
* - params: timestamp (int/string)
|
||||
* - datetime
|
||||
* - Creates date and time
|
||||
* - l10n-field: datetime
|
||||
* - params: timestamp (int/string)
|
||||
* - time
|
||||
* - Creates a time
|
||||
* - l10n-field: time
|
||||
* - params: timestamp (int/string)
|
||||
*/
|
||||
public function l($type, $data);
|
||||
}
|
|
@ -107,4 +107,9 @@ interface IRequest {
|
|||
function getCookie($key);
|
||||
|
||||
|
||||
/**
|
||||
* Checks if the CSRF check was correct
|
||||
* @return bool true if CSRF check passed
|
||||
*/
|
||||
public function passesCSRFCheck();
|
||||
}
|
||||
|
|
|
@ -101,6 +101,23 @@ interface IServerContainer {
|
|||
*/
|
||||
function getConfig();
|
||||
|
||||
/**
|
||||
* get an L10N instance
|
||||
* @param $app string appid
|
||||
* @return \OCP\IL10N
|
||||
*/
|
||||
function getL10N($app);
|
||||
|
||||
/**
|
||||
* @return \OCP\IURLGenerator
|
||||
*/
|
||||
function getURLGenerator();
|
||||
|
||||
/**
|
||||
* @return \OCP\IHelper
|
||||
*/
|
||||
function getHelper();
|
||||
|
||||
/**
|
||||
* Returns an ICache instance
|
||||
*
|
||||
|
|
47
lib/public/iurlgenerator.php
Normal file
47
lib/public/iurlgenerator.php
Normal file
|
@ -0,0 +1,47 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace OCP;
|
||||
|
||||
/**
|
||||
* Class to generate URLs
|
||||
*/
|
||||
interface IURLGenerator {
|
||||
/**
|
||||
* Returns the URL for a route
|
||||
* @param string $routeName the name of the route
|
||||
* @param array $arguments an array with arguments which will be filled into the url
|
||||
* @return string the url
|
||||
*/
|
||||
public function linkToRoute($routeName, $arguments = array());
|
||||
|
||||
/**
|
||||
* Returns an URL for an image or file
|
||||
* @param string $appName the name of the app
|
||||
* @param string $file the name of the file
|
||||
* @return string the url
|
||||
*/
|
||||
public function linkTo($appName, $file);
|
||||
|
||||
/**
|
||||
* Returns the link to an image, like linkTo but only with prepending img/
|
||||
* @param string $appName the name of the app
|
||||
* @param string $file the name of the file
|
||||
* @return string the url
|
||||
*/
|
||||
public function imagePath($appName, $file);
|
||||
|
||||
|
||||
/**
|
||||
* Makes an URL absolute
|
||||
* @param string $url the url in the owncloud host
|
||||
* @return string the absolute version of the url
|
||||
*/
|
||||
public function getAbsoluteURL($url);
|
||||
}
|
111
lib/urlgenerator.php
Normal file
111
lib/urlgenerator.php
Normal file
|
@ -0,0 +1,111 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace OC;
|
||||
|
||||
/**
|
||||
* Class to generate URLs
|
||||
*/
|
||||
class URLGenerator {
|
||||
/**
|
||||
* @brief Creates an url using a defined route
|
||||
* @param $route
|
||||
* @param array $parameters
|
||||
* @return
|
||||
* @internal param array $args with param=>value, will be appended to the returned url
|
||||
* @returns the url
|
||||
*
|
||||
* Returns a url to the given app and file.
|
||||
*/
|
||||
public function linkToRoute($route, $parameters = array()) {
|
||||
$urlLinkTo = \OC::getRouter()->generate($route, $parameters);
|
||||
return $urlLinkTo;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Creates an url
|
||||
* @param string $app app
|
||||
* @param string $file file
|
||||
* @param array $args array with param=>value, will be appended to the returned url
|
||||
* The value of $args will be urlencoded
|
||||
* @return string the url
|
||||
*
|
||||
* Returns a url to the given app and file.
|
||||
*/
|
||||
public function linkTo( $app, $file, $args = array() ) {
|
||||
if( $app != '' ) {
|
||||
$app_path = \OC_App::getAppPath($app);
|
||||
// Check if the app is in the app folder
|
||||
if ($app_path && file_exists($app_path . '/' . $file)) {
|
||||
if (substr($file, -3) == 'php' || substr($file, -3) == 'css') {
|
||||
$urlLinkTo = \OC::$WEBROOT . '/index.php/apps/' . $app;
|
||||
$urlLinkTo .= ($file != 'index.php') ? '/' . $file : '';
|
||||
} else {
|
||||
$urlLinkTo = \OC_App::getAppWebPath($app) . '/' . $file;
|
||||
}
|
||||
} else {
|
||||
$urlLinkTo = \OC::$WEBROOT . '/' . $app . '/' . $file;
|
||||
}
|
||||
} else {
|
||||
if (file_exists(\OC::$SERVERROOT . '/core/' . $file)) {
|
||||
$urlLinkTo = \OC::$WEBROOT . '/core/' . $file;
|
||||
} else {
|
||||
$urlLinkTo = \OC::$WEBROOT . '/' . $file;
|
||||
}
|
||||
}
|
||||
|
||||
if ($args && $query = http_build_query($args, '', '&')) {
|
||||
$urlLinkTo .= '?' . $query;
|
||||
}
|
||||
|
||||
return $urlLinkTo;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Creates path to an image
|
||||
* @param string $app app
|
||||
* @param string $image image name
|
||||
* @return string the url
|
||||
*
|
||||
* Returns the path to the image.
|
||||
*/
|
||||
public function imagePath($app, $image) {
|
||||
// Read the selected theme from the config file
|
||||
$theme = \OC_Util::getTheme();
|
||||
|
||||
// Check if the app is in the app folder
|
||||
if (file_exists(\OC::$SERVERROOT . "/themes/$theme/apps/$app/img/$image")) {
|
||||
return \OC::$WEBROOT . "/themes/$theme/apps/$app/img/$image";
|
||||
} elseif (file_exists(\OC_App::getAppPath($app) . "/img/$image")) {
|
||||
return \OC_App::getAppWebPath($app) . "/img/$image";
|
||||
} elseif (!empty($app) and file_exists(\OC::$SERVERROOT . "/themes/$theme/$app/img/$image")) {
|
||||
return \OC::$WEBROOT . "/themes/$theme/$app/img/$image";
|
||||
} elseif (!empty($app) and file_exists(\OC::$SERVERROOT . "/$app/img/$image")) {
|
||||
return \OC::$WEBROOT . "/$app/img/$image";
|
||||
} elseif (file_exists(\OC::$SERVERROOT . "/themes/$theme/core/img/$image")) {
|
||||
return \OC::$WEBROOT . "/themes/$theme/core/img/$image";
|
||||
} elseif (file_exists(\OC::$SERVERROOT . "/core/img/$image")) {
|
||||
return \OC::$WEBROOT . "/core/img/$image";
|
||||
} else {
|
||||
throw new RuntimeException('image not found: image:' . $image . ' webroot:' . \OC::$WEBROOT . ' serverroot:' . \OC::$SERVERROOT);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Makes an $url absolute
|
||||
* @param string $url the url
|
||||
* @return string the absolute url
|
||||
*
|
||||
* Returns a absolute url to the given app and file.
|
||||
*/
|
||||
public function makeURLAbsolute($url) {
|
||||
return \OC_Request::serverProtocol() . '://' . \OC_Request::serverHost() . $url;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue