Move App to src

- Add `use Friendica\App;` wherever needed
This commit is contained in:
Hypolite Petovan 2017-04-30 00:07:00 -04:00
parent 56ee734b00
commit 20043914e6
197 changed files with 1321 additions and 996 deletions

983
boot.php
View File

@ -19,6 +19,7 @@
require_once(__DIR__ . DIRECTORY_SEPARATOR. 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php'); require_once(__DIR__ . DIRECTORY_SEPARATOR. 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php');
use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
require_once('include/config.php'); require_once('include/config.php');
@ -502,988 +503,6 @@ function startup() {
} }
/**
*
* class: App
*
* @brief Our main application structure for the life of this page.
*
* Primarily deals with the URL that got us here
* and tries to make some sense of it, and
* stores our page contents and config storage
* and anything else that might need to be passed around
* before we spit the page out.
*
*/
class App {
/// @TODO decide indending as a colorful mixure is ahead ...
public $module_loaded = false;
public $query_string;
public $config;
public $page;
public $profile;
public $profile_uid;
public $user;
public $cid;
public $contact;
public $contacts;
public $page_contact;
public $content;
public $data = array();
public $error = false;
public $cmd;
public $argv;
public $argc;
public $module;
public $pager;
public $strings;
public $path;
public $hooks;
public $timezone;
public $interactive = true;
public $plugins;
public $apps = array();
public $identities;
public $is_mobile = false;
public $is_tablet = false;
public $is_friendica_app;
public $performance = array();
public $callstack = array();
public $theme_info = array();
public $backend = true;
public $nav_sel;
public $category;
// Allow themes to control internal parameters
// by changing App values in theme.php
public $sourcename = '';
public $videowidth = 425;
public $videoheight = 350;
public $force_max_items = 0;
public $theme_thread_allow = true;
public $theme_events_in_profile = true;
/**
* @brief An array for all theme-controllable parameters
*
* Mostly unimplemented yet. Only options 'template_engine' and
* beyond are used.
*/
public $theme = array(
'sourcename' => '',
'videowidth' => 425,
'videoheight' => 350,
'force_max_items' => 0,
'thread_allow' => true,
'stylesheet' => '',
'template_engine' => 'smarty3',
);
/**
* @brief An array of registered template engines ('name'=>'class name')
*/
public $template_engines = array();
/**
* @brief An array of instanced template engines ('name'=>'instance')
*/
public $template_engine_instance = array();
public $process_id;
private $ldelim = array(
'internal' => '',
'smarty3' => '{{'
);
private $rdelim = array(
'internal' => '',
'smarty3' => '}}'
);
private $scheme;
private $hostname;
private $db;
private $curl_code;
private $curl_content_type;
private $curl_headers;
private $cached_profile_image;
private $cached_profile_picdate;
private static $a;
/**
* @brief App constructor.
*/
function __construct() {
global $default_timezone;
$hostname = "";
if (file_exists(".htpreconfig.php")) {
include ".htpreconfig.php";
}
$this->timezone = ((x($default_timezone)) ? $default_timezone : 'UTC');
date_default_timezone_set($this->timezone);
$this->performance["start"] = microtime(true);
$this->performance["database"] = 0;
$this->performance["database_write"] = 0;
$this->performance["network"] = 0;
$this->performance["file"] = 0;
$this->performance["rendering"] = 0;
$this->performance["parser"] = 0;
$this->performance["marktime"] = 0;
$this->performance["markstart"] = microtime(true);
$this->callstack["database"] = array();
$this->callstack["database_write"] = array();
$this->callstack["network"] = array();
$this->callstack["file"] = array();
$this->callstack["rendering"] = array();
$this->callstack["parser"] = array();
$this->config = array();
$this->page = array();
$this->pager= array();
$this->query_string = '';
$this->process_id = uniqid("log", true);
startup();
set_include_path(
get_include_path() . PATH_SEPARATOR
. 'include' . PATH_SEPARATOR
. 'library' . PATH_SEPARATOR
. 'library/langdet' . PATH_SEPARATOR
. '.' );
$this->scheme = 'http';
if ((x($_SERVER, 'HTTPS') && $_SERVER['HTTPS']) ||
(x($_SERVER, 'HTTP_FORWARDED') && preg_match("/proto=https/", $_SERVER['HTTP_FORWARDED'])) ||
(x($_SERVER, 'HTTP_X_FORWARDED_PROTO') && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') ||
(x($_SERVER, 'HTTP_X_FORWARDED_SSL') && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') ||
(x($_SERVER, 'FRONT_END_HTTPS') && $_SERVER['FRONT_END_HTTPS'] == 'on') ||
(x($_SERVER, 'SERVER_PORT') && (intval($_SERVER['SERVER_PORT']) == 443)) // XXX: reasonable assumption, but isn't this hardcoding too much?
) {
$this->scheme = 'https';
}
if (x($_SERVER, 'SERVER_NAME')) {
$this->hostname = $_SERVER['SERVER_NAME'];
if (x($_SERVER, 'SERVER_PORT') && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443) {
$this->hostname .= ':' . $_SERVER['SERVER_PORT'];
}
/*
* Figure out if we are running at the top of a domain
* or in a sub-directory and adjust accordingly
*/
/// @TODO This kind of escaping breaks syntax-highlightning on CoolEdit (Midnight Commander)
$path = trim(dirname($_SERVER['SCRIPT_NAME']), '/\\');
if (isset($path) && strlen($path) && ($path != $this->path)) {
$this->path = $path;
}
}
if ($hostname != "") {
$this->hostname = $hostname;
}
if (is_array($_SERVER["argv"]) && $_SERVER["argc"] > 1 && substr(end($_SERVER["argv"]), 0, 4) == "http" ) {
$this->set_baseurl(array_pop($_SERVER["argv"]));
$_SERVER["argc"] --;
}
if ((x($_SERVER, 'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'], 0, 9) === "pagename=") {
$this->query_string = substr($_SERVER['QUERY_STRING'], 9);
// removing trailing / - maybe a nginx problem
$this->query_string = ltrim($this->query_string, '/');
} elseif ((x($_SERVER, 'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'], 0, 2) === "q=") {
$this->query_string = substr($_SERVER['QUERY_STRING'], 2);
// removing trailing / - maybe a nginx problem
$this->query_string = ltrim($this->query_string, '/');
}
if (x($_GET, 'pagename')) {
$this->cmd = trim($_GET['pagename'], '/\\');
} elseif (x($_GET, 'q')) {
$this->cmd = trim($_GET['q'], '/\\');
}
// fix query_string
$this->query_string = str_replace($this->cmd . "&", $this->cmd . "?", $this->query_string);
// unix style "homedir"
if (substr($this->cmd, 0, 1) === '~') {
$this->cmd = 'profile/' . substr($this->cmd, 1);
}
// Diaspora style profile url
if (substr($this->cmd, 0, 2) === 'u/') {
$this->cmd = 'profile/' . substr($this->cmd, 2);
}
/*
* Break the URL path into C style argc/argv style arguments for our
* modules. Given "http://example.com/module/arg1/arg2", $this->argc
* will be 3 (integer) and $this->argv will contain:
* [0] => 'module'
* [1] => 'arg1'
* [2] => 'arg2'
*
*
* There will always be one argument. If provided a naked domain
* URL, $this->argv[0] is set to "home".
*/
$this->argv = explode('/', $this->cmd);
$this->argc = count($this->argv);
if ((array_key_exists('0', $this->argv)) && strlen($this->argv[0])) {
$this->module = str_replace(".", "_", $this->argv[0]);
$this->module = str_replace("-", "_", $this->module);
} else {
$this->argc = 1;
$this->argv = array('home');
$this->module = 'home';
}
/*
* See if there is any page number information, and initialise
* pagination
*/
$this->pager['page'] = ((x($_GET, 'page') && intval($_GET['page']) > 0) ? intval($_GET['page']) : 1);
$this->pager['itemspage'] = 50;
$this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
if ($this->pager['start'] < 0) {
$this->pager['start'] = 0;
}
$this->pager['total'] = 0;
/*
* Detect mobile devices
*/
$mobile_detect = new Mobile_Detect();
$this->is_mobile = $mobile_detect->isMobile();
$this->is_tablet = $mobile_detect->isTablet();
// Friendica-Client
$this->is_friendica_app = ($_SERVER['HTTP_USER_AGENT'] == "Apache-HttpClient/UNAVAILABLE (java 1.4)");
/*
* register template engines
*/
$dc = get_declared_classes();
foreach ($dc as $k) {
if (in_array("ITemplateEngine", class_implements($k))){
$this->register_template_engine($k);
}
}
self::$a = $this;
}
public static function get_basepath() {
$basepath = get_config("system", "basepath");
if ($basepath == "") {
$basepath = dirname(__FILE__);
}
if ($basepath == "") {
$basepath = $_SERVER["DOCUMENT_ROOT"];
}
if ($basepath == "") {
$basepath = $_SERVER["PWD"];
}
return $basepath;
}
function get_scheme() {
return $this->scheme;
}
/**
* @brief Retrieves the Friendica instance base URL
*
* This function assembles the base URL from multiple parts:
* - Protocol is determined either by the request or a combination of
* system.ssl_policy and the $ssl parameter.
* - Host name is determined either by system.hostname or inferred from request
* - Path is inferred from SCRIPT_NAME
*
* Note: $ssl parameter value doesn't directly correlate with the resulting protocol
*
* @param bool $ssl Whether to append http or https under SSL_POLICY_SELFSIGN
* @return string Friendica server base URL
*/
function get_baseurl($ssl = false) {
// Is the function called statically?
if (!(isset($this) && get_class($this) == __CLASS__)) {
return self::$a->get_baseurl($ssl);
}
$scheme = $this->scheme;
if (Config::get('system', 'ssl_policy') == SSL_POLICY_FULL) {
$scheme = 'https';
}
// Basically, we have $ssl = true on any links which can only be seen by a logged in user
// (and also the login link). Anything seen by an outsider will have it turned off.
if (Config::get('system', 'ssl_policy') == SSL_POLICY_SELFSIGN) {
if ($ssl) {
$scheme = 'https';
} else {
$scheme = 'http';
}
}
if (Config::get('config', 'hostname') != '') {
$this->hostname = Config::get('config', 'hostname');
}
return $scheme . "://" . $this->hostname . ((isset($this->path) && strlen($this->path)) ? '/' . $this->path : '' );
}
/**
* @brief Initializes the baseurl components
*
* Clears the baseurl cache to prevent inconstistencies
*
* @param string $url
*/
function set_baseurl($url) {
$parsed = @parse_url($url);
if ($parsed) {
$this->scheme = $parsed['scheme'];
$hostname = $parsed['host'];
if (x($parsed, 'port')) {
$hostname .= ':' . $parsed['port'];
}
if (x($parsed, 'path')) {
$this->path = trim($parsed['path'], '\\/');
}
if (file_exists(".htpreconfig.php")) {
include ".htpreconfig.php";
}
if (get_config('config', 'hostname') != '') {
$this->hostname = get_config('config', 'hostname');
}
if (!isset($this->hostname) OR ($this->hostname == '')) {
$this->hostname = $hostname;
}
}
}
function get_hostname() {
if (get_config('config', 'hostname') != "") {
$this->hostname = get_config('config', 'hostname');
}
return $this->hostname;
}
function set_hostname($h) {
$this->hostname = $h;
}
function set_path($p) {
$this->path = trim(trim($p), '/');
}
function get_path() {
return $this->path;
}
function set_pager_total($n) {
$this->pager['total'] = intval($n);
}
function set_pager_itemspage($n) {
$this->pager['itemspage'] = ((intval($n) > 0) ? intval($n) : 0);
$this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
}
function set_pager_page($n) {
$this->pager['page'] = $n;
$this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
}
function init_pagehead() {
$interval = ((local_user()) ? get_pconfig(local_user(),'system','update_interval') : 40000);
// If the update is "deactivated" set it to the highest integer number (~24 days)
if ($interval < 0) {
$interval = 2147483647;
}
if ($interval < 10000) {
$interval = 40000;
}
// compose the page title from the sitename and the
// current module called
if (!$this->module == '') {
$this->page['title'] = $this->config['sitename'] . ' (' . $this->module . ')';
} else {
$this->page['title'] = $this->config['sitename'];
}
/* put the head template at the beginning of page['htmlhead']
* since the code added by the modules frequently depends on it
* being first
*/
if (!isset($this->page['htmlhead'])) {
$this->page['htmlhead'] = '';
}
// If we're using Smarty, then doing replace_macros() will replace
// any unrecognized variables with a blank string. Since we delay
// replacing $stylesheet until later, we need to replace it now
// with another variable name
if ($this->theme['template_engine'] === 'smarty3') {
$stylesheet = $this->get_template_ldelim('smarty3') . '$stylesheet' . $this->get_template_rdelim('smarty3');
} else {
$stylesheet = '$stylesheet';
}
$shortcut_icon = get_config("system", "shortcut_icon");
if ($shortcut_icon == "") {
$shortcut_icon = "images/friendica-32.png";
}
$touch_icon = get_config("system", "touch_icon");
if ($touch_icon == "") {
$touch_icon = "images/friendica-128.png";
}
// get data wich is needed for infinite scroll on the network page
$invinite_scroll = infinite_scroll_data($this->module);
$tpl = get_markup_template('head.tpl');
$this->page['htmlhead'] = replace_macros($tpl,array(
'$baseurl' => $this->get_baseurl(), // FIXME for z_path!!!!
'$local_user' => local_user(),
'$generator' => 'Friendica' . ' ' . FRIENDICA_VERSION,
'$delitem' => t('Delete this item?'),
'$showmore' => t('show more'),
'$showfewer' => t('show fewer'),
'$update_interval' => $interval,
'$shortcut_icon' => $shortcut_icon,
'$touch_icon' => $touch_icon,
'$stylesheet' => $stylesheet,
'$infinite_scroll' => $invinite_scroll,
)) . $this->page['htmlhead'];
}
function init_page_end() {
if (!isset($this->page['end'])) {
$this->page['end'] = '';
}
$tpl = get_markup_template('end.tpl');
$this->page['end'] = replace_macros($tpl,array(
'$baseurl' => $this->get_baseurl() // FIXME for z_path!!!!
)) . $this->page['end'];
}
function set_curl_code($code) {
$this->curl_code = $code;
}
function get_curl_code() {
return $this->curl_code;
}
function set_curl_content_type($content_type) {
$this->curl_content_type = $content_type;
}
function get_curl_content_type() {
return $this->curl_content_type;
}
function set_curl_headers($headers) {
$this->curl_headers = $headers;
}
function get_curl_headers() {
return $this->curl_headers;
}
function get_cached_avatar_image($avatar_image){
return $avatar_image;
}
/**
* @brief Removes the baseurl from an url. This avoids some mixed content problems.
*
* @param string $orig_url
*
* @return string The cleaned url
*/
function remove_baseurl($orig_url){
// Is the function called statically?
if (!(isset($this) && get_class($this) == __CLASS__)) {
return self::$a->remove_baseurl($orig_url);
}
// Remove the hostname from the url if it is an internal link
$nurl = normalise_link($orig_url);
$base = normalise_link($this->get_baseurl());
$url = str_replace($base."/", "", $nurl);
// if it is an external link return the orignal value
if ($url == normalise_link($orig_url)) {
return $orig_url;
} else {
return $url;
}
}
/**
* @brief Register template engine class
*
* If $name is "", is used class static property $class::$name
*
* @param string $class
* @param string $name
*/
function register_template_engine($class, $name = '') {
/// @TODO Really === and not just == ?
if ($name === "") {
$v = get_class_vars( $class );
if (x($v,"name")) $name = $v['name'];
}
if ($name === "") {
echo "template engine <tt>$class</tt> cannot be registered without a name.\n";
killme();
}
$this->template_engines[$name] = $class;
}
/**
* @brief Return template engine instance.
*
* If $name is not defined, return engine defined by theme,
* or default
*
* @param strin $name Template engine name
* @return object Template Engine instance
*/
function template_engine($name = '') {
/// @TODO really type-check included?
if ($name !== "") {
$template_engine = $name;
} else {
$template_engine = 'smarty3';
if (x($this->theme, 'template_engine')) {
$template_engine = $this->theme['template_engine'];
}
}
if (isset($this->template_engines[$template_engine])){
if (isset($this->template_engine_instance[$template_engine])){
return $this->template_engine_instance[$template_engine];
} else {
$class = $this->template_engines[$template_engine];
$obj = new $class;
$this->template_engine_instance[$template_engine] = $obj;
return $obj;
}
}
echo "template engine <tt>$template_engine</tt> is not registered!\n"; killme();
}
/**
* @brief Returns the active template engine.
*
* @return string
*/
function get_template_engine() {
return $this->theme['template_engine'];
}
function set_template_engine($engine = 'smarty3') {
$this->theme['template_engine'] = $engine;
}
function get_template_ldelim($engine = 'smarty3') {
return $this->ldelim[$engine];
}
function get_template_rdelim($engine = 'smarty3') {
return $this->rdelim[$engine];
}
function save_timestamp($stamp, $value) {
if (!isset($this->config['system']['profiler']) || !$this->config['system']['profiler']) {
return;
}
$duration = (float)(microtime(true)-$stamp);
if (!isset($this->performance[$value])) {
// Prevent ugly E_NOTICE
$this->performance[$value] = 0;
}
$this->performance[$value] += (float)$duration;
$this->performance["marktime"] += (float)$duration;
$callstack = $this->callstack();
if (!isset($this->callstack[$value][$callstack])) {
// Prevent ugly E_NOTICE
$this->callstack[$value][$callstack] = 0;
}
$this->callstack[$value][$callstack] += (float)$duration;
}
/**
* @brief Log active processes into the "process" table
*/
function start_process() {
$trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1);
$command = basename($trace[0]["file"]);
$this->remove_inactive_processes();
q("START TRANSACTION");
$r = q("SELECT `pid` FROM `process` WHERE `pid` = %d", intval(getmypid()));
if (!dbm::is_result($r)) {
q("INSERT INTO `process` (`pid`,`command`,`created`) VALUES (%d, '%s', '%s')",
intval(getmypid()),
dbesc($command),
dbesc(datetime_convert()));
}
q("COMMIT");
}
/**
* @brief Remove inactive processes
*/
function remove_inactive_processes() {
q("START TRANSACTION");
$r = q("SELECT `pid` FROM `process`");
if (dbm::is_result($r)) {
foreach ($r AS $process) {
if (!posix_kill($process["pid"], 0)) {
q("DELETE FROM `process` WHERE `pid` = %d", intval($process["pid"]));
}
}
}
q("COMMIT");
}
/**
* @brief Remove the active process from the "process" table
*/
function end_process() {
q("DELETE FROM `process` WHERE `pid` = %d", intval(getmypid()));
}
/**
* @brief Returns a string with a callstack. Can be used for logging.
*
* @return string
*/
function callstack() {
$trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 6);
// We remove the first two items from the list since they contain data that we don't need.
array_shift($trace);
array_shift($trace);
$callstack = array();
foreach ($trace AS $func) {
$callstack[] = $func["function"];
}
return implode(", ", $callstack);
}
function get_useragent() {
return
FRIENDICA_PLATFORM . " '" .
FRIENDICA_CODENAME . "' " .
FRIENDICA_VERSION . "-" .
DB_UPDATE_VERSION . "; " .
$this->get_baseurl();
}
function is_friendica_app() {
return $this->is_friendica_app;
}
/**
* @brief Checks if the site is called via a backend process
*
* This isn't a perfect solution. But we need this check very early.
* So we cannot wait until the modules are loaded.
*
* @return bool Is it a known backend?
*/
function is_backend() {
static $backends = array();
$backends[] = "_well_known";
$backends[] = "api";
$backends[] = "dfrn_notify";
$backends[] = "fetch";
$backends[] = "hcard";
$backends[] = "hostxrd";
$backends[] = "nodeinfo";
$backends[] = "noscrape";
$backends[] = "p";
$backends[] = "poco";
$backends[] = "post";
$backends[] = "proxy";
$backends[] = "pubsub";
$backends[] = "pubsubhubbub";
$backends[] = "receive";
$backends[] = "rsd_xml";
$backends[] = "salmon";
$backends[] = "statistics_json";
$backends[] = "xrd";
// Check if current module is in backend or backend flag is set
return (in_array($this->module, $backends) || $this->backend);
}
/**
* @brief Checks if the maximum number of database processes is reached
*
* @return bool Is the limit reached?
*/
function max_processes_reached() {
if ($this->is_backend()) {
$process = "backend";
$max_processes = get_config('system', 'max_processes_backend');
if (intval($max_processes) == 0) {
$max_processes = 5;
}
} else {
$process = "frontend";
$max_processes = get_config('system', 'max_processes_frontend');
if (intval($max_processes) == 0) {
$max_processes = 20;
}
}
$processlist = dbm::processlist();
if ($processlist["list"] != "") {
logger("Processcheck: Processes: ".$processlist["amount"]." - Processlist: ".$processlist["list"], LOGGER_DEBUG);
if ($processlist["amount"] > $max_processes) {
logger("Processcheck: Maximum number of processes for ".$process." tasks (".$max_processes.") reached.", LOGGER_DEBUG);
return true;
}
}
return false;
}
/**
* @brief Checks if the minimal memory is reached
*
* @return bool Is the memory limit reached?
*/
public function min_memory_reached() {
$min_memory = Config::get('system', 'min_memory', 0);
if ($min_memory == 0) {
return false;
}
if (!is_readable("/proc/meminfo")) {
return false;
}
$memdata = explode("\n", file_get_contents('/proc/meminfo'));
$meminfo = array();
foreach ($memdata as $line) {
list($key, $val) = explode(":", $line);
$meminfo[$key] = (int)trim(str_replace("kB", "", $val));
$meminfo[$key] = (int)($meminfo[$key] / 1024);
}
if (!isset($meminfo['MemAvailable']) OR !isset($meminfo['MemFree'])) {
return false;
}
$free = $meminfo['MemAvailable'] + $meminfo['MemFree'];
$reached = ($free < $min_memory);
if ($reached) {
logger('Minimal memory reached: '.$free.'/'.$meminfo['MemTotal'].' - limit '.$min_memory, LOGGER_DEBUG);
}
return $reached;
}
/**
* @brief Checks if the maximum load is reached
*
* @return bool Is the load reached?
*/
function maxload_reached() {
if ($this->is_backend()) {
$process = "backend";
$maxsysload = intval(get_config('system', 'maxloadavg'));
if ($maxsysload < 1) {
$maxsysload = 50;
}
} else {
$process = "frontend";
$maxsysload = intval(get_config('system','maxloadavg_frontend'));
if ($maxsysload < 1) {
$maxsysload = 50;
}
}
$load = current_load();
if ($load) {
if (intval($load) > $maxsysload) {
logger('system: load '.$load.' for '.$process.' tasks ('.$maxsysload.') too high.');
return true;
}
}
return false;
}
function proc_run($args) {
if (!function_exists("proc_open")) {
return;
}
// If the last worker fork was less than 10 seconds before then don't fork another one.
// This should prevent the forking of masses of workers.
$cachekey = "app:proc_run:started";
$result = Cache::get($cachekey);
if (!is_null($result) AND (time() - $result) < 10) {
return;
}
// Set the timestamp of the last proc_run
Cache::set($cachekey, time(), CACHE_MINUTE);
array_unshift($args, ((x($this->config,'php_path')) && (strlen($this->config['php_path'])) ? $this->config['php_path'] : 'php'));
// add baseurl to args. cli scripts can't construct it
$args[] = $this->get_baseurl();
for ($x = 0; $x < count($args); $x ++) {
$args[$x] = escapeshellarg($args[$x]);
}
$cmdline = implode($args, " ");
if ($this->min_memory_reached()) {
return;
}
if (get_config('system', 'proc_windows')) {
$resource = proc_open('cmd /c start /b ' . $cmdline, array(), $foo, dirname(__FILE__));
} else {
$resource = proc_open($cmdline . " &", array(), $foo, dirname(__FILE__));
}
if (!is_resource($resource)) {
logger('We got no resource for command '.$cmdline, LOGGER_DEBUG);
return;
}
proc_close($resource);
}
/**
* @brief Returns the system user that is executing the script
*
* This mostly returns something like "www-data".
*
* @return string system username
*/
static function systemuser() {
if (!function_exists('posix_getpwuid') OR !function_exists('posix_geteuid')) {
return '';
}
$processUser = posix_getpwuid(posix_geteuid());
return $processUser['name'];
}
/**
* @brief Checks if a given directory is usable for the system
*
* @return boolean the directory is usable
*/
static function directory_usable($directory) {
if ($directory == '') {
logger("Directory is empty. This shouldn't happen.", LOGGER_DEBUG);
return false;
}
if (!file_exists($directory)) {
logger('Path "'.$directory.'" does not exist for user '.self::systemuser(), LOGGER_DEBUG);
return false;
}
if (is_file($directory)) {
logger('Path "'.$directory.'" is a file for user '.self::systemuser(), LOGGER_DEBUG);
return false;
}
if (!is_dir($directory)) {
logger('Path "'.$directory.'" is not a directory for user '.self::systemuser(), LOGGER_DEBUG);
return false;
}
if (!is_writable($directory)) {
logger('Path "'.$directory.'" is not writable for user '.self::systemuser(), LOGGER_DEBUG);
return false;
}
return true;
}
}
/** /**
* @brief Retrieve the App structure * @brief Retrieve the App structure
* *

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
// Included here for completeness, but this is a very dangerous operation. // Included here for completeness, but this is a very dangerous operation.
// It is the caller's responsibility to confirm the requestor's intent and // It is the caller's responsibility to confirm the requestor's intent and
// authorisation to do this. // authorisation to do this.

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
/** /**
* @file include/ForumManager.php * @file include/ForumManager.php
* @brief ForumManager class with its methods related to forum functionality * * @brief ForumManager class with its methods related to forum functionality *

View File

@ -4,6 +4,8 @@
* @brief This file contains the Photo class for image processing * @brief This file contains the Photo class for image processing
*/ */
use Friendica\App;
require_once("include/photos.php"); require_once("include/photos.php");
class Photo { class Photo {

View File

@ -5,6 +5,7 @@
* *
*/ */
use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
use Friendica\Core\PConfig; use Friendica\Core\PConfig;

View File

@ -4,6 +4,8 @@
* @file include/acl_selectors.php * @file include/acl_selectors.php
*/ */
use Friendica\App;
require_once "include/contact_selectors.php"; require_once "include/contact_selectors.php";
require_once "include/contact_widgets.php"; require_once "include/contact_widgets.php";
require_once "include/DirSearch.php"; require_once "include/DirSearch.php";

View File

@ -6,6 +6,7 @@
* @todo Automatically detect if incoming data is HTML or BBCode * @todo Automatically detect if incoming data is HTML or BBCode
*/ */
use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
require_once 'include/HTTPExceptions.php'; require_once 'include/HTTPExceptions.php';

View File

@ -1,5 +1,6 @@
<?php <?php
use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
require_once('include/security.php'); require_once('include/security.php');

View File

@ -1,5 +1,6 @@
<?php <?php
use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
require_once 'include/oembed.php'; require_once 'include/oembed.php';

View File

@ -1,5 +1,6 @@
<?php /** @file */ <?php /** @file */
use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
require_once('boot.php'); require_once('boot.php');

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
function follow_widget($value = "") { function follow_widget($value = "") {
return replace_macros(get_markup_template('follow.tpl'), array( return replace_macros(get_markup_template('follow.tpl'), array(

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
require_once "include/bbcode.php"; require_once "include/bbcode.php";
require_once "include/acl_selectors.php"; require_once "include/acl_selectors.php";

View File

@ -1,5 +1,6 @@
<?php <?php
use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
function cronjobs_run(&$argv, &$argc){ function cronjobs_run(&$argv, &$argc){

View File

@ -1,5 +1,6 @@
<?php <?php
use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
require_once("boot.php"); require_once("boot.php");

View File

@ -1,5 +1,6 @@
<?php <?php
use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
require_once('include/queue_fn.php'); require_once('include/queue_fn.php');

View File

@ -7,6 +7,8 @@
* https://github.com/friendica/friendica/blob/master/spec/dfrn2.pdf * https://github.com/friendica/friendica/blob/master/spec/dfrn2.pdf
*/ */
use Friendica\App;
require_once("include/Contact.php"); require_once("include/Contact.php");
require_once("include/ostatus.php"); require_once("include/ostatus.php");
require_once("include/enotify.php"); require_once("include/enotify.php");

View File

@ -8,6 +8,7 @@
* This will change in the future. * This will change in the future.
*/ */
use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
require_once 'include/items.php'; require_once 'include/items.php';

View File

@ -1,4 +1,7 @@
<?php <?php
use Friendica\App;
require_once('include/Emailer.php'); require_once('include/Emailer.php');
require_once('include/email.php'); require_once('include/email.php');
require_once('include/bbcode.php'); require_once('include/bbcode.php');

View File

@ -4,6 +4,8 @@
* @brief functions specific to event handling * @brief functions specific to event handling
*/ */
use Friendica\App;
require_once 'include/bbcode.php'; require_once 'include/bbcode.php';
require_once 'include/map.php'; require_once 'include/map.php';
require_once 'include/datetime.php'; require_once 'include/datetime.php';

View File

@ -1,4 +1,7 @@
<?php <?php
use Friendica\App;
require_once("include/Scrape.php"); require_once("include/Scrape.php");
require_once("include/socgraph.php"); require_once("include/socgraph.php");
require_once('include/group.php'); require_once('include/group.php');

View File

@ -3,6 +3,8 @@
* @file include/identity.php * @file include/identity.php
*/ */
use Friendica\App;
require_once('include/ForumManager.php'); require_once('include/ForumManager.php');
require_once('include/bbcode.php'); require_once('include/bbcode.php');
require_once("mod/proxy.php"); require_once("mod/proxy.php");

View File

@ -4,6 +4,7 @@
* @file include/items.php * @file include/items.php
*/ */
use Friendica\App;
use Friendica\ParseUrl; use Friendica\ParseUrl;
require_once 'include/bbcode.php'; require_once 'include/bbcode.php';

View File

@ -1,4 +1,7 @@
<?php <?php
use Friendica\App;
require_once("include/diaspora.php"); require_once("include/diaspora.php");
/** /**

View File

@ -2,6 +2,7 @@
// send a private message // send a private message
use Friendica\App;
function send_message($recipient=0, $body='', $subject='', $replyto=''){ function send_message($recipient=0, $body='', $subject='', $replyto=''){

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
function nav(App $a) { function nav(App $a) {
/* /*

View File

@ -4,6 +4,7 @@
* @file include/network.php * @file include/network.php
*/ */
use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
require_once("include/xml.php"); require_once("include/xml.php");

View File

@ -1,5 +1,6 @@
<?php <?php
use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
require_once('include/queue_fn.php'); require_once('include/queue_fn.php');

View File

@ -5,6 +5,8 @@
* *
*/ */
use Friendica\App;
define('REQUEST_TOKEN_DURATION', 300); define('REQUEST_TOKEN_DURATION', 300);
define('ACCESS_TOKEN_DURATION', 31536000); define('ACCESS_TOKEN_DURATION', 31536000);

View File

@ -4,6 +4,7 @@
* @file include/oembed.php * @file include/oembed.php
*/ */
use Friendica\App;
use Friendica\ParseUrl; use Friendica\ParseUrl;
use Friendica\Core\Config; use Friendica\Core\Config;

View File

@ -3,6 +3,8 @@
* @file include/ostatus.php * @file include/ostatus.php
*/ */
use Friendica\App;
require_once("include/Contact.php"); require_once("include/Contact.php");
require_once("include/threads.php"); require_once("include/threads.php");
require_once("include/html2bbcode.php"); require_once("include/html2bbcode.php");

View File

@ -4,6 +4,7 @@
* @file include/plaintext.php * @file include/plaintext.php
*/ */
use Friendica\App;
use Friendica\ParseUrl; use Friendica\ParseUrl;
require_once("include/Photo.php"); require_once("include/Photo.php");

View File

@ -5,6 +5,7 @@
* @brief Some functions to handle addons and themes. * @brief Some functions to handle addons and themes.
*/ */
use Friendica\App;
/** /**
* @brief uninstalls an addon. * @brief uninstalls an addon.

View File

@ -1,5 +1,6 @@
<?php <?php
use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
if (!file_exists("boot.php") AND (sizeof($_SERVER["argv"]) != 0)) { if (!file_exists("boot.php") AND (sizeof($_SERVER["argv"]) != 0)) {

View File

@ -1,5 +1,6 @@
<?php <?php
use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
require_once('include/items.php'); require_once('include/items.php');

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
function auto_redir(App $a, $contact_nick) { function auto_redir(App $a, $contact_nick) {
// prevent looping // prevent looping

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
/** /**
* @brief Calculate the hash that is needed for the "Friendica" cookie * @brief Calculate the hash that is needed for the "Friendica" cookie
* *

View File

@ -1,5 +1,6 @@
<?php <?php
use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
require_once("boot.php"); require_once("boot.php");

View File

@ -7,6 +7,7 @@
* @todo Detect if it is a forum * @todo Detect if it is a forum
*/ */
use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
require_once('include/datetime.php'); require_once('include/datetime.php');

View File

@ -1,4 +1,7 @@
<?php <?php
use Friendica\App;
function create_tags_from_item($itemid) { function create_tags_from_item($itemid) {
$profile_base = App::get_baseurl(); $profile_base = App::get_baseurl();
$profile_data = parse_url($profile_base); $profile_data = parse_url($profile_base);

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
require_once("include/template_processor.php"); require_once("include/template_processor.php");
require_once("include/friendica_smarty.php"); require_once("include/friendica_smarty.php");
require_once("include/Smilies.php"); require_once("include/Smilies.php");

View File

@ -1,4 +1,7 @@
<?php <?php
use Friendica\App;
function add_thread($itemid, $onlyshadow = false) { function add_thread($itemid, $onlyshadow = false) {
$items = q("SELECT `uid`, `created`, `edited`, `commented`, `received`, `changed`, `wall`, `private`, `pubmail`, $items = q("SELECT `uid`, `created`, `edited`, `commented`, `received`, `changed`, `wall`, `private`, `pubmail`,
`moderated`, `visible`, `spam`, `starred`, `bookmark`, `contact-id`, `gcontact-id`, `moderated`, `visible`, `spam`, `starred`, `bookmark`, `contact-id`, `gcontact-id`,

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
require_once("include/Photo.php"); require_once("include/Photo.php");
define("IMPORT_DEBUG", False); define("IMPORT_DEBUG", False);

View File

@ -13,6 +13,7 @@
* *
*/ */
use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
require_once('boot.php'); require_once('boot.php');

View File

@ -1,5 +1,6 @@
<?php <?php
use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
require_once("mod/hostxrd.php"); require_once("mod/hostxrd.php");

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
require_once('include/Scrape.php'); require_once('include/Scrape.php');
function acctlink_init(App $a) { function acctlink_init(App $a) {

View File

@ -1,6 +1,8 @@
<?php <?php
/* ACL selector json backend */ /* ACL selector json backend */
use Friendica\App;
require_once 'include/acl_selectors.php'; require_once 'include/acl_selectors.php';
function acl_init(App $a) { function acl_init(App $a) {

View File

@ -6,6 +6,7 @@
* @brief Friendica admin * @brief Friendica admin
*/ */
use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
require_once("include/enotify.php"); require_once("include/enotify.php");

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
require_once('include/socgraph.php'); require_once('include/socgraph.php');
require_once('include/Contact.php'); require_once('include/Contact.php');
require_once('include/contact_selectors.php'); require_once('include/contact_selectors.php');

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
function amcd_content(App $a) { function amcd_content(App $a) {
echo <<< JSON echo <<< JSON
{ {

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
require_once('include/api.php'); require_once('include/api.php');
function oauth_get_client($request){ function oauth_get_client($request){

View File

@ -1,5 +1,6 @@
<?php <?php
use Friendica\App;
function apps_content(App $a) { function apps_content(App $a) {
$privateaddons = get_config('config', 'private_addons'); $privateaddons = get_config('config', 'private_addons');

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
require_once('include/security.php'); require_once('include/security.php');
function attach_init(App $a) { function attach_init(App $a) {

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
require_once 'include/bbcode.php'; require_once 'include/bbcode.php';
require_once 'library/markdown.php'; require_once 'library/markdown.php';
require_once 'include/bb2diaspora.php'; require_once 'include/bb2diaspora.php';

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
require_once('include/conversation.php'); require_once('include/conversation.php');
require_once('include/items.php'); require_once('include/items.php');

View File

@ -6,6 +6,8 @@
* of the profile owner * of the profile owner
*/ */
use Friendica\App;
require_once('include/event.php'); require_once('include/event.php');
require_once('include/redir.php'); require_once('include/redir.php');

View File

@ -4,6 +4,7 @@
* General purpose landing page for plugins/addons * General purpose landing page for plugins/addons
*/ */
use Friendica\App;
function cb_init(App $a) { function cb_init(App $a) {
call_hooks('cb_init'); call_hooks('cb_init');

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
require_once('include/socgraph.php'); require_once('include/socgraph.php');
require_once('include/Contact.php'); require_once('include/Contact.php');
require_once('include/contact_selectors.php'); require_once('include/contact_selectors.php');

View File

@ -1,5 +1,6 @@
<?php <?php
use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
function community_init(App $a) { function community_init(App $a) {

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
require_once('include/group.php'); require_once('include/group.php');
function contactgroup_content(App $a) { function contactgroup_content(App $a) {

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
require_once('include/Contact.php'); require_once('include/Contact.php');
require_once('include/socgraph.php'); require_once('include/socgraph.php');
require_once('include/contact_selectors.php'); require_once('include/contact_selectors.php');

View File

@ -15,6 +15,7 @@
// fast - e.g. one or two milliseconds to fetch parent items for the current content, // fast - e.g. one or two milliseconds to fetch parent items for the current content,
// and 10-20 milliseconds to fetch all the child items. // and 10-20 milliseconds to fetch all the child items.
use Friendica\App;
function content_content(App $a, $update = 0) { function content_content(App $a, $update = 0) {

View File

@ -6,6 +6,7 @@
* addons repository will be listed though ATM) * addons repository will be listed though ATM)
*/ */
use Friendica\App;
function credits_content(App $a) { function credits_content(App $a) {
/* fill the page with credits */ /* fill the page with credits */

View File

@ -1,4 +1,7 @@
<?php <?php
use Friendica\App;
require_once("include/contact_selectors.php"); require_once("include/contact_selectors.php");
require_once("mod/contacts.php"); require_once("mod/contacts.php");

View File

@ -1,4 +1,7 @@
<?php <?php
use Friendica\App;
require_once('mod/settings.php'); require_once('mod/settings.php');
function delegate_init(App $a) { function delegate_init(App $a) {

View File

@ -18,6 +18,8 @@
* https://github.com/friendica/friendica/blob/master/spec/dfrn2_contact_confirmation.png * https://github.com/friendica/friendica/blob/master/spec/dfrn2_contact_confirmation.png
*/ */
use Friendica\App;
require_once('include/enotify.php'); require_once('include/enotify.php');
require_once('include/group.php'); require_once('include/group.php');
require_once('include/Probe.php'); require_once('include/Probe.php');

View File

@ -5,6 +5,9 @@
* @brief The dfrn notify endpoint * @brief The dfrn notify endpoint
* @see PDF with dfrn specs: https://github.com/friendica/friendica/blob/master/spec/dfrn2.pdf * @see PDF with dfrn specs: https://github.com/friendica/friendica/blob/master/spec/dfrn2.pdf
*/ */
use Friendica\App;
require_once('include/items.php'); require_once('include/items.php');
require_once('include/dfrn.php'); require_once('include/dfrn.php');
require_once('include/event.php'); require_once('include/event.php');

View File

@ -1,4 +1,7 @@
<?php <?php
use Friendica\App;
require_once('include/items.php'); require_once('include/items.php');
require_once('include/auth.php'); require_once('include/auth.php');
require_once('include/dfrn.php'); require_once('include/dfrn.php');

View File

@ -12,6 +12,8 @@
* https://github.com/friendica/friendica/blob/master/spec/dfrn2_contact_request.png * https://github.com/friendica/friendica/blob/master/spec/dfrn2_contact_request.png
*/ */
use Friendica\App;
require_once('include/enotify.php'); require_once('include/enotify.php');
require_once('include/Scrape.php'); require_once('include/Scrape.php');
require_once('include/Probe.php'); require_once('include/Probe.php');

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
function directory_init(App $a) { function directory_init(App $a) {
$a->set_pager_itemspage(60); $a->set_pager_itemspage(60);

View File

@ -1,4 +1,7 @@
<?php <?php
use Friendica\App;
require_once('include/contact_widgets.php'); require_once('include/contact_widgets.php');
require_once('include/socgraph.php'); require_once('include/socgraph.php');
require_once('include/Contact.php'); require_once('include/Contact.php');

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
function display_init(App $a) { function display_init(App $a) {
if ((get_config('system','block_public')) && (! local_user()) && (! remote_user())) { if ((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
require_once('include/acl_selectors.php'); require_once('include/acl_selectors.php');
function editpost_content(App $a) { function editpost_content(App $a) {

View File

@ -3,6 +3,9 @@
* @file mod/events.php * @file mod/events.php
* @brief The events module * @brief The events module
*/ */
use Friendica\App;
require_once 'include/bbcode.php'; require_once 'include/bbcode.php';
require_once 'include/datetime.php'; require_once 'include/datetime.php';
require_once 'include/event.php'; require_once 'include/event.php';

View File

@ -5,6 +5,8 @@
* @author Fabio Comuni <fabrixxm@kirgroup.com> * @author Fabio Comuni <fabrixxm@kirgroup.com>
*/ */
use Friendica\App;
require_once('include/Photo.php'); require_once('include/Photo.php');
/** /**

View File

@ -2,6 +2,9 @@
/* /*
This file is part of the Diaspora protocol. It is used for fetching single public posts. This file is part of the Diaspora protocol. It is used for fetching single public posts.
*/ */
use Friendica\App;
require_once("include/crypto.php"); require_once("include/crypto.php");
require_once("include/diaspora.php"); require_once("include/diaspora.php");
require_once("include/xml.php"); require_once("include/xml.php");

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
require_once('include/security.php'); require_once('include/security.php');
require_once('include/bbcode.php'); require_once('include/bbcode.php');
require_once('include/items.php'); require_once('include/items.php');

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
function filerm_content(App $a) { function filerm_content(App $a) {
if (! local_user()) { if (! local_user()) {

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
require_once('include/Scrape.php'); require_once('include/Scrape.php');
require_once('include/follow.php'); require_once('include/follow.php');
require_once('include/Contact.php'); require_once('include/Contact.php');

View File

@ -1,5 +1,6 @@
<?php <?php
use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
function friendica_init(App $a) { function friendica_init(App $a) {

View File

@ -1,5 +1,6 @@
<?php <?php
use Friendica\App;
function fsuggest_post(App $a) { function fsuggest_post(App $a) {

View File

@ -5,6 +5,7 @@
* remove contacts to the contact groups * remove contacts to the contact groups
*/ */
use Friendica\App;
function group_init(App $a) { function group_init(App $a) {
if (local_user()) { if (local_user()) {

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
function hcard_init(App $a) { function hcard_init(App $a) {
$blocked = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false); $blocked = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false);

View File

@ -1,4 +1,7 @@
<?php <?php
use Friendica\App;
require_once('library/markdown.php'); require_once('library/markdown.php');
if (!function_exists('load_doc_file')) { if (!function_exists('load_doc_file')) {

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
if(! function_exists('home_init')) { if(! function_exists('home_init')) {
function home_init(App $a) { function home_init(App $a) {

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
require_once('include/crypto.php'); require_once('include/crypto.php');
function hostxrd_init(App $a) { function hostxrd_init(App $a) {

View File

@ -8,6 +8,8 @@
* License: GNU AFFERO GENERAL PUBLIC LICENSE (Version 3) * License: GNU AFFERO GENERAL PUBLIC LICENSE (Version 3)
*/ */
use Friendica\App;
require_once("include/socgraph.php"); require_once("include/socgraph.php");
require_once("include/Contact.php"); require_once("include/Contact.php");

View File

@ -1,5 +1,6 @@
<?php <?php
use Friendica\App;
function ignored_init(App $a) { function ignored_init(App $a) {

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
require_once "include/Photo.php"; require_once "include/Photo.php";
$install_wizard_pass = 1; $install_wizard_pass = 1;

View File

@ -7,6 +7,8 @@
* *
*/ */
use Friendica\App;
require_once('include/email.php'); require_once('include/email.php');
function invite_post(App $a) { function invite_post(App $a) {

View File

@ -15,6 +15,8 @@
* posting categories go through item_store() instead of this function. * posting categories go through item_store() instead of this function.
*/ */
use Friendica\App;
require_once 'include/crypto.php'; require_once 'include/crypto.php';
require_once 'include/enotify.php'; require_once 'include/enotify.php';
require_once 'include/email.php'; require_once 'include/email.php';

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
require_once('include/security.php'); require_once('include/security.php');
require_once('include/bbcode.php'); require_once('include/bbcode.php');
require_once('include/items.php'); require_once('include/items.php');

View File

@ -1,7 +1,8 @@
<?php <?php
require_once('include/datetime.php'); use Friendica\App;
require_once('include/datetime.php');
function localtime_post(App $a) { function localtime_post(App $a) {

View File

@ -1,5 +1,6 @@
<?php <?php
use Friendica\App;
function lockview_content(App $a) { function lockview_content(App $a) {

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
function login_content(App $a) { function login_content(App $a) {
if (x($_SESSION, 'theme')) { if (x($_SESSION, 'theme')) {
unset($_SESSION['theme']); unset($_SESSION['theme']);

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
require_once('include/email.php'); require_once('include/email.php');
require_once('include/enotify.php'); require_once('include/enotify.php');
require_once('include/text.php'); require_once('include/text.php');

View File

@ -1,5 +1,6 @@
<?php <?php
use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
function maintenance_content(App $a) { function maintenance_content(App $a) {

View File

@ -1,7 +1,8 @@
<?php <?php
require_once("include/text.php"); use Friendica\App;
require_once("include/text.php");
function manage_post(App $a) { function manage_post(App $a) {

View File

@ -1,5 +1,6 @@
<?php <?php
use Friendica\App;
use Friendica\Core\Config; use Friendica\Core\Config;
function manifest_content(App $a) { function manifest_content(App $a) {

View File

@ -1,4 +1,7 @@
<?php <?php
use Friendica\App;
require_once('include/text.php'); require_once('include/text.php');
require_once('include/socgraph.php'); require_once('include/socgraph.php');
require_once('include/contact_widgets.php'); require_once('include/contact_widgets.php');

View File

@ -1,5 +1,7 @@
<?php <?php
use Friendica\App;
require_once('include/acl_selectors.php'); require_once('include/acl_selectors.php');
require_once('include/message.php'); require_once('include/message.php');
require_once('include/Smilies.php'); require_once('include/Smilies.php');

Some files were not shown because too many files have changed in this diff Show More