<?php
-
-/** @file boot.php
- *
+/**
+ * @file_tag_unsave_file boot.php
* This file defines some global constants and includes the central App class.
*/
require_once __DIR__ . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';
use Friendica\App;
-use Friendica\Core\System;
-use Friendica\Core\Cache;
+use Friendica\Core\Addon;
use Friendica\Core\Config;
+use Friendica\Core\L10n;
use Friendica\Core\PConfig;
+use Friendica\Core\Protocol;
+use Friendica\Core\System;
use Friendica\Core\Worker;
use Friendica\Database\DBM;
-use Friendica\Model\Contact;
use Friendica\Database\DBStructure;
-use Friendica\Module\Login;
+use Friendica\Model\Contact;
+use Friendica\Model\Conversation;
+use Friendica\Util\DateTimeFormat;
-require_once 'include/network.php';
-require_once 'include/plugin.php';
require_once 'include/text.php';
-require_once 'include/datetime.php';
-require_once 'include/pgettext.php';
-require_once 'include/nav.php';
-require_once 'include/identity.php';
define('FRIENDICA_PLATFORM', 'Friendica');
define('FRIENDICA_CODENAME', 'Asparagus');
define('FRIENDICA_VERSION', '3.6-dev');
define('DFRN_PROTOCOL_VERSION', '2.23');
-define('DB_UPDATE_VERSION', 1242);
+define('DB_UPDATE_VERSION', 1255);
define('NEW_UPDATE_ROUTINE_VERSION', 1170);
/**
* This can be used in HTML and JavaScript where needed a line break.
*/
define('EOL', "<br />\r\n");
-define('ATOM_TIME', 'Y-m-d\TH:i:s\Z');
/**
* @brief Image storage quality.
/**
* @name Protocols
+ * @deprecated since version 3.6
+ * @see Conversation
*
* Different protocols that we are storing
* @{
*/
-define('PROTOCOL_UNKNOWN', 0);
-define('PROTOCOL_DFRN', 1);
-define('PROTOCOL_DIASPORA', 2);
-define('PROTOCOL_OSTATUS_SALMON', 3);
-define('PROTOCOL_OSTATUS_FEED', 4); // Deprecated
-define('PROTOCOL_GS_CONVERSATION', 5); // Deprecated
-define('PROTOCOL_SPLITTED_CONV', 6);
+define('PROTOCOL_UNKNOWN' , Conversation::PROTOCOL_UNKNOWN);
+define('PROTOCOL_DFRN' , Conversation::PROTOCOL_DFRN);
+define('PROTOCOL_DIASPORA' , Conversation::PROTOCOL_DIASPORA);
+define('PROTOCOL_OSTATUS_SALMON' , Conversation::PROTOCOL_OSTATUS_SALMON);
+define('PROTOCOL_OSTATUS_FEED' , Conversation::PROTOCOL_OSTATUS_FEED); // Deprecated
+define('PROTOCOL_GS_CONVERSATION', Conversation::PROTOCOL_GS_CONVERSATION); // Deprecated
+define('PROTOCOL_SPLITTED_CONV' , Conversation::PROTOCOL_SPLITTED_CONV);
/**
* @}
*/
/**
- * @name Network
+ * @name Network constants
+ * @deprecated since version 3.6
+ * @see Protocol
*
* Network and protocol family types
* @{
*/
-define('NETWORK_DFRN', 'dfrn'); // Friendica, Mistpark, other DFRN implementations
-define('NETWORK_ZOT', 'zot!'); // Zot! - Currently unsupported
-define('NETWORK_OSTATUS', 'stat'); // GNU-social, Pleroma, Mastodon, 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
-define('NETWORK_LINKEDIN', 'lnkd'); // LinkedIn
-define('NETWORK_XMPP', 'xmpp'); // XMPP - Currently unsupported
-define('NETWORK_MYSPACE', 'mysp'); // MySpace - Currently unsupported
-define('NETWORK_GPLUS', 'goog'); // Google+
-define('NETWORK_PUMPIO', 'pump'); // pump.io
-define('NETWORK_TWITTER', 'twit'); // Twitter
-define('NETWORK_DIASPORA2', 'dspc'); // Diaspora connector
-define('NETWORK_STATUSNET', 'stac'); // Statusnet connector
-define('NETWORK_APPNET', 'apdn'); // app.net - Dead protocol
-define('NETWORK_NEWS', 'nntp'); // Network News Transfer Protocol - Currently unsupported
-define('NETWORK_ICALENDAR', 'ical'); // iCalendar - Currently unsupported
-define('NETWORK_PNUT', 'pnut'); // pnut.io - Currently unsupported
-define('NETWORK_PHANTOM', 'unkn'); // Place holder
+define('NETWORK_DFRN' , Protocol::DFRN); // Friendica, Mistpark, other DFRN implementations
+define('NETWORK_ZOT' , Protocol::ZOT); // Zot! - Currently unsupported
+define('NETWORK_OSTATUS' , Protocol::OSTATUS); // GNU-social, Pleroma, Mastodon, other OStatus implementations
+define('NETWORK_FEED' , Protocol::FEED); // RSS/Atom feeds with no known "post/notify" protocol
+define('NETWORK_DIASPORA' , Protocol::DIASPORA); // Diaspora
+define('NETWORK_MAIL' , Protocol::MAIL); // IMAP/POP
+define('NETWORK_FACEBOOK' , Protocol::FACEBOOK); // Facebook API
+define('NETWORK_LINKEDIN' , Protocol::LINKEDIN); // LinkedIn
+define('NETWORK_XMPP' , Protocol::XMPP); // XMPP - Currently unsupported
+define('NETWORK_MYSPACE' , Protocol::MYSPACE); // MySpace - Currently unsupported
+define('NETWORK_GPLUS' , Protocol::GPLUS); // Google+
+define('NETWORK_PUMPIO' , Protocol::PUMPIO); // pump.io
+define('NETWORK_TWITTER' , Protocol::TWITTER); // Twitter
+define('NETWORK_DIASPORA2', Protocol::DIASPORA2); // Diaspora connector
+define('NETWORK_STATUSNET', Protocol::STATUSNET); // Statusnet connector
+define('NETWORK_APPNET' , Protocol::APPNET); // app.net - Dead protocol
+define('NETWORK_NEWS' , Protocol::NEWS); // Network News Transfer Protocol - Currently unsupported
+define('NETWORK_ICALENDAR', Protocol::ICALENDAR); // iCalendar - Currently unsupported
+define('NETWORK_PNUT' , Protocol::PNUT); // pnut.io - Currently unsupported
+define('NETWORK_PHANTOM' , Protocol::PHANTOM); // Place holder
/**
* @}
*/
* and existing allocations MUST NEVER BE CHANGED
* OR RE-ASSIGNED! You may only add to them.
*/
-$netgroup_ids = array(
+$netgroup_ids = [
NETWORK_DFRN => (-1),
NETWORK_ZOT => (-2),
NETWORK_OSTATUS => (-3),
NETWORK_PNUT => (-20),
NETWORK_PHANTOM => (-127),
-);
+];
/**
* Maximum number of "people who like (or don't like) this" that we will list by name
ini_set('pcre.backtrack_limit', 500000);
if (get_magic_quotes_gpc()) {
- $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
+ $process = [&$_GET, &$_POST, &$_COOKIE, &$_REQUEST];
while (list($key, $val) = each($process)) {
foreach ($val as $k => $v) {
unset($process[$key][$k]);
if (empty($build)) {
Config::set('system', 'build', DB_UPDATE_VERSION - 1);
- $build = DB_UPDATE_VERSION;
+ $build = DB_UPDATE_VERSION - 1;
}
// We don't support upgrading from very old versions anymore
die('You try to update from a version prior to database version 1170. The direct upgrade path is not supported. Please update to version 3.5.4 before updating to this version.');
}
- if ($build != DB_UPDATE_VERSION) {
+ if ($build < DB_UPDATE_VERSION) {
// When we cannot execute the database update via the worker, we will do it directly
if (!Worker::add(PRIORITY_CRITICAL, 'DBUpdate') && $via_worker) {
update_db();
//send the administrator an e-mail
DBStructure::updateFail(
$x,
- sprintf(t('Update %s failed. See error logs.'), $x)
+ L10n::t('Update %s failed. See error logs.', $x)
);
return false;
} else {
}
/**
- * @brief Synchronise plugins:
+ * @brief Synchronise addons:
*
* $a->config['system']['addon'] contains a comma-separated list of names
- * of plugins/addons which are used on this system.
+ * of addons which are used on this system.
* Go through the database list of already installed addons, and if we have
* an entry, but it isn't in the config list, call the uninstall procedure
* and mark it uninstalled in the database (for now we'll remove it).
- * Then go through the config list and if we have a plugin that isn't installed,
+ * Then go through the config list and if we have a addon that isn't installed,
* call the install procedure and add it to the database.
*
* @param object $a App
*/
-function check_plugins(App $a)
+function check_addons(App $a)
{
$r = q("SELECT * FROM `addon` WHERE `installed` = 1");
if (DBM::is_result($r)) {
$installed = $r;
} else {
- $installed = array();
+ $installed = [];
}
- $plugins = Config::get('system', 'addon');
- $plugins_arr = array();
+ $addons = Config::get('system', 'addon');
+ $addons_arr = [];
- if ($plugins) {
- $plugins_arr = explode(',', str_replace(' ', '', $plugins));
+ if ($addons) {
+ $addons_arr = explode(',', str_replace(' ', '', $addons));
}
- $a->plugins = $plugins_arr;
+ $a->addons = $addons_arr;
- $installed_arr = array();
+ $installed_arr = [];
if (count($installed)) {
foreach ($installed as $i) {
- if (!in_array($i['name'], $plugins_arr)) {
- uninstall_plugin($i['name']);
+ if (!in_array($i['name'], $addons_arr)) {
+ Addon::uninstall($i['name']);
} else {
$installed_arr[] = $i['name'];
}
}
}
- if (count($plugins_arr)) {
- foreach ($plugins_arr as $p) {
+ if (count($addons_arr)) {
+ foreach ($addons_arr as $p) {
if (!in_array($p, $installed_arr)) {
- install_plugin($p);
+ Addon::install($p);
}
}
}
- load_hooks();
+ Addon::loadHooks();
return;
}
-function get_guid($size = 16, $prefix = "")
+function get_guid($size = 16, $prefix = '')
{
- if ($prefix == "") {
+ if (is_bool($prefix) && !$prefix) {
+ $prefix = '';
+ } elseif ($prefix == '') {
$a = get_app();
- $prefix = hash("crc32", $a->get_hostname());
+ $prefix = hash('crc32', $a->get_hostname());
}
while (strlen($prefix) < ($size - 13)) {
if ($size >= 24) {
$prefix = substr($prefix, 0, $size - 22);
- return(str_replace(".", "", uniqid($prefix, true)));
+ return str_replace('.', '', uniqid($prefix, true));
} else {
$prefix = substr($prefix, 0, max($size - 13, 0));
- return(uniqid($prefix));
+ return uniqid($prefix);
}
}
/**
* @brief Used to end the current process, after saving session state.
+ * @deprecated
*/
function killme()
{
- if (!get_app()->is_backend()) {
- session_write_close();
- }
-
exit();
}
if (!$public_contact_id && x($_SESSION, 'authenticated')) {
if (x($_SESSION, 'my_address')) {
// Local user
- $public_contact_id = intval(Contact::getIdForURL($_SESSION['my_address'], 0));
+ $public_contact_id = intval(Contact::getIdForURL($_SESSION['my_address'], 0, true));
} elseif (x($_SESSION, 'visitor_home')) {
// Remote user
- $public_contact_id = intval(Contact::getIdForURL($_SESSION['visitor_home'], 0));
+ $public_contact_id = intval(Contact::getIdForURL($_SESSION['visitor_home'], 0, true));
}
} elseif (!x($_SESSION, 'authenticated')) {
$public_contact_id = false;
{
$a = get_app();
if (!x($_SESSION, 'sysmsg')) {
- $_SESSION['sysmsg'] = array();
+ $_SESSION['sysmsg'] = [];
}
if ($a->interactive) {
$_SESSION['sysmsg'][] = $s;
}
if (!x($_SESSION, 'sysmsg_info')) {
- $_SESSION['sysmsg_info'] = array();
+ $_SESSION['sysmsg_info'] = [];
}
if ($a->interactive) {
$_SESSION['sysmsg_info'][] = $s;
function current_theme()
{
- $app_base_themes = array('duepuntozero', 'dispy', 'quattro');
+ $app_base_themes = ['duepuntozero', 'dispy', 'quattro'];
$a = get_app();
if (DBM::is_result($p)) {
$tmp_dob = substr($p[0]['dob'], 5);
if (intval($tmp_dob)) {
- $y = datetime_convert($tz, $tz, 'now', 'Y');
+ $y = DateTimeFormat::timezoneNow($tz, 'Y');
$bd = $y . '-' . $tmp_dob . ' 00:00';
$t_dob = strtotime($bd);
- $now = strtotime(datetime_convert($tz, $tz, 'now'));
+ $now = strtotime(DateTimeFormat::timezoneNow($tz));
if ($t_dob < $now) {
$bd = $y + 1 . '-' . $tmp_dob . ' 00:00';
}
- $birthday = datetime_convert($tz, 'UTC', $bd, ATOM_TIME);
+ $birthday = DateTimeFormat::convert($bd, 'UTC', $tz, DateTimeFormat::ATOM);
}
}
$args = array_values($args);
}
- return array(
+ return [
'base' => $base,
'args' => $args,
- );
+ ];
}
/**
$reload_uri .= "&offset=" . urlencode($a->page_offset);
}
- $arr = array("pageno" => $pageno, "reload_uri" => $reload_uri);
+ $arr = ["pageno" => $pageno, "reload_uri" => $reload_uri];
return $arr;
}