mirror of
https://github.com/friendica/friendica
synced 2024-12-23 09:20:17 +00:00
Merge remote-tracking branch 'upstream/develop' into contact-discovery
This commit is contained in:
commit
80f4214d91
16 changed files with 58 additions and 75 deletions
|
@ -1,3 +1,5 @@
|
|||
Version 2019.09-dev (UNRELEASED)
|
||||
|
||||
Version 2019.06 (2019-06-23)
|
||||
Friendica Core:
|
||||
Update to the tranlation (CS, DE, EN-GB, EN-US, ET, FR, IT, PL, PT-BR, SV) [translation teams]
|
||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
|||
2019.06
|
||||
2019.09-dev
|
||||
|
|
3
boot.php
3
boot.php
|
@ -31,7 +31,7 @@ use Friendica\Util\DateTimeFormat;
|
|||
|
||||
define('FRIENDICA_PLATFORM', 'Friendica');
|
||||
define('FRIENDICA_CODENAME', 'Dalmatian Bellflower');
|
||||
define('FRIENDICA_VERSION', '2019.06');
|
||||
define('FRIENDICA_VERSION', '2019.09-dev');
|
||||
define('DFRN_PROTOCOL_VERSION', '2.23');
|
||||
define('NEW_UPDATE_ROUTINE_VERSION', 1170);
|
||||
|
||||
|
@ -334,6 +334,7 @@ function get_app()
|
|||
* @param array $args
|
||||
* @brief Returns a defaut value if the provided variable or array key is falsy
|
||||
* @return mixed
|
||||
* @deprecated since version 2019.06, use native coalesce operator (??) instead
|
||||
*/
|
||||
function defaults(...$args)
|
||||
{
|
||||
|
|
|
@ -15,6 +15,7 @@ use Friendica\Core\Logger;
|
|||
use Friendica\Core\PConfig;
|
||||
use Friendica\Core\Protocol;
|
||||
use Friendica\Core\Renderer;
|
||||
use Friendica\Core\Session;
|
||||
use Friendica\Core\System;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\Model\Contact;
|
||||
|
@ -528,7 +529,7 @@ function conversation(App $a, array $items, Pager $pager, $mode, $update, $previ
|
|||
|
||||
if (!$update) {
|
||||
$live_update_div = '<div id="live-display"></div>' . "\r\n"
|
||||
. "<script> var profile_uid = " . defaults($_SESSION, 'uid', 0) . ";"
|
||||
. "<script> var profile_uid = " . Session::get('uid', 0) . ";"
|
||||
. " var profile_page = 1; </script>";
|
||||
}
|
||||
} elseif ($mode === 'community') {
|
||||
|
|
|
@ -19,6 +19,7 @@ use Friendica\Core\Logger;
|
|||
use Friendica\Core\PConfig;
|
||||
use Friendica\Core\Protocol;
|
||||
use Friendica\Core\Renderer;
|
||||
use Friendica\Core\Session;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\Model\Contact;
|
||||
use Friendica\Model\Group;
|
||||
|
@ -852,7 +853,7 @@ function networkThreadedView(App $a, $update, $parent)
|
|||
((time() - $_SESSION['network_last_date_timestamp']) < ($browser_update * 10))) {
|
||||
$bottom_limit = $_SESSION['network_last_date'];
|
||||
}
|
||||
$_SESSION['network_last_date'] = defaults($_SESSION, 'network_last_top_limit', $top_limit);
|
||||
$_SESSION['network_last_date'] = Session::get('network_last_top_limit', $top_limit);
|
||||
$_SESSION['network_last_date_timestamp'] = time();
|
||||
|
||||
if ($last_date > $top_limit) {
|
||||
|
|
|
@ -14,6 +14,7 @@ use Friendica\Core\L10n;
|
|||
use Friendica\Core\Logger;
|
||||
use Friendica\Core\PConfig;
|
||||
use Friendica\Core\Renderer;
|
||||
use Friendica\Core\Session;
|
||||
use Friendica\Core\System;
|
||||
use Friendica\Core\Theme;
|
||||
use Friendica\Core\Worker;
|
||||
|
@ -911,8 +912,8 @@ function settings_content(App $a)
|
|||
}
|
||||
}
|
||||
|
||||
$theme_selected = defaults($_SESSION, 'theme' , $default_theme);
|
||||
$mobile_theme_selected = defaults($_SESSION, 'mobile-theme', $default_mobile_theme);
|
||||
$theme_selected = Session::get('theme', $default_theme);
|
||||
$mobile_theme_selected = Session::get('mobile-theme', $default_mobile_theme);
|
||||
|
||||
$nowarn_insecure = intval(PConfig::get(local_user(), 'system', 'nowarn_insecure'));
|
||||
|
||||
|
|
13
src/App.php
13
src/App.php
|
@ -1032,10 +1032,11 @@ class App
|
|||
// Valid profile links contain a path with "/profile/" and no query parameters
|
||||
if ((parse_url($_GET['zrl'], PHP_URL_QUERY) == "") &&
|
||||
strstr(parse_url($_GET['zrl'], PHP_URL_PATH), "/profile/")) {
|
||||
if (defaults($_SESSION, "visitor_home", "") != $_GET["zrl"]) {
|
||||
$_SESSION['my_url'] = $_GET['zrl'];
|
||||
$_SESSION['authenticated'] = 0;
|
||||
if (Core\Session::get('visitor_home') != $_GET["zrl"]) {
|
||||
Core\Session::set('my_url', $_GET['zrl']);
|
||||
Core\Session::set('authenticated', 0);
|
||||
}
|
||||
|
||||
Model\Profile::zrlInit($this);
|
||||
} else {
|
||||
// Someone came with an invalid parameter, maybe as a DDoS attempt
|
||||
|
@ -1060,9 +1061,9 @@ class App
|
|||
header('X-Account-Management-Status: none');
|
||||
}
|
||||
|
||||
$_SESSION['sysmsg'] = defaults($_SESSION, 'sysmsg' , []);
|
||||
$_SESSION['sysmsg_info'] = defaults($_SESSION, 'sysmsg_info' , []);
|
||||
$_SESSION['last_updated'] = defaults($_SESSION, 'last_updated', []);
|
||||
$_SESSION['sysmsg'] = Core\Session::get('sysmsg', []);
|
||||
$_SESSION['sysmsg_info'] = Core\Session::get('sysmsg_info', []);
|
||||
$_SESSION['last_updated'] = Core\Session::get('last_updated', []);
|
||||
|
||||
/*
|
||||
* check_config() is responsible for running update scripts. These automatically
|
||||
|
|
|
@ -9,6 +9,7 @@ use Friendica\Core\Config;
|
|||
use Friendica\Core\Hook;
|
||||
use Friendica\Core\L10n;
|
||||
use Friendica\Core\Renderer;
|
||||
use Friendica\Core\Session;
|
||||
use Friendica\Core\System;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\Model\Profile;
|
||||
|
@ -174,7 +175,7 @@ class Nav
|
|||
// "Home" should also take you home from an authenticated remote profile connection
|
||||
$homelink = Profile::getMyURL();
|
||||
if (! $homelink) {
|
||||
$homelink = defaults($_SESSION, 'visitor_home', '');
|
||||
$homelink = Session::get('visitor_home', '');
|
||||
}
|
||||
|
||||
if (($a->module != 'home') && (! (local_user()))) {
|
||||
|
@ -243,7 +244,7 @@ class Nav
|
|||
$nav['home'] = ['profile/' . $a->user['nickname'], L10n::t('Home'), '', L10n::t('Your posts and conversations')];
|
||||
|
||||
// Don't show notifications for public communities
|
||||
if (defaults($_SESSION, 'page_flags', '') != User::PAGE_FLAGS_COMMUNITY) {
|
||||
if (Session::get('page_flags', '') != User::PAGE_FLAGS_COMMUNITY) {
|
||||
$nav['introductions'] = ['notifications/intros', L10n::t('Introductions'), '', L10n::t('Friend Requests')];
|
||||
$nav['notifications'] = ['notifications', L10n::t('Notifications'), '', L10n::t('Notifications')];
|
||||
$nav['notifications']['all'] = ['notifications/system', L10n::t('See all notifications'), '', ''];
|
||||
|
|
|
@ -357,7 +357,7 @@ class BBCode extends BaseObject
|
|||
*/
|
||||
public static function toPlaintext($text, $keep_urls = true)
|
||||
{
|
||||
$naked_text = preg_replace('/\[(.+?)\]\s*/','', $text);
|
||||
$naked_text = preg_replace('/\[.+?\]/','', $text);
|
||||
if (!$keep_urls) {
|
||||
$naked_text = preg_replace('#https?\://[^\s<]+[^\s\.\)]#i', '', $naked_text);
|
||||
}
|
||||
|
|
|
@ -567,7 +567,13 @@ class HTML
|
|||
return $urls;
|
||||
}
|
||||
|
||||
public static function toPlaintext($html, $wraplength = 75, $compact = false)
|
||||
/**
|
||||
* @param string $html
|
||||
* @param int $wraplength Ensures individual lines aren't longer than this many characters. Doesn't break words.
|
||||
* @param bool $compact True: Completely strips image tags; False: Keeps image URLs
|
||||
* @return string
|
||||
*/
|
||||
public static function toPlaintext(string $html, $wraplength = 75, $compact = false)
|
||||
{
|
||||
$message = str_replace("\r", "", $html);
|
||||
|
||||
|
@ -578,15 +584,9 @@ class HTML
|
|||
|
||||
@$doc->loadHTML($message);
|
||||
|
||||
$xpath = new DOMXPath($doc);
|
||||
$list = $xpath->query("//pre");
|
||||
foreach ($list as $node) {
|
||||
$node->nodeValue = str_replace("\n", "\r", $node->nodeValue);
|
||||
}
|
||||
|
||||
$message = $doc->saveHTML();
|
||||
$message = str_replace(["\n<", ">\n", "\r", "\n", "\xC3\x82\xC2\xA0"], ["<", ">", "<br>", " ", ""], $message);
|
||||
$message = preg_replace('= [\s]*=i', " ", $message);
|
||||
// Remove eventual UTF-8 BOM
|
||||
$message = str_replace("\xC3\x82\xC2\xA0", "", $message);
|
||||
|
||||
// Collecting all links
|
||||
$urls = self::collectURLs($message);
|
||||
|
@ -596,18 +596,6 @@ class HTML
|
|||
self::tagToBBCode($doc, 'html', [], '', '');
|
||||
self::tagToBBCode($doc, 'body', [], '', '');
|
||||
|
||||
// MyBB-Auszeichnungen
|
||||
/*
|
||||
self::node2BBCode($doc, 'span', array('style'=>'text-decoration: underline;'), '_', '_');
|
||||
self::node2BBCode($doc, 'span', array('style'=>'font-style: italic;'), '/', '/');
|
||||
self::node2BBCode($doc, 'span', array('style'=>'font-weight: bold;'), '*', '*');
|
||||
|
||||
self::node2BBCode($doc, 'strong', array(), '*', '*');
|
||||
self::node2BBCode($doc, 'b', array(), '*', '*');
|
||||
self::node2BBCode($doc, 'i', array(), '/', '/');
|
||||
self::node2BBCode($doc, 'u', array(), '_', '_');
|
||||
*/
|
||||
|
||||
if ($compact) {
|
||||
self::tagToBBCode($doc, 'blockquote', [], "»", "«");
|
||||
} else {
|
||||
|
@ -621,8 +609,6 @@ class HTML
|
|||
self::tagToBBCode($doc, 'div', [], "\r", "\r");
|
||||
self::tagToBBCode($doc, 'p', [], "\n", "\n");
|
||||
|
||||
//self::node2BBCode($doc, 'ul', array(), "\n[list]", "[/list]\n");
|
||||
//self::node2BBCode($doc, 'ol', array(), "\n[list=1]", "[/list]\n");
|
||||
self::tagToBBCode($doc, 'li', [], "\n* ", "\n");
|
||||
|
||||
self::tagToBBCode($doc, 'hr', [], "\n" . str_repeat("-", 70) . "\n", "");
|
||||
|
@ -637,12 +623,6 @@ class HTML
|
|||
self::tagToBBCode($doc, 'h5', [], "\n\n*", "*\n");
|
||||
self::tagToBBCode($doc, 'h6', [], "\n\n*", "*\n");
|
||||
|
||||
// Problem: there is no reliable way to detect if it is a link to a tag or profile
|
||||
//self::node2BBCode($doc, 'a', array('href'=>'/(.+)/'), ' $1 ', ' ', true);
|
||||
//self::node2BBCode($doc, 'a', array('href'=>'/(.+)/', 'rel'=>'oembed'), ' $1 ', '', true);
|
||||
//self::node2BBCode($doc, 'img', array('alt'=>'/(.+)/'), '$1', '');
|
||||
//self::node2BBCode($doc, 'img', array('title'=>'/(.+)/'), '$1', '');
|
||||
//self::node2BBCode($doc, 'img', array(), '', '');
|
||||
if (!$compact) {
|
||||
self::tagToBBCode($doc, 'img', ['src' => '/(.+)/'], ' [img]$1', '[/img] ');
|
||||
} else {
|
||||
|
|
|
@ -62,13 +62,7 @@ class Session
|
|||
*/
|
||||
public static function get($name, $defaults = null)
|
||||
{
|
||||
if (isset($_SESSION)) {
|
||||
$return = defaults($_SESSION, $name, $defaults);
|
||||
} else {
|
||||
$return = $defaults;
|
||||
}
|
||||
|
||||
return $return;
|
||||
return $_SESSION[$name] ?? $defaults;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -159,6 +159,12 @@ class Babel extends BaseModule
|
|||
'title' => L10n::t('HTML::toPlaintext'),
|
||||
'content' => '<pre>' . $text . '</pre>'
|
||||
];
|
||||
|
||||
$text = Text\HTML::toPlaintext($html, 0, true);
|
||||
$results[] = [
|
||||
'title' => L10n::t('HTML::toPlaintext'),
|
||||
'content' => '<pre>' . $text . '</pre>'
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -32,26 +32,21 @@ class Login extends BaseModule
|
|||
{
|
||||
$a = self::getApp();
|
||||
|
||||
if (!empty($_SESSION['theme'])) {
|
||||
unset($_SESSION['theme']);
|
||||
}
|
||||
|
||||
if (!empty($_SESSION['mobile-theme'])) {
|
||||
unset($_SESSION['mobile-theme']);
|
||||
}
|
||||
Session::remove('theme');
|
||||
Session::remove('mobile-theme');
|
||||
|
||||
if (local_user()) {
|
||||
$a->internalRedirect();
|
||||
}
|
||||
|
||||
return self::form(defaults($_SESSION, 'return_path', null), intval(Config::get('config', 'register_policy')) !== \Friendica\Module\Register::CLOSED);
|
||||
return self::form(Session::get('return_path'), intval(Config::get('config', 'register_policy')) !== \Friendica\Module\Register::CLOSED);
|
||||
}
|
||||
|
||||
public static function post()
|
||||
{
|
||||
$return_path = defaults($_SESSION, 'return_path', '');
|
||||
$return_path = Session::get('return_path');
|
||||
session_unset();
|
||||
$_SESSION['return_path'] = $return_path;
|
||||
Session::set('return_path', $return_path);
|
||||
|
||||
// OpenId Login
|
||||
if (
|
||||
|
@ -159,17 +154,13 @@ class Login extends BaseModule
|
|||
}
|
||||
|
||||
// if we haven't failed up this point, log them in.
|
||||
$_SESSION['remember'] = $remember;
|
||||
$_SESSION['last_login_date'] = DateTimeFormat::utcNow();
|
||||
Session::set('remember', $remember);
|
||||
Session::set('last_login_date', DateTimeFormat::utcNow());
|
||||
|
||||
Session::setAuthenticatedForUser($a, $record, true, true);
|
||||
|
||||
if (!empty($_SESSION['return_path'])) {
|
||||
$return_path = $_SESSION['return_path'];
|
||||
unset($_SESSION['return_path']);
|
||||
} else {
|
||||
$return_path = '';
|
||||
}
|
||||
$return_path = Session::get('return_path', '');
|
||||
Session::remove('return_path');
|
||||
|
||||
$a->internalRedirect($return_path);
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@ use Friendica\Core\Config;
|
|||
use Friendica\Core\Hook;
|
||||
use Friendica\Core\L10n;
|
||||
use Friendica\Core\PConfig;
|
||||
use Friendica\Core\Session;
|
||||
use Friendica\Core\System;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\Model\Contact as ContactModel;
|
||||
|
@ -223,8 +224,10 @@ class Profile extends BaseModule
|
|||
$sql_extra = Item::getPermissionsSQLByUserId($a->profile['profile_uid'], $remote_contact, $groups, $remote_cid);
|
||||
$sql_extra2 = '';
|
||||
|
||||
$last_updated_array = Session::get('last_updated', []);
|
||||
|
||||
if ($update) {
|
||||
$last_updated = (defaults($_SESSION['last_updated'], $last_updated_key, 0));
|
||||
$last_updated = $last_updated_array[$last_updated_key] ?? 0;
|
||||
|
||||
// If the page user is the owner of the page we should query for unseen
|
||||
// items. Otherwise use a timestamp of the last succesful update request.
|
||||
|
@ -331,7 +334,8 @@ class Profile extends BaseModule
|
|||
|
||||
// Set a time stamp for this page. We will make use of it when we
|
||||
// search for new items (update routine)
|
||||
$_SESSION['last_updated'][$last_updated_key] = time();
|
||||
$last_updated_array[$last_updated_key] = time();
|
||||
Session::set('last_updated', $last_updated_array);
|
||||
|
||||
if ($is_owner && !$update && !Config::get('theme', 'hide_eventlist')) {
|
||||
$o .= ProfileModel::getBirthdays();
|
||||
|
|
|
@ -15,6 +15,7 @@ use Friendica\Core\Logger;
|
|||
use Friendica\Core\PConfig;
|
||||
use Friendica\Core\Protocol;
|
||||
use Friendica\Core\Renderer;
|
||||
use Friendica\Core\Session;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\Model\Contact;
|
||||
use Friendica\Model\Item;
|
||||
|
@ -400,7 +401,7 @@ class Post extends BaseObject
|
|||
'location' => $location_e,
|
||||
'indent' => $indent,
|
||||
'shiny' => $shiny,
|
||||
'owner_self' => $item['author-link'] == defaults($_SESSION, 'my_url', null),
|
||||
'owner_self' => $item['author-link'] == Session::get('my_url'),
|
||||
'owner_url' => $this->getOwnerUrl(),
|
||||
'owner_photo' => $a->removeBaseURL(ProxyUtils::proxifyUrl($item['owner-avatar'], false, ProxyUtils::SIZE_THUMB)),
|
||||
'owner_name' => $owner_name_e,
|
||||
|
|
|
@ -14,9 +14,8 @@ use Friendica\Core\Config;
|
|||
use Friendica\Core\Hook;
|
||||
use Friendica\Core\L10n;
|
||||
use Friendica\Core\Logger;
|
||||
use Friendica\Core\PConfig;
|
||||
use Friendica\Core\Renderer;
|
||||
use Friendica\Core\System;
|
||||
use Friendica\Core\Session;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\Model;
|
||||
use Friendica\Module;
|
||||
|
@ -201,7 +200,7 @@ function frio_remote_nav($a, &$nav)
|
|||
// get the homelink from $_XSESSION
|
||||
$homelink = Model\Profile::getMyURL();
|
||||
if (!$homelink) {
|
||||
$homelink = defaults($_SESSION, 'visitor_home', '');
|
||||
$homelink = Session::get('visitor_home', '');
|
||||
}
|
||||
|
||||
// split up the url in it's parts (protocol,domain/directory, /profile/, nickname
|
||||
|
|
Loading…
Reference in a new issue