LEPTON CMS 7.3.0
feel free to keep it strictly simple...
Loading...
Searching...
No Matches
initialize.php
Go to the documentation of this file.
1<?php
2
19// include secure.php to protect this file and the whole CMS!
20if(!defined("SEC_FILE")){define("SEC_FILE",'/framework/secure.php' );}
21if (defined('LEPTON_PATH')) {
22 include LEPTON_PATH.SEC_FILE;
23} else {
24 $oneback = "../";
25 $root = $oneback;
26 $level = 1;
27 while (($level < 10) && (!file_exists($root.SEC_FILE))) {
28 $root .= $oneback;
29 $level += 1;
30 }
31 if (file_exists($root.SEC_FILE)) {
32 include $root.SEC_FILE;
33 } else {
34 trigger_error(sprintf("[ <b>%s</b> ] Can't include secure.php!", $_SERVER['SCRIPT_NAME']), E_USER_ERROR);
35 }
36}
37// end include secure file
38
39if (!function_exists("lepton_autoloader"))
40{
41 require_once __DIR__."/functions/function.lepton_autoloader.php";
42 spl_autoload_register("lepton_autoloader", true);
43}
44
45// load constants
46LEPTON_handle::include_files("/framework/constants.php");
47
48// Get an instance from class database
50
51LEPTON_handle::register("get_leptoken");
52
53
54// set error-reporting
55if (is_numeric(ER_LEVEL))
56{
57 error_reporting( ER_LEVEL );
58 if (ER_LEVEL != 0)
59 {
60 ini_set('display_errors', 1);
61 }
62}
63
64// Start a session
65if (!defined('SESSION_STARTED'))
66{
67 // set name of session cookie
68 session_name(APP_NAME . 'sessionid');
69
70 //$cookie_settings = session_get_cookie_params();
71 $cookie_settings = LEPTON_session::get_cookie_defaults();
72
73 // create the session
74 session_start();
75
76 // Initialize the session cookie with the defaults
77 LEPTON_session::set_cookie( session_name(), session_id(), $cookie_settings );
78
79 unset($cookie_settings);
80
81 // create constant so this part is not running again
82 define( 'SESSION_STARTED', true );
83
84 // save in session
85 $_SESSION['LSH'] = password_hash( LEPTON_GUID, PASSWORD_DEFAULT);
86}
87
88
89// Update the session cookie to the defaults
90if (true === isset($_COOKIE[APP_NAME.'sessionid']))
91{
92 LEPTON_session::set_cookie( session_name(), $_COOKIE[ APP_NAME . 'sessionid' ], [] );
93}
94
95if (defined('ENABLED_ASP') && !isset($_SESSION['SESSION_STARTED']))
96{
97 $_SESSION[ 'SESSION_STARTED' ] = time();
98}
99
100// logout if not properly initialized
101if (!defined("LEPTON_INSTALL_PROCESS"))
102{
103
104 if ((!isset($_SESSION['LSH'])) || (!password_verify(LEPTON_GUID, $_SESSION['LSH'])))
105 {
106 $_SESSION = [];
107 LEPTON_session::set_cookie( session_name(), "", array( "expires"=> time() - 1 ) );
108 session_destroy();
109 header('Location: '.ADMIN_URL.'/login/index.php');
110 die();
111 }
112}
113
114
115if(!defined('FRONTEND'))
116{
117 define('FRONTEND', false);
118}
119if(FRONTEND == true)
120{
121 // Get users language
122 if (isset($_GET['lang']) && ($_GET['lang'] != '') && (!is_numeric($_GET['lang'])) && (strlen($_GET['lang']) == 2))
123 {
124 // needed for frontend and easymultilanguage function without being logged in
125 $iTempPageId = $page_id ?? ((defined("PAGE_ID") ? PAGE_ID : 0));
126
127 if (0 != $iTempPageId)
128 {
129 $sTempLang = $database->get_one("SELECT `language` FROM `".TABLE_PREFIX."pages` WHERE `page_id` = ".$iTempPageId);
130 if (NULL != $sTempLang)
131 {
132 define( 'LANGUAGE', $sTempLang );
133 }
134 else
135 {
136 // more or less a theoretical case
137 define('LANGUAGE', DEFAULT_LANGUAGE);
138 }
139 }
140 else
141 { // needed for FE being logged in
142 if (isset($_SESSION['USER_ID']))
143 {
144 $sTempLang = $database->get_one("SELECT `language` FROM `".TABLE_PREFIX."users` WHERE `user_id`=" . $_SESSION['USER_ID']);
145 if (NULL != $sTempLang)
146 {
147 define('LANGUAGE', $sTempLang);
148 }
149 else
150 {
151 define('LANGUAGE', strtoupper($_GET['lang']));
152 }
153 }
154 else
155 {
156 define('LANGUAGE', strtoupper($_GET['lang']));
157 }
158 }
159
160 $_SESSION['LANGUAGE'] = LANGUAGE;
161 }
162 else
163 {
164 if(isset($page_id))
165 {
166 $page_language = $database->get_one("SELECT language FROM ".TABLE_PREFIX."pages WHERE page_id = ".$page_id);
167 define('LANGUAGE',$page_language);
168 }
169 else
170 {
171 define('LANGUAGE',DEFAULT_LANGUAGE);
172 }
173 }
174}
175else
176{ // this part is for backend only
177 if (isset($_SESSION['LANGUAGE']) && ($_SESSION['LANGUAGE'] != ''))
178 {
179 $iTempPageId = $page_id ?? ((defined("PAGE_ID") ? PAGE_ID : 0));
180
181 if (0 != $iTempPageId)
182 {
183 $sTempLang = $database->get_one("SELECT `language` FROM `" . TABLE_PREFIX . "pages` WHERE `page_id`=" . $iTempPageId);
184 if (NULL != $sTempLang)
185 {
186 define('LANGUAGE', $sTempLang);
187 }
188 else
189 {
190 // more or less a theoretical case
191 define('LANGUAGE', $_SESSION['LANGUAGE']);
192 }
193 }
194 else
195 {
196 if (isset($_SESSION['USER_ID']))
197 {
198 $sTempLang = $database->get_one("SELECT `language` FROM `" . TABLE_PREFIX . "users` WHERE `user_id`='" . $_SESSION['USER_ID'] . "'");
199 if (NULL != $sTempLang)
200 {
201 define('LANGUAGE', $sTempLang);
202 } else {
203 define('LANGUAGE', $_SESSION['LANGUAGE']);
204 }
205 }
206 else
207 {
208 define('LANGUAGE', $_SESSION['LANGUAGE']);
209 }
210 }
211 }
212 else
213 {
214 define('LANGUAGE', DEFAULT_LANGUAGE);
215 }
216}
217
218
219// Load Language file
220if (!file_exists(LEPTON_PATH.'/languages/'.LANGUAGE.'.php'))
221{
222 exit('Error loading language file '.LANGUAGE.', please check configuration');
223}
224else
225{
226 $aLanguageFile = [
227 LANGUAGE.'_add.php',
228 LANGUAGE.'_custom.php',
229 LANGUAGE.'.php'
230 ];
231
232 foreach ($aLanguageFile as $sFile)
233 {
234 $sLanguagePath = LEPTON_PATH.'/languages/';
235 if (file_exists($sLanguagePath.$sFile))
236 {
237 require_once $sLanguagePath.$sFile;
238 break;
239 }
240 }
241}
242
static getInstance(array &$settings=[])
static include_files(array|string $file_names=[], bool $interrupt=true)
static get_cookie_defaults()
static set_cookie(string $name, string|int $value, array $options=[], bool $mustExists=false, bool $mergeDefault=true)
$database
$root
$level