use Friendica\App;
use Friendica\BaseObject;
-use Friendica\Core\Addon;
-use Friendica\Core\Cache;
use Friendica\Core\Config;
-use Friendica\Core\L10n;
use Friendica\Core\PConfig;
use Friendica\Core\Protocol;
use Friendica\Core\System;
-use Friendica\Core\Update;
-use Friendica\Core\Worker;
use Friendica\Database\DBA;
use Friendica\Model\Contact;
-use Friendica\Model\Conversation;
+use Friendica\Model\Term;
+use Friendica\Util\BasePath;
use Friendica\Util\DateTimeFormat;
define('FRIENDICA_PLATFORM', 'Friendica');
-define('FRIENDICA_CODENAME', 'The Tazmans Flax-lily');
-define('FRIENDICA_VERSION', '2019.03-dev');
+define('FRIENDICA_CODENAME', 'Dalmatian Bellflower');
+define('FRIENDICA_VERSION', '2019.09-rc');
define('DFRN_PROTOCOL_VERSION', '2.23');
define('NEW_UPDATE_ROUTINE_VERSION', 1170);
*/
define('DEFAULT_DB_ENGINE', 'InnoDB');
-/**
- * @name SSL Policy
- *
- * SSL redirection policies
- * @{
- */
-define('SSL_POLICY_NONE', 0);
-define('SSL_POLICY_FULL', 1);
-define('SSL_POLICY_SELFSIGN', 2);
-/* @}*/
+/** @deprecated since version 2019.03, please use \Friendica\Module\Register::CLOSED instead */
+define('REGISTER_CLOSED', \Friendica\Module\Register::CLOSED);
+/** @deprecated since version 2019.03, please use \Friendica\Module\Register::APPROVE instead */
+define('REGISTER_APPROVE', \Friendica\Module\Register::APPROVE);
+/** @deprecated since version 2019.03, please use \Friendica\Module\Register::OPEN instead */
+define('REGISTER_OPEN', \Friendica\Module\Register::OPEN);
/**
* @name CP
/* @}*/
-/**
- * @name Term
- *
- * Tag/term types
- * @{
- */
-define('TERM_UNKNOWN', 0);
-define('TERM_HASHTAG', 1);
-define('TERM_MENTION', 2);
-define('TERM_CATEGORY', 3);
-define('TERM_PCATEGORY', 4);
-define('TERM_FILE', 5);
-define('TERM_SAVEDSEARCH', 6);
-define('TERM_CONVERSATION', 7);
-
-define('TERM_OBJ_POST', 1);
-define('TERM_OBJ_PHOTO', 2);
+/** @deprecated since 2019.03, use Term::UNKNOWN instead */
+define('TERM_UNKNOWN', Term::UNKNOWN);
+/** @deprecated since 2019.03, use Term::HASHTAG instead */
+define('TERM_HASHTAG', Term::HASHTAG);
+/** @deprecated since 2019.03, use Term::MENTION instead */
+define('TERM_MENTION', Term::MENTION);
+/** @deprecated since 2019.03, use Term::CATEGORY instead */
+define('TERM_CATEGORY', Term::CATEGORY);
+/** @deprecated since 2019.03, use Term::PCATEGORY instead */
+define('TERM_PCATEGORY', Term::PCATEGORY);
+/** @deprecated since 2019.03, use Term::FILE instead */
+define('TERM_FILE', Term::FILE);
+/** @deprecated since 2019.03, use Term::SAVEDSEARCH instead */
+define('TERM_SAVEDSEARCH', Term::SAVEDSEARCH);
+/** @deprecated since 2019.03, use Term::CONVERSATION instead */
+define('TERM_CONVERSATION', Term::CONVERSATION);
+
+/** @deprecated since 2019.03, use Term::OBJECT_TYPE_POST instead */
+define('TERM_OBJ_POST', Term::OBJECT_TYPE_POST);
+/** @deprecated since 2019.03, use Term::OBJECT_TYPE_PHOTO instead */
+define('TERM_OBJ_PHOTO', Term::OBJECT_TYPE_PHOTO);
/**
* @name Namespaces
define('NAMESPACE_DFRN', 'http://purl.org/macgirvin/dfrn/1.0');
define('NAMESPACE_THREAD', 'http://purl.org/syndication/thread/1.0');
define('NAMESPACE_TOMB', 'http://purl.org/atompub/tombstones/1.0');
+define('NAMESPACE_ACTIVITY2', 'https://www.w3.org/ns/activitystreams#');
define('NAMESPACE_ACTIVITY', 'http://activitystrea.ms/spec/1.0/');
define('NAMESPACE_ACTIVITY_SCHEMA', 'http://activitystrea.ms/schema/1.0/');
define('NAMESPACE_MEDIA', 'http://purl.org/syndication/atommedia');
define('ACTIVITY_UNFAVORITE', NAMESPACE_ACTIVITY_SCHEMA . 'unfavorite');
define('ACTIVITY_SHARE', NAMESPACE_ACTIVITY_SCHEMA . 'share');
define('ACTIVITY_DELETE', NAMESPACE_ACTIVITY_SCHEMA . 'delete');
+define('ACTIVITY2_ANNOUNCE', NAMESPACE_ACTIVITY2 . 'Announce');
define('ACTIVITY_POKE', NAMESPACE_ZOT . '/activity/poke');
* @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)
{
*
* @return int|bool visitor_id or false
*/
-function remote_user()
+function remote_user($uid = null)
{
// You cannot be both local and remote.
// Unncommented by rabuzarus because remote authentication to local
// return false;
// }
- if (empty($_SESSION)) {
+ if (empty($_SESSION['authenticated'])) {
return false;
}
- if (!empty($_SESSION['authenticated']) && !empty($_SESSION['visitor_id'])) {
+ if (!is_null($uid) && !empty($_SESSION['remote'])) {
+ /// @todo replace it with this:
+ // if (!empty($_SESSION['remote'][$uid])) ...
+ foreach ($_SESSION['remote'] as $visitor) {
+ if ($visitor['uid'] == $uid) {
+ return $visitor['cid'];
+ }
+ }
+ } elseif (is_null($uid) && !empty($_SESSION['visitor_id'])) {
return intval($_SESSION['visitor_id']);
}
+
return false;
}
return local_user() && $admin_email && in_array(defaults($a->user, 'email', ''), $adminlist);
}
-/**
- * @brief Returns querystring as string from a mapped array.
- *
- * @param array $params mapped array with query parameters
- * @param string $name of parameter, default null
- *
- * @return string
- */
-function build_querystring($params, $name = null)
-{
- $ret = "";
- foreach ($params as $key => $val) {
- if (is_array($val)) {
- /// @TODO maybe not compare against null, use is_null()
- if ($name == null) {
- $ret .= build_querystring($val, $key);
- } else {
- $ret .= build_querystring($val, $name . "[$key]");
- }
- } else {
- $val = urlencode($val);
- /// @TODO maybe not compare against null, use is_null()
- if ($name != null) {
- /// @TODO two string concated, can be merged to one
- $ret .= $name . "[$key]" . "=$val&";
- } else {
- $ret .= "$key=$val&";
- }
- }
- }
- return $ret;
-}
-
function explode_querystring($query)
{
$arg_st = strpos($query, '?');
$temppath = Config::get("system", "temppath");
- if (($temppath != "") && App::isDirectoryUsable($temppath)) {
+ if (($temppath != "") && System::isDirectoryUsable($temppath)) {
// We have a temp path and it is usable
- return App::getRealPath($temppath);
+ return BasePath::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::isDirectoryUsable($temppath)) {
+ if (($temppath != "") && System::isDirectoryUsable($temppath)) {
// Always store the real path, not the path through symlinks
- $temppath = App::getRealPath($temppath);
+ $temppath = BasePath::getRealPath($temppath);
// To avoid any interferences with other systems we create our own directory
$new_temppath = $temppath . "/" . $a->getHostName();
mkdir($new_temppath);
}
- if (App::isDirectoryUsable($new_temppath)) {
+ if (System::isDirectoryUsable($new_temppath)) {
// The new path is usable, we are happy
Config::set("system", "temppath", $new_temppath);
return $new_temppath;
}
$itemcache = Config::get('system', 'itemcache');
- if (($itemcache != "") && App::isDirectoryUsable($itemcache)) {
- return App::getRealPath($itemcache);
+ if (($itemcache != "") && System::isDirectoryUsable($itemcache)) {
+ return BasePath::getRealPath($itemcache);
}
$temppath = get_temppath();
mkdir($itemcache);
}
- if (App::isDirectoryUsable($itemcache)) {
+ if (System::isDirectoryUsable($itemcache)) {
Config::set("system", "itemcache", $itemcache);
return $itemcache;
}
function get_spoolpath()
{
$spoolpath = Config::get('system', 'spoolpath');
- if (($spoolpath != "") && App::isDirectoryUsable($spoolpath)) {
+ if (($spoolpath != "") && System::isDirectoryUsable($spoolpath)) {
// We have a spool path and it is usable
return $spoolpath;
}
mkdir($spoolpath);
}
- if (App::isDirectoryUsable($spoolpath)) {
+ if (System::isDirectoryUsable($spoolpath)) {
// The new path is usable, we are happy
Config::set("system", "spoolpath", $spoolpath);
return $spoolpath;