]> git.mxchange.org Git - friendica.git/blob - boot.php
Merge pull request #12010 from annando/notice
[friendica.git] / boot.php
1 <?php
2 /**
3  * @copyright Copyright (C) 2010-2022, the Friendica project
4  *
5  * @license GNU AGPL version 3 or any later version
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU Affero General Public License as
9  * published by the Free Software Foundation, either version 3 of the
10  * License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU Affero General Public License for more details.
16  *
17  * You should have received a copy of the GNU Affero General Public License
18  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
19  *
20  * Friendica is a communications platform for integrated social communications
21  * utilising decentralised communications and linkage to several indie social
22  * projects - as well as popular mainstream providers.
23  *
24  * Our mission is to free our friends and families from the clutches of
25  * data-harvesting corporations, and pave the way to a future where social
26  * communications are free and open and flow between alternate providers as
27  * easily as email does today.
28  */
29
30 use Friendica\Model\Contact;
31
32 /**
33  * Constant with a HTML line break.
34  *
35  * Contains a HTML line break (br) element and a real carriage return with line
36  * feed for the source.
37  * This can be used in HTML and JavaScript where needed a line break.
38  */
39 define('EOL',                    "<br />\r\n");
40
41 /**
42  * @name Gravity
43  *
44  * Item weight for query ordering
45  * @{
46  */
47 define('GRAVITY_PARENT',       0);
48 define('GRAVITY_ACTIVITY',     3);
49 define('GRAVITY_COMMENT',      6);
50 define('GRAVITY_UNKNOWN',      9);
51 /* @}*/
52
53 // Normally this constant is defined - but not if "pcntl" isn't installed
54 if (!defined('SIGTERM')) {
55         define('SIGTERM', 15);
56 }
57
58 /**
59  * Depending on the PHP version this constant does exist - or not.
60  * See here: http://php.net/manual/en/curl.constants.php#117928
61  */
62 if (!defined('CURLE_OPERATION_TIMEDOUT')) {
63         define('CURLE_OPERATION_TIMEDOUT', CURLE_OPERATION_TIMEOUTED);
64 }
65
66 if (!function_exists('exif_imagetype')) {
67         function exif_imagetype($file)
68         {
69                 $size = getimagesize($file);
70                 return $size[2];
71         }
72 }
73
74 /**
75  * Returns the user id of locally logged in user or false.
76  *
77  * @return int|bool user id or false
78  */
79 function local_user()
80 {
81         if (!empty($_SESSION['authenticated']) && !empty($_SESSION['uid'])) {
82                 return intval($_SESSION['uid']);
83         }
84
85         return false;
86 }
87
88 /**
89  * Returns the public contact id of logged in user or false.
90  *
91  * @return int|bool public contact id or false
92  */
93 function public_contact()
94 {
95         static $public_contact_id = false;
96
97         if (!$public_contact_id && !empty($_SESSION['authenticated'])) {
98                 if (!empty($_SESSION['my_address'])) {
99                         // Local user
100                         $public_contact_id = intval(Contact::getIdForURL($_SESSION['my_address'], 0, false));
101                 } elseif (!empty($_SESSION['visitor_home'])) {
102                         // Remote user
103                         $public_contact_id = intval(Contact::getIdForURL($_SESSION['visitor_home'], 0, false));
104                 }
105         } elseif (empty($_SESSION['authenticated'])) {
106                 $public_contact_id = false;
107         }
108
109         return $public_contact_id;
110 }
111
112 /**
113  * Returns public contact id of authenticated site visitor or false
114  *
115  * @return int|bool visitor_id or false
116  */
117 function remote_user()
118 {
119         if (empty($_SESSION['authenticated'])) {
120                 return false;
121         }
122
123         if (!empty($_SESSION['visitor_id'])) {
124                 return intval($_SESSION['visitor_id']);
125         }
126
127         return false;
128 }