nextcloud/lib/public/appframework/iapi.php

239 lines
6.4 KiB
PHP

<?php
/**
* ownCloud - App Framework
*
* @author Bernhard Posselt
* @copyright 2012 Bernhard Posselt nukeawhale@gmail.com
*
* 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/>.
*
*/
namespace OCP\AppFramework;
/**
* A few very basic and frequently used API functions are combined in here
*/
interface IApi {
/**
* used to return the appname of the set application
* @return string the name of your application
*/
function getAppName();
/**
* Creates a new navigation entry
* @param array $entry containing: id, name, order, icon and href key
*/
function addNavigationEntry(array $entry);
/**
* Gets the userid of the current user
* @return string the user id of the current user
*/
function getUserId();
/**
* Sets the current navigation entry to the currently running app
*/
function activateNavigationEntry();
/**
* Adds a new javascript file
* @param string $scriptName the name of the javascript in js/ without the suffix
* @param string $appName the name of the app, defaults to the current one
*/
function addScript($scriptName, $appName = null);
/**
* Adds a new css file
* @param string $styleName the name of the css file in css/without the suffix
* @param string $appName the name of the app, defaults to the current one
*/
function addStyle($styleName, $appName = null);
/**
* shorthand for addScript for files in the 3rdparty directory
* @param string $name the name of the file without the suffix
*/
function add3rdPartyScript($name);
/**
* shorthand for addStyle for files in the 3rdparty directory
* @param string $name the name of the file without the suffix
*/
function add3rdPartyStyle($name);
/**
* Looks up a system-wide defined value
* @param string $key the key of the value, under which it was saved
* @return string the saved value
*/
function getSystemValue($key);
/**
* Sets a new system-wide value
* @param string $key the key of the value, under which will be saved
* @param string $value the value that should be stored
*/
function setSystemValue($key, $value);
/**
* Looks up an app-specific defined value
* @param string $key the key of the value, under which it was saved
* @return string the saved value
*/
function getAppValue($key, $appName = null);
/**
* Writes a new app-specific value
* @param string $key the key of the value, under which will be saved
* @param string $value the value that should be stored
*/
function setAppValue($key, $value, $appName = null);
/**
* Shortcut for setting a user defined value
* @param string $key the key under which the value is being stored
* @param string $value the value that you want to store
* @param string $userId the userId of the user that we want to store the value under, defaults to the current one
*/
function setUserValue($key, $value, $userId = null);
/**
* Shortcut for getting a user defined value
* @param string $key the key under which the value is being stored
* @param string $userId the userId of the user that we want to store the value under, defaults to the current one
*/
function getUserValue($key, $userId = null);
/**
* Returns the translation object
* @return \OC_L10N the translation object
*
* FIXME: returns private object / should be retrieved from teh ServerContainer
*/
function getTrans();
/**
* Used to abstract the owncloud database access away
* @param string $sql the sql query with ? placeholder for params
* @param int $limit the maximum number of rows
* @param int $offset from which row we want to start
* @return \OCP\DB a query object
*
* FIXME: returns non public interface / object
*/
function prepareQuery($sql, $limit=null, $offset=null);
/**
* Used to get the id of the just inserted element
* @param string $tableName the name of the table where we inserted the item
* @return int the id of the inserted element
*
* FIXME: move to db object
*/
function getInsertId($tableName);
/**
* 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
*/
function linkToRoute($routeName, $arguments=array());
/**
* Returns an URL for an image or file
* @param string $file the name of the file
* @param string $appName the name of the app, defaults to the current one
*/
function linkTo($file, $appName=null);
/**
* Returns the link to an image, like link to but only with prepending img/
* @param string $file the name of the file
* @param string $appName the name of the app, defaults to the current one
*/
function imagePath($file, $appName = null);
/**
* Makes an URL absolute
* @param string $url the url
* @return string the absolute url
*
* FIXME: function should live in Request / Response
*/
function getAbsoluteURL($url);
/**
* links to a file
* @param string $file the name of the file
* @param string $appName the name of the app, defaults to the current one
* @deprecated replaced with linkToRoute()
* @return string the url
*/
function linkToAbsolute($file, $appName = null);
/**
* Checks if an app is enabled
* @param string $appName the name of an app
* @return bool true if app is enabled
*/
public function isAppEnabled($appName);
/**
* Writes a function into the error log
* @param string $msg the error message to be logged
* @param int $level the error level
*
* FIXME: add logger instance to ServerContainer
*/
function log($msg, $level = null);
/**
* Returns a template
* @param string $templateName the name of the template
* @param string $renderAs how it should be rendered
* @param string $appName the name of the app
* @return \OCP\Template a new template
*/
function getTemplate($templateName, $renderAs='user', $appName=null);
}