47 LEPTON_core::registerBasicFunctions();
48 LEPTON_core::loadCodeSnippets();
52 if(CRONJOB == 1 || CRONJOB == 3)
58 self::$instance = $this;
61 if (!isset($_SESSION[
'USER_ID']))
67 $pin_set = $this->database->get_one(
"SELECT pin_set FROM ".TABLE_PREFIX.
"users WHERE user_id = '".$_SESSION[
'USER_ID'].
"' ");
75 header(
'Location: '.LEPTON_URL.
'/account/logout.php');
80 LEPTON_SecureCMS::clearLepTokens();
84 LEPTON_SecureCMS::clearLepTokens();
85 header(
'Location: '.LEPTON_URL.
'/account/logout.php');
95 $sql_where_language = (PAGE_LANGUAGES) ?
" AND language = '" . LANGUAGE .
"'" :
"";
101 FROM `".TABLE_PREFIX .
"pages` AS `p`
102 INNER JOIN `".TABLE_PREFIX .
"sections`
108 AND `visibility` = 'public'
111 (".$now.
" >= `publ_start` OR `publ_start` = 0)
113 (".$now.
" <= `publ_end` OR `publ_end` = 0)
115 ".$sql_where_language.
"
123 $this->database->execute_query(
133 if (!empty($fetch_default))
135 $this->default_link = $fetch_default[
'link' ];
136 $this->default_page_id = intval($fetch_default[
'page_id' ]);
139 if ( HOMEPAGE_REDIRECTION )
142 header(
"Location: " . $this->buildPageLink( $this->default_link ) );
158 if(!isset($fetch_default[
'link' ]))
164 $this->default_link = $fetch_default[
'link' ];
165 $this->default_page_id = intval($fetch_default[
'page_id' ]);
166 $this->page = $fetch_default;
175 if ($this->page_id != 0)
178 $query_page =
"SELECT * FROM ".TABLE_PREFIX.
"pages WHERE page_id = ".
$this->page_id;
179 $this->database->execute_query(
187 if (empty($this->page))
190 exit(
"Page not found." );
194 foreach ($this->page as $key => $value)
197 $key = strtoupper($key);
200 if ($key ===
'TEMPLATE' && empty($value))
202 $value = $this->database->get_one(
"SELECT value FROM ".TABLE_PREFIX.
"settings WHERE name = 'default_template' ");
205 if ($key ===
'DESCRIPTION' && empty($value))
207 $value = WEBSITE_DESCRIPTION;
210 if ($key ===
'KEYWORDS' && empty($value))
212 $value = WEBSITE_KEYWORDS;
215 define($key, $value);
223 if ( $this->page[
'language' ] != LANGUAGE )
225 if ( isset( $_SERVER[
'QUERY_STRING' ] ) && $_SERVER[
'QUERY_STRING' ] !=
'' )
227 header(
'Location: ' . $this->buildPageLink( $this->page[
'link' ] ) .
'?' . $_SERVER[
'QUERY_STRING' ] .
'&lang=' . $this->page[
'language' ] );
231 header(
'Location: ' . $this->buildPageLink( $this->page[
'link' ] ) .
'?lang=' . $this->page[
'language' ] );
237 foreach ( explode(
',', $this->page[
'page_trail' ] ) AS $pid )
239 $this->page_trail[ $pid ] = $pid;
245 if(!defined(
'TEMPLATE'))
247 define(
'TEMPLATE', DEFAULT_TEMPLATE);
249 define(
'TEMPLATE_DIR', LEPTON_URL .
'/templates/' . TEMPLATE );
251 if ($this->page_is_visible($this->page) ===
false)
253 if ( VISIBILITY ==
'deleted' || VISIBILITY ==
'none' )
256 $this->page_access_denied =
true;
258 elseif ( VISIBILITY ==
'private' || VISIBILITY ==
'registered' )
261 if ( $this->is_authenticated() ===
false )
264 header(
"Location: " . LEPTON_URL .
"/account/login.php?redirect=" . $this->buildPageLink($this->page[
'link']) );
269 $temp_array = explode(
',',$this->page[
'viewing_groups']);
270 if(in_array( $_SESSION[
'GROUP_ID'],$temp_array)) {
272 $this->page_access_denied =
false;
277 $this->page_access_denied =
true;
287 if ($this->page_is_active($this->page) ===
false)
289 $this->page_no_active_sections =
true;
340 $content = str_ireplace( [
"%5B",
"%5D"], [
"[",
"]"], $content);
343 if (preg_match_all(
'/\[LEPTONlink([0-9]+)\]/isU', $content, $ids))
345 $new_ids = array_unique( $ids[ 1 ] );
346 foreach ($new_ids as $key => $temp_page_id)
348 $link = $this->database->get_one(
"SELECT `link` FROM `" . TABLE_PREFIX .
"pages` WHERE `page_id` = " . $temp_page_id );
351 $content = str_replace($ids[0][$key], $this->buildPageLink($link), $content);
354 unset($temp_page_id);