]> git.mxchange.org Git - friendica.git/blob - boot.php
Merge pull request #12006 from annando/constants
[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 define('FRIENDICA_PLATFORM',     'Friendica');
33 define('FRIENDICA_CODENAME',     'Giant Rhubarb');
34 define('FRIENDICA_VERSION',      '2022.12-dev');
35
36 /**
37  * Constant with a HTML line break.
38  *
39  * Contains a HTML line break (br) element and a real carriage return with line
40  * feed for the source.
41  * This can be used in HTML and JavaScript where needed a line break.
42  */
43 define('EOL',                    "<br />\r\n");
44
45 /**
46  * @name Gravity
47  *
48  * Item weight for query ordering
49  * @{
50  */
51 define('GRAVITY_PARENT',       0);
52 define('GRAVITY_ACTIVITY',     3);
53 define('GRAVITY_COMMENT',      6);
54 define('GRAVITY_UNKNOWN',      9);
55 /* @}*/
56
57 // Normally this constant is defined - but not if "pcntl" isn't installed
58 if (!defined('SIGTERM')) {
59         define('SIGTERM', 15);
60 }
61
62 /**
63  * Depending on the PHP version this constant does exist - or not.
64  * See here: http://php.net/manual/en/curl.constants.php#117928
65  */
66 if (!defined('CURLE_OPERATION_TIMEDOUT')) {
67         define('CURLE_OPERATION_TIMEDOUT', CURLE_OPERATION_TIMEOUTED);
68 }
69
70 if (!function_exists('exif_imagetype')) {
71         function exif_imagetype($file)
72         {
73                 $size = getimagesize($file);
74                 return $size[2];
75         }
76 }
77
78 /**
79  * Returns the user id of locally logged in user or false.
80  *
81  * @return int|bool user id or false
82  */
83 function local_user()
84 {
85         if (!empty($_SESSION['authenticated']) && !empty($_SESSION['uid'])) {
86                 return intval($_SESSION['uid']);
87         }
88
89         return false;
90 }
91
92 /**
93  * Returns the public contact id of logged in user or false.
94  *
95  * @return int|bool public contact id or false
96  */
97 function public_contact()
98 {
99         static $public_contact_id = false;
100
101         if (!$public_contact_id && !empty($_SESSION['authenticated'])) {
102                 if (!empty($_SESSION['my_address'])) {
103                         // Local user
104                         $public_contact_id = intval(Contact::getIdForURL($_SESSION['my_address'], 0, false));
105                 } elseif (!empty($_SESSION['visitor_home'])) {
106                         // Remote user
107                         $public_contact_id = intval(Contact::getIdForURL($_SESSION['visitor_home'], 0, false));
108                 }
109         } elseif (empty($_SESSION['authenticated'])) {
110                 $public_contact_id = false;
111         }
112
113         return $public_contact_id;
114 }
115
116 /**
117  * Returns public contact id of authenticated site visitor or false
118  *
119  * @return int|bool visitor_id or false
120  */
121 function remote_user()
122 {
123         if (empty($_SESSION['authenticated'])) {
124                 return false;
125         }
126
127         if (!empty($_SESSION['visitor_id'])) {
128                 return intval($_SESSION['visitor_id']);
129         }
130
131         return false;
132 }
133
134 /**
135  * Show an error message to user.
136  *
137  * This function save text in session, to be shown to the user at next page load
138  *
139  * @param string $s - Text of notice
140  *
141  * @return void
142  * @deprecated since version 2022.09, use \Friendica\Navigation\SystemMessages instead
143  */
144 function notice(string $s)
145 {
146         \Friendica\DI::sysmsg()->addNotice($s);
147 }
148
149 /**
150  * Show an info message to user.
151  *
152  * This function save text in session, to be shown to the user at next page load
153  *
154  * @param string $s - Text of notice
155  *
156  * @return void
157  * @deprecated since version 2022.09, use \Friendica\Navigation\SystemMessages instead
158  */
159 function info(string $s)
160 {
161         \Friendica\DI::sysmsg()->addInfo($s);
162 }