X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=boot.php;h=b738125c8995c1eaf78cc8fdf19b992b9ae86497;hb=1e967eddb75ebed6712e33735971d53b009442dd;hp=37cd4259238a9fb77d234dd091c3fdfca3c09fb3;hpb=32e96d2647b4f535bf329caf160336f3358ce423;p=friendica.git
diff --git a/boot.php b/boot.php
index 37cd425923..b738125c89 100644
--- a/boot.php
+++ b/boot.php
@@ -2,9 +2,9 @@
set_time_limit(0);
-define ( 'BUILD_ID', 1040 );
-define ( 'FRIENDIKA_VERSION', '2.10.0912' );
-define ( 'DFRN_PROTOCOL_VERSION', '2.1' );
+define ( 'FRIENDIKA_VERSION', '2.1.953' );
+define ( 'DFRN_PROTOCOL_VERSION', '2.21' );
+define ( 'DB_UPDATE_VERSION', 1053 );
define ( 'EOL', "
\r\n" );
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
@@ -73,6 +73,18 @@ define ( 'PAGE_SOAPBOX', 1 );
define ( 'PAGE_COMMUNITY', 2 );
define ( 'PAGE_FREELOVE', 3 );
+/**
+ * Network and protocol family types
+ */
+
+define ( 'NETWORK_DFRN', 'dfrn'); // Friendika, Mistpark, other DFRN implementations
+define ( 'NETWORK_OSTATUS', 'stat'); // status.net, identi.ca, GNU-social, other OStatus implementations
+define ( 'NETWORK_FEED', 'feed'); // RSS/Atom feeds with no known "post/notify" protocol
+define ( 'NETWORK_DIASPORA', 'dspr'); // Diaspora
+define ( 'NETWORK_MAIL', 'mail'); // IMAP/POP
+define ( 'NETWORK_FACEBOOK', 'face'); // Facebook API
+
+
/**
* Maximum number of "people who like (or don't like) this" that we will list by name
*/
@@ -159,6 +171,11 @@ if (get_magic_quotes_gpc()) {
unset($process);
}
+/*
+ * translation system
+ */
+require_once("include/pgettext.php");
+
/**
*
@@ -184,6 +201,7 @@ class App {
public $user;
public $cid;
public $contact;
+ public $page_contact;
public $content;
public $data;
public $error = false;
@@ -272,7 +290,7 @@ class App {
if($this->cmd === '.well-known/host-meta') {
require_once('include/hostxrd.php');
- hostxrd($this->hostname);
+ hostxrd($this->get_baseurl());
// NOTREACHED
}
@@ -347,10 +365,12 @@ class App {
function init_pagehead() {
$this->page['title'] = $this->config['sitename'];
- $tpl = load_view_file("view/head.tpl");
+ $tpl = load_view_file('view/head.tpl');
$this->page['htmlhead'] = replace_macros($tpl,array(
'$baseurl' => $this->get_baseurl() . '/',
- '$generator' => 'Friendika' . ' ' . FRIENDIKA_VERSION
+ '$generator' => 'Friendika' . ' ' . FRIENDIKA_VERSION,
+ '$delitem' => t('Delete this item?'),
+ '$comment' => t('Comment')
));
}
@@ -430,20 +450,23 @@ function check_config(&$a) {
load_config('system');
- if(! x($_SERVER,'SERVER_NAME'))
- return;
-
$build = get_config('system','build');
if(! x($build))
- $build = set_config('system','build',BUILD_ID);
+ $build = set_config('system','build',DB_UPDATE_VERSION);
$url = get_config('system','url');
- if(! x($url))
+
+ // if the url isn't set or the stored url is radically different
+ // than the currently visited url, store the current value accordingly.
+ // "Radically different" ignores common variations such as http vs https
+ // and www.example.com vs example.com.
+
+ if((! x($url)) || (! link_compare($url,$a->get_baseurl())))
$url = set_config('system','url',$a->get_baseurl());
- if($build != BUILD_ID) {
+ if($build != DB_UPDATE_VERSION) {
$stored = intval($build);
- $current = intval(BUILD_ID);
+ $current = intval(DB_UPDATE_VERSION);
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.
@@ -455,7 +478,7 @@ function check_config(&$a) {
$func($a);
}
}
- set_config('system','build', BUILD_ID);
+ set_config('system','build', DB_UPDATE_VERSION);
}
}
@@ -585,43 +608,16 @@ function reload_plugins() {
// For instance if 'test' => "foo" and 'testing' => "bar", testing could become either bar or fooing,
// depending on the order in which they were declared in the array.
+require_once("include/template_processor.php");
+
if(! function_exists('replace_macros')) {
function replace_macros($s,$r) {
+ global $t;
+
+ return $t->replace($s,$r);
- $search = array();
- $replace = array();
-
- if(is_array($r) && count($r)) {
- foreach ($r as $k => $v ) {
- $search[] = $k;
- $replace[] = $v;
- }
- }
- return str_replace($search,$replace,$s);
-}}
-
-
-// load string translation table for alternate language
-
-if(! function_exists('load_translation_table')) {
-function load_translation_table($lang) {
- global $a;
-
- if(file_exists("view/$lang/strings.php"))
- include("view/$lang/strings.php");
}}
-// translate string if translation exists
-
-if(! function_exists('t')) {
-function t($s) {
-
- $a = get_app();
-
- if(x($a->strings,$s))
- return $a->strings[$s];
- return $s;
-}}
// curl wrapper. If binary flag is true, return binary
// results.
@@ -1085,6 +1081,7 @@ function paginate(&$a) {
$stripped = preg_replace('/(&page=[0-9]*)/','',$a->query_string);
$stripped = str_replace('q=','',$stripped);
$stripped = trim($stripped,'/');
+ $pagenum = $a->pager['page'];
$url = $a->get_baseurl() . '/' . $stripped;
@@ -1097,7 +1094,7 @@ function paginate(&$a) {
$numpages = $a->pager['total'] / $a->pager['itemspage'];
- $numstart = 1;
+ $numstart = 1;
$numstop = $numpages;
if($numpages > 14) {
@@ -1492,7 +1489,9 @@ function lrdd($uri) {
return array();
logger('lrdd: host_meta: ' . $xml, LOGGER_DATA);
- $h = simplexml_load_string($xml);
+
+ $h = parse_xml_string($xml);
+
$arr = convert_xml_element_to_array($h);
if(isset($arr['xrd']['property'])) {
@@ -1564,16 +1563,19 @@ function lrdd($uri) {
$headers = $a->get_curl_headers();
logger('lrdd: headers=' . $headers, LOGGER_DEBUG);
- require_once('library/HTML5/Parser.php');
- $dom = @HTML5_Parser::parse($html);
-
- if($dom) {
- $items = $dom->getElementsByTagName('link');
- foreach($items as $item) {
- $x = $item->getAttribute('rel');
- if($x == "lrdd") {
- $pagelink = $item->getAttribute('href');
- break;
+ // don't try and parse raw xml as html
+ if(! strstr($html,'getElementsByTagName('link');
+ foreach($items as $item) {
+ $x = $item->getAttribute('rel');
+ if($x == "lrdd") {
+ $pagelink = $item->getAttribute('href');
+ break;
+ }
}
}
}
@@ -1620,9 +1622,15 @@ function lrdd($uri) {
if(! function_exists('fetch_lrdd_template')) {
function fetch_lrdd_template($host) {
$tpl = '';
- $url = 'http://' . $host . '/.well-known/host-meta' ;
- $links = fetch_xrd_links($url);
-logger('template: ' . print_r($links,true));
+
+ $url1 = 'https://' . $host . '/.well-known/host-meta' ;
+ $url2 = 'http://' . $host . '/.well-known/host-meta' ;
+ $links = fetch_xrd_links($url1);
+ logger('template (https): ' . print_r($links,true));
+ if(! count($links)) {
+ $links = fetch_xrd_links($url2);
+ logger('template (http): ' . print_r($links,true));
+ }
if(count($links)) {
foreach($links as $link)
if($link['@attributes']['rel'] && $link['@attributes']['rel'] === 'lrdd')
@@ -1646,7 +1654,7 @@ function fetch_xrd_links($url) {
return array();
logger('fetch_xrd_links: ' . $xml, LOGGER_DATA);
- $h = simplexml_load_string($xml);
+ $h = parse_xml_string($xml);
$arr = convert_xml_element_to_array($h);
$links = array();
@@ -1825,7 +1833,7 @@ function allowed_email($email) {
if(count($allowed)) {
foreach($allowed as $a) {
$pat = strtolower(trim($a));
- if(($fnmatch && fnmatch($pat,$host)) || ($pat == $host)) {
+ if(($fnmatch && fnmatch($pat,$domain)) || ($pat == $domain)) {
$found = true;
break;
}
@@ -1834,34 +1842,6 @@ function allowed_email($email) {
return $found;
}}
-// Format the like/dislike text for a profile item
-// $cnt = number of people who like/dislike the item
-// $arr = array of pre-linked names of likers/dislikers
-// $type = one of 'like, 'dislike'
-// $id = item id
-// returns formatted text
-
-if(! function_exists('format_like')) {
-function format_like($cnt,$arr,$type,$id) {
- $o = '';
- if($cnt == 1)
- $o .= $arr[0] . (($type === 'like') ? t(' likes this.') : t(' doesn\'t like this.')) . EOL ;
- else {
- $o .= ''
- . $cnt . ' ' . t('people') . ' ' . (($type === 'like') ? t('like this.') : t('don\'t like this.')) . EOL ;
- $total = count($arr);
- if($total >= MAX_LIKERS)
- $arr = array_slice($arr, 0, MAX_LIKERS - 1);
- if($total < MAX_LIKERS)
- $arr[count($arr)-1] = t('and') . ' ' . $arr[count($arr)-1];
- $str = implode(', ', $arr);
- if($total >= MAX_LIKERS)
- $str .= t(', and ') . $total - MAX_LIKERS . t(' other people');
- $str .= (($type === 'like') ? t(' like this.') : t(' don\'t like this.'));
- $o .= "\t" . '