X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=boot.php;h=537c7d73a13033057e2613fece857f8e4ac036d4;hb=2342d41bcda2280f9e85bb26d0d80b930dc017c3;hp=ddc2fa381e2e65f0a429f70e285f82e89ce64ba7;hpb=cb54cda17454fde783c165c37d6ece1ba2067253;p=friendica.git
diff --git a/boot.php b/boot.php
index ddc2fa381e..537c7d73a1 100644
--- a/boot.php
+++ b/boot.php
@@ -2,16 +2,55 @@
set_time_limit(0);
-define('EOL', "
\r\n");
+define ( 'BUILD_ID' , 1003 );
-define('REGISTER_CLOSED', 0);
-define('REGISTER_APPROVE', 1);
-define('REGISTER_OPEN', 2);
+define ( 'EOL', "
\r\n");
+define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
+
+define ( 'REGISTER_CLOSED', 0);
+define ( 'REGISTER_APPROVE', 1);
+define ( 'REGISTER_OPEN', 2);
+
+define ( 'DIRECTION_NONE', 0); // No relationship
+define ( 'DIRECTION_IN', 1); // VIP e.g. has FAN
+define ( 'DIRECTION_OUT', 2); // FAN to a VIP
+define ( 'DIRECTION_BOTH', 3); // Mutual Friends
+
+define ( 'REL_VIP', 1);
+define ( 'REL_FAN', 2);
+define ( 'REL_BUD', 3);
+
+define ( 'NOTIFY_INTRO', 0x0001 );
+define ( 'NOTIFY_CONFIRM', 0x0002 );
+define ( 'NOTIFY_WALL', 0x0004 );
+define ( 'NOTIFY_COMMENT', 0x0008 );
+define ( 'NOTIFY_MAIL', 0x0010 );
+
+define ( 'NAMESPACE_DFRN' , 'http://purl.org/macgirvin/dfrn/1.0' );
+define ( 'NAMESPACE_THREAD' , 'http://purl.org/syndication/thread/1.0' );
+define ( 'NAMESPACE_TOMB' , 'http://purl.org/atompub/tombstones/1.0' );
+define ( 'NAMESPACE_ACTIVITY', 'http://activitystrea.ms/spec/1.0/' );
+define ( 'NAMESPACE_ACTIVITY_SCHEMA', 'http://activitystrea.ms/schema/1.0/');
+
+define ( 'ACTIVITY_LIKE', NAMESPACE_ACTIVITY_SCHEMA . 'like' );
+define ( 'ACTIVITY_DISLIKE', NAMESPACE_DFRN . '/dislike' );
+define ( 'ACTIVITY_OBJ_HEART', NAMESPACE_DFRN . '/heart' );
+
+define ( 'ACTIVITY_FRIEND', NAMESPACE_ACTIVITY_SCHEMA . 'make-friend' );
+define ( 'ACTIVITY_POST', NAMESPACE_ACTIVITY_SCHEMA . 'post' );
+define ( 'ACTIVITY_UPDATE', NAMESPACE_ACTIVITY_SCHEMA . 'update' );
+
+define ( 'ACTIVITY_OBJ_COMMENT', NAMESPACE_ACTIVITY_SCHEMA . 'comment' );
+define ( 'ACTIVITY_OBJ_NOTE', NAMESPACE_ACTIVITY_SCHEMA . 'note' );
+define ( 'ACTIVITY_OBJ_PERSON', NAMESPACE_ACTIVITY_SCHEMA . 'person' );
+define ( 'ACTIVITY_OBJ_PHOTO', NAMESPACE_ACTIVITY_SCHEMA . 'photo' );
+define ( 'ACTIVITY_OBJ_P_PHOTO', NAMESPACE_ACTIVITY_SCHEMA . 'profile-photo' );
+define ( 'ACTIVITY_OBJ_ALBUM', NAMESPACE_ACTIVITY_SCHEMA . 'photo-album' );
+
+define ( 'GRAVITY_PARENT', 0);
+define ( 'GRAVITY_LIKE', 3);
+define ( 'GRAVITY_COMMENT', 6);
-define ( 'DIRECTION_ANY', 0);
-define ( 'DIRECTION_IN', 1);
-define ( 'DIRECTION_OUT', 2);
-define ( 'DIRECTION_BOTH', 3);
if(! class_exists('App')) {
class App {
@@ -22,22 +61,28 @@ class App {
public $profile;
public $user;
public $cid;
+ public $contact;
public $content;
+ public $data;
public $error = false;
public $cmd;
public $argv;
public $argc;
public $module;
+ public $pager;
+ public $strings;
+ public $path;
private $scheme;
private $hostname;
- private $path;
+ private $baseurl;
private $db;
function __construct() {
$this->config = array();
$this->page = array();
+ $this->pager= array();
$this->scheme = ((isset($_SERVER['HTTPS'])
&& ($_SERVER['HTTPS'])) ? 'https' : 'http' );
@@ -49,9 +94,9 @@ class App {
if(substr($_SERVER['QUERY_STRING'],0,2) == "q=")
$_SERVER['QUERY_STRING'] = substr($_SERVER['QUERY_STRING'],2);
-// $this->cmd = trim($_SERVER['QUERY_STRING'],'/');
$this->cmd = trim($_GET['q'],'/');
+
$this->argv = explode('/',$this->cmd);
$this->argc = count($this->argv);
if((array_key_exists('0',$this->argv)) && strlen($this->argv[0])) {
@@ -60,23 +105,63 @@ class App {
else {
$this->module = 'home';
}
+
+ if($this->cmd == '.well-known/host-meta')
+ require_once('include/hostxrd.php');
+
+ $this->pager['page'] = ((x($_GET,'page')) ? $_GET['page'] : 1);
+ $this->pager['itemspage'] = 50;
+ $this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
+ $this->pager['total'] = 0;
}
function get_baseurl($ssl = false) {
-
- return (($ssl) ? 'https' : $this->scheme) . "://" . $this->hostname
+ if(strlen($this->baseurl))
+ return $this->baseurl;
+
+ $this->baseurl = (($ssl) ? 'https' : $this->scheme) . "://" . $this->hostname
. ((isset($this->path) && strlen($this->path))
? '/' . $this->path : '' );
+ return $this->baseurl;
+ }
+
+ function set_baseurl($url) {
+ $this->baseurl = $url;
+ $this->hostname = basename($url);
+ }
+
+ function get_hostname() {
+ return $this->hostname;
+ }
+
+ function set_hostname($h) {
+ $this->hostname = $h;
}
function set_path($p) {
$this->path = ltrim(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);
+ $this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
+
+ }
+
function init_pagehead() {
if(file_exists("view/head.tpl"))
$s = file_get_contents("view/head.tpl");
- $this->page['htmlhead'] = replace_macros($s,array('$baseurl' => $this->get_baseurl()));
+ $this->page['htmlhead'] = replace_macros($s,array(
+ '$baseurl' => $this->get_baseurl()
+ ));
}
}}
@@ -109,6 +194,43 @@ function system_unavailable() {
killme();
}}
+
+if(! function_exists('check_config')) {
+function check_config(&$a) {
+
+ load_config('system');
+
+ $build = get_config('system','build');
+ if(! x($build))
+ $build = set_config('system','build',BUILD_ID);
+
+ $url = get_config('system','url');
+ if(! x($url))
+ $url = set_config('system','url',$a->get_baseurl());
+
+ if($build != BUILD_ID) {
+ $stored = intval($build);
+ $current = intval(BUILD_ID);
+ if(($stored < $current) && file_exists('update.php')) {
+
+ // We're reporting a different version than what is currently installed.
+ // Run any existing update scripts to bring the database up to current.
+
+ require_once('update.php');
+ for($x = $stored; $x < $current; $x ++) {
+ if(function_exists('update_' . $x)) {
+ $func = 'update_' . $x;
+ $func($a);
+ }
+ }
+ set_config('system','build', BUILD_ID);
+ }
+ }
+ return;
+}}
+
+
+
if(! function_exists('replace_macros')) {
function replace_macros($s,$r) {
@@ -125,6 +247,20 @@ function replace_macros($s,$r) {
}}
+if(! function_exists('load_translation_table')) {
+function load_translation_table($lang) {
+ global $a;
+
+}}
+
+if(! function_exists('t')) {
+function t($s) {
+ global $a;
+
+ if($a->strings[$s])
+ return $a->strings[$s];
+ return $s;
+}}
if(! function_exists('fetch_url')) {
function fetch_url($url,$binary = false) {
@@ -135,6 +271,14 @@ function fetch_url($url,$binary = false) {
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,true);
curl_setopt($ch, CURLOPT_MAXREDIRS,8);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
+ $prx = get_config('system','proxy');
+ if(strlen($prx)) {
+ curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
+ curl_setopt($ch, CURLOPT_PROXY, $prx);
+ $prxusr = get_config('system','proxyuser');
+ if(strlen($prxusr))
+ curl_setopt($ch, CURLOPT_PROXYUSERPWD, $prxusr);
+ }
if($binary)
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
@@ -155,6 +299,14 @@ function post_url($url,$params) {
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
+ $prx = get_config('system','proxy');
+ if(strlen($prx)) {
+ curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
+ curl_setopt($ch, CURLOPT_PROXY, $prx);
+ $prxusr = get_config('system','proxyuser');
+ if(strlen($prxusr))
+ curl_setopt($ch, CURLOPT_PROXYUSERPWD, $prxusr);
+ }
$s = curl_exec($ch);
curl_close($ch);
@@ -173,10 +325,10 @@ function notags($string) {
return(str_replace(array("<",">","\xBA","\xBC","\xBE"), array('[',']','','',''), $string));
}}
-// The PHP built-in tag escape function has traditionally been buggy
if(! function_exists('escape_tags')) {
function escape_tags($string) {
- return(str_replace(array("<",">","&"), array('<','>','&'), $string));
+
+ return(htmlspecialchars($string));
}}
if(! function_exists('login')) {
@@ -280,7 +432,7 @@ function goaway($s) {
if(! function_exists('xml_status')) {
function xml_status($st) {
- header( "Content-type: text/xml");
+ header( "Content-type: text/xml" );
echo ''."\r\n";
echo "