X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=boot.php;h=ea1b273f2e8f24fac000e355ce1293ee1bcab174;hb=8d0f4710a4e4646c9dcc99cf8b4c0c36650c8efd;hp=7654d261c3c5b0576511a5a26209c69237ee7b92;hpb=c17adaf3333b356d0c7b19226b29cd733a43017b;p=friendica.git diff --git a/boot.php b/boot.php index 7654d261c3..ea1b273f2e 100644 --- a/boot.php +++ b/boot.php @@ -29,7 +29,7 @@ use Friendica\Core\PConfig; use Friendica\Core\Protocol; use Friendica\Core\System; use Friendica\Core\Worker; -use Friendica\Database\DBM; +use Friendica\Database\DBA; use Friendica\Database\DBStructure; use Friendica\Model\Contact; use Friendica\Model\Conversation; @@ -39,9 +39,9 @@ require_once 'include/text.php'; define('FRIENDICA_PLATFORM', 'Friendica'); define('FRIENDICA_CODENAME', 'The Tazmans Flax-lily'); -define('FRIENDICA_VERSION', '2018.08-dev'); +define('FRIENDICA_VERSION', '2018.12-dev'); define('DFRN_PROTOCOL_VERSION', '2.23'); -define('DB_UPDATE_VERSION', 1279); +define('DB_UPDATE_VERSION', 1287); define('NEW_UPDATE_ROUTINE_VERSION', 1170); /** @@ -152,19 +152,6 @@ define('REGISTER_OPEN', 2); * @} */ -/** - * @name Contact_is - * - * Relationship types - * @{ - */ -define('CONTACT_IS_FOLLOWER', 1); -define('CONTACT_IS_SHARING', 2); -define('CONTACT_IS_FRIEND', 3); -/** - * @} - */ - /** * @name Update * @@ -177,55 +164,6 @@ define('UPDATE_FAILED', 1); * @} */ -/** - * @name page/profile types - * - * PAGE_NORMAL is a typical personal profile account - * PAGE_SOAPBOX automatically approves all friend requests as CONTACT_IS_SHARING, (readonly) - * PAGE_COMMUNITY automatically approves all friend requests as CONTACT_IS_SHARING, but with - * write access to wall and comments (no email and not included in page owner's ACL lists) - * PAGE_FREELOVE automatically approves all friend requests as full friends (CONTACT_IS_FRIEND). - * - * @{ - */ -define('PAGE_NORMAL', 0); -define('PAGE_SOAPBOX', 1); -define('PAGE_COMMUNITY', 2); -define('PAGE_FREELOVE', 3); -define('PAGE_BLOG', 4); -define('PAGE_PRVGROUP', 5); -/** - * @} - */ - -/** - * @name account types - * - * ACCOUNT_TYPE_PERSON - the account belongs to a person - * Associated page types: PAGE_NORMAL, PAGE_SOAPBOX, PAGE_FREELOVE - * - * ACCOUNT_TYPE_ORGANISATION - the account belongs to an organisation - * Associated page type: PAGE_SOAPBOX - * - * ACCOUNT_TYPE_NEWS - the account is a news reflector - * Associated page type: PAGE_SOAPBOX - * - * ACCOUNT_TYPE_COMMUNITY - the account is community forum - * Associated page types: PAGE_COMMUNITY, PAGE_PRVGROUP - * - * ACCOUNT_TYPE_RELAY - the account is a relay - * This will only be assigned to contacts, not to user accounts - * @{ - */ -define('ACCOUNT_TYPE_PERSON', 0); -define('ACCOUNT_TYPE_ORGANISATION', 1); -define('ACCOUNT_TYPE_NEWS', 2); -define('ACCOUNT_TYPE_COMMUNITY', 3); -define('ACCOUNT_TYPE_RELAY', 4); -/** - * @} - */ - /** * @name CP * @@ -241,84 +179,32 @@ define('CP_USERS_AND_GLOBAL', 2); * @} */ -/** - * @name Protocols - * @deprecated since version 3.6 - * @see Conversation - * - * Different protocols that we are storing - * @{ - */ -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 constants - * @deprecated since version 3.6 - * @see Protocol - * - * Network and protocol family types - * @{ - */ -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 -/** - * @} - */ - /** * These numbers are used in stored permissions * and existing allocations MUST NEVER BE CHANGED * OR RE-ASSIGNED! You may only add to them. */ $netgroup_ids = [ - NETWORK_DFRN => (-1), - NETWORK_ZOT => (-2), - NETWORK_OSTATUS => (-3), - NETWORK_FEED => (-4), - NETWORK_DIASPORA => (-5), - NETWORK_MAIL => (-6), - NETWORK_FACEBOOK => (-8), - NETWORK_LINKEDIN => (-9), - NETWORK_XMPP => (-10), - NETWORK_MYSPACE => (-11), - NETWORK_GPLUS => (-12), - NETWORK_PUMPIO => (-13), - NETWORK_TWITTER => (-14), - NETWORK_DIASPORA2 => (-15), - NETWORK_STATUSNET => (-16), - NETWORK_APPNET => (-17), - NETWORK_NEWS => (-18), - NETWORK_ICALENDAR => (-19), - NETWORK_PNUT => (-20), - - NETWORK_PHANTOM => (-127), + Protocol::DFRN => (-1), + Protocol::ZOT => (-2), + Protocol::OSTATUS => (-3), + Protocol::FEED => (-4), + Protocol::DIASPORA => (-5), + Protocol::MAIL => (-6), + Protocol::FACEBOOK => (-8), + Protocol::LINKEDIN => (-9), + Protocol::XMPP => (-10), + Protocol::MYSPACE => (-11), + Protocol::GPLUS => (-12), + Protocol::PUMPIO => (-13), + Protocol::TWITTER => (-14), + Protocol::DIASPORA2 => (-15), + Protocol::STATUSNET => (-16), + Protocol::NEWS => (-18), + Protocol::ICALENDAR => (-19), + Protocol::PNUT => (-20), + + Protocol::PHANTOM => (-127), ]; /** @@ -589,44 +475,6 @@ function defaults() { return $return; } -/** - * @brief Returns the baseurl. - * - * @see System::baseUrl() - * - * @return string - * @TODO Function is deprecated and only used in some addons - */ -function z_root() -{ - return System::baseUrl(); -} - -/** - * @brief Return absolut URL for given $path. - * - * @param string $path given path - * - * @return string - */ -function absurl($path) -{ - if (strpos($path, '/') === 0) { - return z_path() . $path; - } - return $path; -} - -/** - * @brief Function to check if request was an AJAX (xmlhttprequest) request. - * - * @return boolean - */ -function is_ajax() -{ - return (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'); -} - /** * @brief Function to check if request was an AJAX (xmlhttprequest) request. * @@ -670,7 +518,7 @@ function check_url(App $a) // and www.example.com vs example.com. // We will only change the url to an ip address if there is no existing setting - if (empty($url) || (!link_compare($url, System::baseUrl())) && (!preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/", $a->get_hostname()))) { + if (empty($url) || (!link_compare($url, System::baseUrl())) && (!preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/", $a->getHostName()))) { Config::set('system', 'url', System::baseUrl()); } @@ -787,62 +635,6 @@ function run_update_function($x, $prefix) } } -/** - * @brief Synchronise addons: - * - * system.addon contains a comma-separated list of names - * 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 addon that isn't installed, - * call the install procedure and add it to the database. - * - * @param object $a App - */ -function check_addons(App $a) -{ - $r = q("SELECT * FROM `addon` WHERE `installed` = 1"); - if (DBM::is_result($r)) { - $installed = $r; - } else { - $installed = []; - } - - $addons = Config::get('system', 'addon'); - $addons_arr = []; - - if ($addons) { - $addons_arr = explode(',', str_replace(' ', '', $addons)); - } - - $a->addons = $addons_arr; - - $installed_arr = []; - - if (count($installed)) { - foreach ($installed as $i) { - if (!in_array($i['name'], $addons_arr)) { - Addon::uninstall($i['name']); - } else { - $installed_arr[] = $i['name']; - } - } - } - - if (count($addons_arr)) { - foreach ($addons_arr as $p) { - if (!in_array($p, $installed_arr)) { - Addon::install($p); - } - } - } - - Addon::loadHooks(); - - return; -} - /** * @brief Used to end the current process, after saving session state. * @deprecated @@ -997,13 +789,9 @@ function feed_birthday($uid, $tz) $tz = 'UTC'; } - $p = q( - "SELECT `dob` FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1", - intval($uid) - ); - - if (DBM::is_result($p)) { - $tmp_dob = substr($p[0]['dob'], 5); + $profile = DBA::selectFirst('profile', ['dob'], ['is-default' => true, 'uid' => $uid]); + if (DBA::isResult($profile)) { + $tmp_dob = substr($profile['dob'], 5); if (intval($tmp_dob)) { $y = DateTimeFormat::timezoneNow($tz, 'Y'); $bd = $y . '-' . $tmp_dob . ' 00:00'; @@ -1108,7 +896,7 @@ function explode_querystring($query) function curPageURL() { $pageURL = 'http'; - if ($_SERVER["HTTPS"] == "on") { + if (!empty($_SERVER["HTTPS"]) && ($_SERVER["HTTPS"] == "on")) { $pageURL .= "s"; } @@ -1149,27 +937,27 @@ function get_temppath() $temppath = Config::get("system", "temppath"); - if (($temppath != "") && App::directory_usable($temppath)) { + if (($temppath != "") && App::isDirectoryUsable($temppath)) { // We have a temp path and it is usable - return App::realpath($temppath); + return App::getRealPath($temppath); } // We don't have a working preconfigured temp path, so we take the system path. $temppath = sys_get_temp_dir(); // Check if it is usable - if (($temppath != "") && App::directory_usable($temppath)) { + if (($temppath != "") && App::isDirectoryUsable($temppath)) { // Always store the real path, not the path through symlinks - $temppath = App::realpath($temppath); + $temppath = App::getRealPath($temppath); // To avoid any interferences with other systems we create our own directory - $new_temppath = $temppath . "/" . $a->get_hostname(); + $new_temppath = $temppath . "/" . $a->getHostName(); if (!is_dir($new_temppath)) { /// @TODO There is a mkdir()+chmod() upwards, maybe generalize this (+ configurable) into a function/method? mkdir($new_temppath); } - if (App::directory_usable($new_temppath)) { + if (App::isDirectoryUsable($new_temppath)) { // The new path is usable, we are happy Config::set("system", "temppath", $new_temppath); return $new_temppath; @@ -1251,8 +1039,8 @@ function get_itemcachepath() } $itemcache = Config::get('system', 'itemcache'); - if (($itemcache != "") && App::directory_usable($itemcache)) { - return App::realpath($itemcache); + if (($itemcache != "") && App::isDirectoryUsable($itemcache)) { + return App::getRealPath($itemcache); } $temppath = get_temppath(); @@ -1263,7 +1051,7 @@ function get_itemcachepath() mkdir($itemcache); } - if (App::directory_usable($itemcache)) { + if (App::isDirectoryUsable($itemcache)) { Config::set("system", "itemcache", $itemcache); return $itemcache; } @@ -1279,7 +1067,7 @@ function get_itemcachepath() function get_spoolpath() { $spoolpath = Config::get('system', 'spoolpath'); - if (($spoolpath != "") && App::directory_usable($spoolpath)) { + if (($spoolpath != "") && App::isDirectoryUsable($spoolpath)) { // We have a spool path and it is usable return $spoolpath; } @@ -1294,7 +1082,7 @@ function get_spoolpath() mkdir($spoolpath); } - if (App::directory_usable($spoolpath)) { + if (App::isDirectoryUsable($spoolpath)) { // The new path is usable, we are happy Config::set("system", "spoolpath", $spoolpath); return $spoolpath; @@ -1349,46 +1137,6 @@ function validate_include(&$file) return $valid; } -function current_load() -{ - if (!function_exists('sys_getloadavg')) { - return false; - } - - $load_arr = sys_getloadavg(); - - if (!is_array($load_arr)) { - return false; - } - - return max($load_arr[0], $load_arr[1]); -} - -/** - * @brief get c-style args - * - * @return int - */ -function argc() -{ - return get_app()->argc; -} - -/** - * @brief Returns the value of a argv key - * - * @param int $x argv key - * @return string Value of the argv key - */ -function argv($x) -{ - if (array_key_exists($x, get_app()->argv)) { - return get_app()->argv[$x]; - } - - return ''; -} - /** * @brief Get the data which is needed for infinite scroll *