define('FRIENDICA_CODENAME', 'The Tazmans Flax-lily');
define('FRIENDICA_VERSION', '2018.08-dev');
define('DFRN_PROTOCOL_VERSION', '2.23');
-define('DB_UPDATE_VERSION', 1269);
+define('DB_UPDATE_VERSION', 1279);
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);
/* @}*/
/**
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;
}
+ // run the pre_update_nnnn functions in update.php
+ for ($x = $stored + 1; $x <= $current; $x++) {
+ $r = run_update_function($x, 'pre_update');
+ if (!$r) {
+ break;
+ }
+ }
+
Config::set('database', 'dbupdate_' . DB_UPDATE_VERSION, time());
- // run update routine
- // it update the structure in one call
+ // update the structure in one call
$retval = DBStructure::update(false, true);
if ($retval) {
DBStructure::updateFail(
Config::set('database', 'dbupdate_' . DB_UPDATE_VERSION, 'success');
}
- // run any left update_nnnn functions in update.php
+ // run the update_nnnn functions in update.php
for ($x = $stored + 1; $x <= $current; $x++) {
- $r = run_update_function($x);
+ $r = run_update_function($x, 'update');
if (!$r) {
break;
}
return;
}
-function run_update_function($x)
+function run_update_function($x, $prefix)
{
- if (function_exists('update_' . $x)) {
+ $funcname = $prefix . '_' . $x;
+
+ if (function_exists($funcname)) {
// There could be a lot of processes running or about to run.
// We want exactly one process to run the update command.
// So store the fact that we're taking responsibility
// If the update fails or times-out completely you may need to
// delete the config entry to try again.
- $t = Config::get('database', 'update_' . $x);
+ $t = Config::get('database', $funcname);
if (!is_null($t)) {
return false;
}
- Config::set('database', 'update_' . $x, time());
+ Config::set('database', $funcname, time());
// call the specific update
-
- $func = 'update_' . $x;
- $retval = $func();
+ $retval = $funcname();
if ($retval) {
//send the administrator an e-mail
);
return false;
} else {
- Config::set('database', 'update_' . $x, 'success');
- Config::set('system', 'build', $x);
+ Config::set('database', $funcname, 'success');
+ if ($post_update) {
+ Config::set('system', 'build', $x);
+ }
return true;
}
} else {
- Config::set('database', 'update_' . $x, 'success');
- Config::set('system', 'build', $x);
+ Config::set('database', $funcname, 'success');
+ if ($post_update) {
+ Config::set('system', 'build', $x);
+ }
return true;
}
}
/**
* @brief Synchronise addons:
*
- * $a->config['system']['addon'] contains a comma-separated list of names
+ * 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
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'] = [];
}
}
-/**
- * @brief Wrapper around config to limit the text length of an incoming message
- *
- * @return int
- */
-function get_max_import_size()
-{
- $a = get_app();
- return (x($a->config, 'max_import_size') ? $a->config['max_import_size'] : 0);
-}
-
function feed_birthday($uid, $tz)
{
/**
{
$a = get_app();
- $adminlist = explode(",", str_replace(" ", "", $a->config['admin_email']));
+ $admin_email = Config::get('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;
- }
- return false;
+ $adminlist = explode(',', str_replace(' ', '', $admin_email));
+
+ return local_user() && $admin_email && in_array(defaults($a->user, 'email', ''), $adminlist);
}
/**