define('FRIENDICA_PLATFORM', 'Friendica');
define('FRIENDICA_CODENAME', 'The Tazmans Flax-lily');
-define('FRIENDICA_VERSION', '2018-05-dev');
+define('FRIENDICA_VERSION', '2018.08-dev');
define('DFRN_PROTOCOL_VERSION', '2.23');
-define('DB_UPDATE_VERSION', 1259);
+define('DB_UPDATE_VERSION', 1277);
define('NEW_UPDATE_ROUTINE_VERSION', 1170);
/**
* @brief Image storage quality.
*
* Lower numbers save space at cost of image detail.
- * For ease of upgrade, please do not change here. Change jpeg quality with
- * $a->config['system']['jpeg_quality'] = n;
- * in .htconfig.php, where n is netween 1 and 100, and with very poor results
- * below about 50
+ * For ease of upgrade, please do not change here. Set [system] jpegquality = n in config/local.ini.php,
+ * where n is between 1 and 100, and with very poor results below about 50
*/
define('JPEG_QUALITY', 100);
/**
- * $a->config['system']['png_quality'] from 0 (uncompressed) to 9
+ * [system] png_quality = n where is between 0 (uncompressed) to 9
*/
define('PNG_QUALITY', 8);
* this length (on the longest side, the other side will be scaled appropriately).
* Modify this value using
*
- * $a->config['system']['max_image_length'] = n;
+ * [system]
+ * max_image_length = n;
*
- * in .htconfig.php
+ * in config/local.ini.php
*
* If you don't want to set a maximum length, set to -1. The default value is
* defined by 'MAX_IMAGE_LENGTH' below.
* @{
*/
define('GRAVITY_PARENT', 0);
-define('GRAVITY_LIKE', 3);
+define('GRAVITY_ACTIVITY', 3);
define('GRAVITY_COMMENT', 6);
+define('GRAVITY_UNKNOWN', 9);
/* @}*/
/**
*/
define('NULL_DATE', '0001-01-01 00:00:00');
-/**
- * Deliver commands
- */
-define('DELIVER_MAIL', 'mail');
-define('DELIVER_SUGGESTION', 'suggest');
-define('DELIVER_RELOCATION', 'relocate');
-define('DELIVER_DELETION', 'drop');
-define('DELIVER_POST', 'wall-new');
-define('DELIVER_COMMENT', 'comment-new');
-
// Normally this constant is defined - but not if "pcntl" isn't installed
if (!defined("SIGTERM")) {
define("SIGTERM", 15);
if (!defined('CURLE_OPERATION_TIMEDOUT')) {
define('CURLE_OPERATION_TIMEDOUT', CURLE_OPERATION_TIMEOUTED);
}
-/**
- * Reverse the effect of magic_quotes_gpc if it is enabled.
- * Please disable magic_quotes_gpc so we don't have to do this.
- * See http://php.net/manual/en/security.magicquotes.disabling.php
- */
-function startup()
-{
- error_reporting(E_ERROR | E_WARNING | E_PARSE);
-
- set_time_limit(0);
-
- // This has to be quite large to deal with embedded private photos
- ini_set('pcre.backtrack_limit', 500000);
-
- if (get_magic_quotes_gpc()) {
- $process = [&$_GET, &$_POST, &$_COOKIE, &$_REQUEST];
- while (list($key, $val) = each($process)) {
- foreach ($val as $k => $v) {
- unset($process[$key][$k]);
- if (is_array($v)) {
- $process[$key][stripslashes($k)] = $v;
- $process[] = &$process[$key][stripslashes($k)];
- } else {
- $process[$key][stripslashes($k)] = stripslashes($v);
- }
- }
- }
- unset($process);
- }
-}
/**
* @brief Retrieve the App structure
*/
function get_app()
{
- global $a;
-
- if (empty($a)) {
- $a = new App(dirname(__DIR__));
- BaseObject::setApp($a);
- }
-
- return $a;
+ return BaseObject::getApp();
}
/**
// 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->get_hostname()))) {
Config::set('system', 'url', System::baseUrl());
}
return;
}
-function get_guid($size = 16, $prefix = '')
-{
- if (is_bool($prefix) && !$prefix) {
- $prefix = '';
- } elseif ($prefix == '') {
- $a = get_app();
- $prefix = hash('crc32', $a->get_hostname());
- }
-
- while (strlen($prefix) < ($size - 13)) {
- $prefix .= mt_rand();
- }
-
- if ($size >= 24) {
- $prefix = substr($prefix, 0, $size - 22);
- return str_replace('.', '', uniqid($prefix, true));
- } else {
- $prefix = substr($prefix, 0, max($size - 13, 0));
- return uniqid($prefix);
- }
-}
-
/**
* @brief Used to end the current process, after saving session state.
* @deprecated
*/
function local_user()
{
- if (x($_SESSION, 'authenticated') && x($_SESSION, 'uid')) {
+ if (!empty($_SESSION['authenticated']) && !empty($_SESSION['uid'])) {
return intval($_SESSION['uid']);
}
return false;
// if (local_user()) {
// return false;
// }
+
+ if (empty($_SESSION)) {
+ return false;
+ }
+
if (x($_SESSION, 'authenticated') && x($_SESSION, 'visitor_id')) {
return intval($_SESSION['visitor_id']);
}
*/
function notice($s)
{
+ if (empty($_SESSION)) {
+ return;
+ }
+
$a = get_app();
if (!x($_SESSION, 'sysmsg')) {
$_SESSION['sysmsg'] = [];
return (x($a->config, 'max_import_size') ? $a->config['max_import_size'] : 0);
}
-
-function current_theme()
-{
- $app_base_themes = ['duepuntozero', 'dispy', 'quattro'];
-
- $a = get_app();
-
- $page_theme = null;
-
- // Find the theme that belongs to the user whose stuff we are looking at
-
- if ($a->profile_uid && ($a->profile_uid != local_user())) {
- $r = q(
- "select theme from user where uid = %d limit 1",
- intval($a->profile_uid)
- );
- if (DBM::is_result($r)) {
- $page_theme = $r[0]['theme'];
- }
- }
-
- // Allow folks to over-rule user themes and always use their own on their own site.
- // This works only if the user is on the same server
-
- if ($page_theme && local_user() && (local_user() != $a->profile_uid)) {
- if (PConfig::get(local_user(), 'system', 'always_my_theme')) {
- $page_theme = null;
- }
- }
-
-// $mobile_detect = new Mobile_Detect();
-// $is_mobile = $mobile_detect->isMobile() || $mobile_detect->isTablet();
- $is_mobile = $a->is_mobile || $a->is_tablet;
-
- $standard_system_theme = Config::get('system', 'theme', '');
- $standard_theme_name = ((isset($_SESSION) && x($_SESSION, 'theme')) ? $_SESSION['theme'] : $standard_system_theme);
-
- if ($is_mobile) {
- if (isset($_SESSION['show-mobile']) && !$_SESSION['show-mobile']) {
- $theme_name = $standard_theme_name;
- } else {
- $system_theme = Config::get('system', 'mobile-theme', '');
- if ($system_theme == '') {
- $system_theme = $standard_system_theme;
- }
- $theme_name = ((isset($_SESSION) && x($_SESSION, 'mobile-theme')) ? $_SESSION['mobile-theme'] : $system_theme);
-
- if ($theme_name === '---') {
- // user has selected to have the mobile theme be the same as the normal one
- $theme_name = $standard_theme_name;
-
- if ($page_theme) {
- $theme_name = $page_theme;
- }
- }
- }
- } else {
- $theme_name = $standard_theme_name;
-
- if ($page_theme) {
- $theme_name = $page_theme;
- }
- }
-
- if ($theme_name
- && (file_exists('view/theme/' . $theme_name . '/style.css')
- || file_exists('view/theme/' . $theme_name . '/style.php'))
- ) {
- return($theme_name);
- }
-
- foreach ($app_base_themes as $t) {
- if (file_exists('view/theme/' . $t . '/style.css')
- || file_exists('view/theme/' . $t . '/style.php')
- ) {
- return($t);
- }
- }
-
- $fallback = array_merge(glob('view/theme/*/style.css'), glob('view/theme/*/style.php'));
- if (count($fallback)) {
- return (str_replace('view/theme/', '', substr($fallback[0], 0, -10)));
- }
-
- /// @TODO No final return statement?
-}
-
-/**
- * @brief Return full URL to theme which is currently in effect.
- *
- * Provide a sane default if nothing is chosen or the specified theme does not exist.
- *
- * @return string
- */
-function current_theme_url()
-{
- $a = get_app();
-
- $t = current_theme();
-
- $opts = (($a->profile_uid) ? '?f=&puid=' . $a->profile_uid : '');
- if (file_exists('view/theme/' . $t . '/style.php')) {
- return('view/theme/' . $t . '/style.pcss' . $opts);
- }
-
- return('view/theme/' . $t . '/style.css');
-}
-
function feed_birthday($uid, $tz)
{
/**
$adminlist = explode(",", str_replace(" ", "", $a->config['admin_email']));
//if(local_user() && x($a->user,'email') && x($a->config,'admin_email') && ($a->user['email'] === $a->config['admin_email']))
+ /// @TODO This if() + 2 returns can be shrinked into one return
if (local_user() && x($a->user, 'email') && x($a->config, 'admin_email') && in_array($a->user['email'], $adminlist)) {
return true;
}
{
$rn = '';
for ($i = 0; $i < $digits; $i++) {
- /// @TODO rand() is different to mt_rand() and maybe lesser "random"
+ /// @TODO Avoid rand/mt_rand, when it comes to cryptography, they are generating predictable (seedable) numbers.
$rn .= rand(0, 9);
}
return $rn;
$server = Config::get("system", "directory");
if ($server == "") {
- $server = "http://dir.friendica.social";
+ $server = "https://dir.friendica.social";
}
- return($server);
+ return $server;
}
function get_temppath()
$cache = get_itemcachepath();
if ((!$cache) || (!is_dir($cache))) {
- return("");
+ return "";
}
$subfolder = $cache . "/" . substr($file, 0, 2);
}
}
- /// @TODO no need to put braces here
return $cachepath;
}
return "";
}
-
if (!function_exists('exif_imagetype')) {
function exif_imagetype($file)
{
}
// Simply return flag
- return ($valid);
+ return $valid;
}
function current_load()