| Viewing file:  index.php (14.7 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
<?php
 /********************************************************************************
 - MemHT Portal -
 
 Copyright (C) 2007-2008 by Miltenovik Manojlo
 http://www.memht.com
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2 of the License, or
 (at your opinion) any later version.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License along
 with this program; if not, see <http://www.gnu.org/licenses/> (GPLv2)
 or write to the Free Software Foundation, Inc., 51 Franklin Street,
 Fifth Floor, Boston, MA02110-1301, USA.
 
 ********************************************************************************/
 
 //===========================================
 //LOAD TIME i
 //===========================================
 $mtime = microtime();
 $mtime = explode(" ",$mtime);
 $starttime = $mtime[1] + $mtime[0];
 
 //===========================================
 //COMPRESSION
 //===========================================
 if (extension_loaded('zlib')) {
 @ini_set('zlib.output_compression_level',6);
 ob_start('ob_gzhandler');
 }
 
 //===========================================
 //CHECK IF MEMHT IS INSTALLED
 //===========================================
 if (!file_exists("inc/inc_config.php")) {
 if (file_exists("install/index.php")) {
 header("Location: install/index.php");
 } else {
 die("<table style='padding: 2px; border: 1px solid #999; background-color: #EEE; font-family: Verdana; font-size: 10px;' align='center'><tr><td><b>Attention:</b> The configuration file is missing and a new installation cannot be started because the install file cannot be located</td></tr></table>");
 }
 } else if (file_exists("install/index.php")) {
 die("<table style='padding: 2px; border: 1px solid #999; background-color: #EEE; font-family: Verdana; font-size: 10px;' align='center'><tr><td><b>Attention:</b> Delete the installation folder and files!</td></tr></table>");
 }
 
 //===========================================
 //DATABASE: CONNECT
 //===========================================
 require_once("inc/inc_config.php");
 require_once("inc/inc_database.php");
 
 $dblink = new database();
 $dblink->connect();
 
 //===========================================
 //TIMEZONE SETTING + DATABASE CHECK
 //===========================================
 $timezonerow = $dblink->get_row("SELECT timezone FROM memht_config") or die("<table style='padding: 2px; border: 1px solid #999; background-color: #EEE; font-family: Verdana; font-size: 10px;' align='center'><tr><td><b>Attention:</b> Cannot find database tables!</td></tr></table>");
 $siteConfig['timezone'] = intval($timezonerow['timezone']);
 $tzNOW = "DATE_ADD(NOW(),INTERVAL ".$siteConfig['timezone']." HOUR)";
 
 //===========================================
 //INCLUDES
 //===========================================
 require_once("inc/inc_login.php");
 require_once("inc/inc_functions.php");
 require_once("inc/inc_bbcode.php");
 require_once("inc/inc_readConfig.php");
 require_once("inc/inc_getinfo.php");
 require_once("inc/inc_statistics.php");
 require_once("inc/inc_ban.php");
 
 include_once("inc/inc_banners.php");
 include_once("inc/inc_online.php");
 include_once("inc/inc_htmlclean.php");
 
 //===========================================
 //MODREWRITE + HTML Cleaner
 //===========================================
 if ($siteConfig['modrewrite']==1) {
 include_once("inc/inc_modrewrite.php");
 ob_start(replace_for_mod_rewrite);
 } else {
 ob_start(replace_htmlclean);
 }
 
 //===========================================
 //INITIALIZE TEMPLATE ENGINE
 //===========================================
 include_once("inc/tpl/RainTPL.class.php");
 $tpl = new RainTPL($template_directory="templates/".$siteConfig['template']);
 $tpl->assign("tpl_template",$siteConfig['template']);
 if (file_exists("templates/".$siteConfig['template']."/table.php")) {
 include_once("templates/".$siteConfig['template']."/table.php");
 } else {
 function openTable($title="") {
 echo "<table width='100%' border='0' cellpadding='0' cellspacing='0' class='tpl_opentable'><tr><td>\n";
 if ($title!="") { echo "<div class='tpl_opentable_title'>$title</div>\n"; }
 }
 function closeTable() {
 echo "</td></table>\n";
 }
 }
 function page_title() {} //DEPRECATED
 function page_title_blank() {} //DEPRECATED
 
 //===========================================
 //SELECT LANGUAGE
 //===========================================
 include_once (file_exists("lang/".$siteConfig['language'].".php")) ? "lang/".$siteConfig['language'].".php" : "lang/".$siteConfig['default_language'].".php" ;
 
 global $pagetitle,$virtualpagerequest,$rankPage,$enabledPage,$userid,$userInfo;
 
 //===========================================
 //ERROR REPORTING
 //===========================================
 if (isAuth($userid,3)) { error_reporting(E_ALL); } else { error_reporting(0); }
 $error_handler = set_error_handler("memhtErrorHandler");
 
 if ($siteConfig['site_open']==1 OR isAuth($userid,3)) {
 //HEADER
 include_once("inc/inc_header.php");
 
 //MAIN
 if (isset($_GET['page'])) {
 $page = inCode($_GET['page']);
 ob_start();
 if (validate($page)) {
 //OPEN THE SELECTED PAGE
 if (file_exists("pages/$page/index.php") AND ($enabledPage==1 OR isAuth($userid,3))) {
 if (myRank()>=$rankPage) {
 $open = true;
 if ($result = $dblink->get_list("SELECT groupid FROM memht_groups_pages WHERE page='$page'")) {
 $grouparr = array();
 foreach ($result as $row) {
 $groupid = intval($row['groupid']);
 if ($dblink->get_num("SELECT id FROM memht_groups_members WHERE groupid=$groupid AND user=$userid AND standby=0 AND (permanent=1 OR expire > $tzNOW)")==0) { $open = false; $grouparr[] = $groupid; }
 }
 } else { $open = true; }
 
 if ($open) {
 if (file_exists("pages/$page/lang/".$siteConfig['language'].".php")) {
 include_once("pages/$page/lang/".$siteConfig['language'].".php");
 } else if (file_exists("pages/$page/lang/".$siteConfig['default_language'].".php")) {
 include_once("pages/$page/lang/".$siteConfig['default_language'].".php");
 }
 //--
 define("_LOAD_PAGE_",1);
 if ($page=="mypage" AND $checkid>0 AND $checktitle!="") {
 $pagecontent['title'] = $checktitle;
 $pagecontent['url'] = "index.php?page=mypage&op=openPage&id=$checkid&title=".mem_urlencode($checktitle);
 } else {
 $pagecontent['title'] = $pagetitle;
 $pagecontent['url'] = "index.php?page=$page";
 }
 $pagecontent['name'] = $page;
 include("pages/$page/index.php");
 //--
 } else {
 $pagecontent['title'] = _ACCESSDENIED_;
 $pagecontent['url'] = "";
 $pagecontent['name'] = "";
 openTable();
 //ACCESS DENIED (group required)
 echo "<div align='center' id='errorText'><b>"._ACCESSDENIED_."</b></div>";
 echo "<div align='center' class='box'><b>"._YOUHAVENOPERM_." "._TOACCESSTHISPAGE_."!</b></div>";
 if (sizeof($grouparr)>0) {
 echo "<div class='box'><i>"._REQUIRED_.":</i><br>";
 foreach ($grouparr as $groupid) {
 $row = $dblink->get_row("SELECT type,amount,name FROM memht_groups WHERE id=$groupid");
 echo "<div>  - "._GROUP_.": <b>".$row['name']."</b>";
 switch (intval($row['type'])) {
 case 1: echo ": <b>".$row['amount']."</b> "._FORUM_POSTS_; break;
 case 2: echo ": <b>".$row['amount']."</b> "._CONTRIBUTES_." ("._NEWS_.","._FILES_.")"; break;
 }
 echo "</div>";
 }
 echo "</div>";
 }
 closeTable();
 }
 } else {
 openTable();
 //ACCESS DENIED (Login required)
 echo "<div align='center' id='errorText'><b>"._ACCESSDENIED_."</b></div>";
 if ($rankPage==1) {
 echo "<div align='center' class='box'>"._YOUHAVENOPERM_." "._TOACCESSTHISPAGE_."!<br>"._DOTHE_." <a href='index.php?page=users' title='"._LOGIN_."'><b>"._LOGIN_."</b></a> "._OR_." <a href='index.php?page=users&op=register' title='"._REGISTER_."'><b>"._REGISTER_."</b></a> "._FORFREE_."</div>";
 @session_start();
 $_SESSION['redirect_url'] = "index.php?page=$page";
 $_SESSION['redirect_age'] = time();
 }
 closeTable();
 }
 } else if ($virtualpagerequest AND ($enabledPage==1 OR isAuth($userid,3)) AND $siteConfig['virtualpages']==1) {
 //VIRTUAL PAGES (Added in 3.8.0)
 if (myRank()>=$rankPage) {
 $open = true;
 if ($result = $dblink->get_list("SELECT groupid FROM memht_groups_pages WHERE page='$page'")) {
 $grouparr = array();
 foreach ($result as $row) {
 $groupid = intval($row['groupid']);
 if ($dblink->get_num("SELECT id FROM memht_groups_members WHERE groupid=$groupid AND user=$userid AND standby=0 AND (permanent=1 OR expire > $tzNOW)")==0) { $open = false; $grouparr[] = $groupid; }
 }
 } else { $open = true; }
 if ($open) {
 define("_LOAD_PAGE_",1);
 require_once("inc/inc_header.php");
 $pagecontent['title'] = $pagetitle;
 $pagecontent['url'] = "index.php?page=$page";
 $pagecontent['name'] = $page;
 openTable();
 eval($pageContent);
 closeTable();
 require_once("inc/inc_footer.php");
 } else {
 $pagecontent['title'] = _ACCESSDENIED_;
 $pagecontent['url'] = "";
 $pagecontent['name'] = "";
 openTable();
 //ACCESS DENIED (group required)
 echo "<div align='center' id='errorText'><b>"._ACCESSDENIED_."</b></div>";
 echo "<div align='center' class='box'><b>"._YOUHAVENOPERM_." "._TOACCESSTHISPAGE_."!</b></div>";
 if (sizeof($grouparr)>0) {
 echo "<div class='box'><i>"._REQUIRED_.":</i><br>";
 foreach ($grouparr as $groupid) {
 $row = $dblink->get_row("SELECT type,amount,name FROM memht_groups WHERE id=$groupid");
 echo "<div>  - "._GROUP_.": <b>".$row['name']."</b>";
 switch (intval($row['type'])) {
 case 1: echo ": <b>".$row['amount']."</b> "._FORUM_POSTS_; break;
 case 2: echo ": <b>".$row['amount']."</b> "._CONTRIBUTES_." ("._NEWS_.","._FILES_.")"; break;
 }
 echo "</div>";
 }
 echo "</div>";
 }
 closeTable();
 }
 } else {
 openTable();
 //ACCESS DENIED (Login required)
 echo "<div align='center' id='errorText'><b>"._ACCESSDENIED_."</b></div>";
 if ($rankPage==1) {
 echo "<div align='center' class='box'>"._YOUHAVENOPERM_." "._TOACCESSTHISPAGE_."!<br>"._DOTHE_." <a href='index.php?page=users' title='"._LOGIN_."'><b>"._LOGIN_."</b></a> "._OR_." <a href='index.php?page=users&op=register' title='"._REGISTER_."'><b>"._REGISTER_."</b></a> "._FORFREE_."</div>";
 @session_start();
 $_SESSION['redirect_url'] = "index.php?page=$page";
 $_SESSION['redirect_age'] = time();
 }
 closeTable();
 }
 } else {
 require_once("inc/inc_header.php");
 $pagecontent['title'] = _PAGE_NOEXIST_ORINACTIVE_;
 $pagecontent['url'] = "";
 $pagecontent['name'] = "";
 openTable();
 echo "<div align='center' id='errorText'><b>"._PAGE_NOEXIST_ORINACTIVE_."</b></div>";
 closeTable();
 require_once("inc/inc_footer.php");
 }
 } else {
 //SUSPICIOUS PAGE NAME
 $pagecontent['title'] = _SYNTAX_ERROR_;
 $pagecontent['url'] = "";
 $pagecontent['name'] = "";
 openTable();
 echo "<div align='center' id='errorText'><b>"._SYNTAX_ERROR_."</b></div>";
 closeTable();
 }
 $pagecontent['content'] = ob_get_contents();
 ob_end_clean();
 } else {
 //DEFAULT HOME
 ob_start();
 define("_LOAD_PAGE_",1);
 if (memRunHooks('DefaultHome')) {
 include_once("pages/messages/index.php");
 include_once("inc/inc_blocks_central.php");
 if (file_exists("pages/".$siteConfig['defpage']."/index.php")) {
 include("pages/".$siteConfig['defpage']."/index.php");
 } else if ($row = $dblink->get_row("SELECT content FROM memht_virtualpages WHERE name='".$siteConfig['defpage']."'")) {
 //VIRTUAL PAGES (Added in 3.8.0)
 eval(outCodeVP($row['content']));
 }
 
 memRunHooks('DefaultHomeEnd');
 }
 $pagecontent['title'] = "";
 $pagecontent['url'] = "index.php?page=".$siteConfig['defpage'];
 $pagecontent['name'] = $siteConfig['defpage'];
 $pagecontent['content'] = ob_get_contents();
 ob_end_clean();
 }
 
 //FOOTER
 include_once("inc/inc_footer.php");
 //BLOCKS
 include_once("inc/inc_blocks_nav.php");
 include_once("inc/inc_blocks_extra.php");
 
 $tpl->assign('tpl_page',$pagecontent);
 } else {
 //Site closed
 $siteinactive = ($siteConfig['offlinemsg']!="") ? $siteConfig['offlinemsg'] : _SITE_TEMP_INACTIVE_ ;
 die("<div align='center'><table style='margin: 2px; padding: 2px; border: 1px solid #999; background-color: #EEE; font-family: Verdana; font-size: 10px;'><tr><td>$siteinactive</td></tr></table></div>");
 }
 
 if ($siteConfig['usecronjobs']==0) {
 //MAINTENANCE
 $maintenance = new Maintenance();
 $maintenance->All();
 //NEWSLETTER
 sendNewsletter();
 }
 
 //===========================================
 //DRAW TEMPLATE
 //===========================================
 $tpl->draw("home");
 
 //===========================================
 //CLEAN
 //===========================================
 ob_end_flush();
 
 //===========================================
 //LOAD TIME e
 //===========================================
 $mtime = microtime();
 $mtime = explode(" ",$mtime);
 $mtime = $mtime[1] + $mtime[0];
 $endtime = $mtime;
 $totaltime = sprintf("%01.2f",($endtime - $starttime));
 $totaltime = explode(".",$totaltime);
 
 if ($totaltime[1]>=75) { $totaltime = ($totaltime[0]+1).".00";
 } else if ($totaltime[1]>=50) { $totaltime = $totaltime[0].".75";
 } else if ($totaltime[1]>=25) {    $totaltime = $totaltime[0].".50";
 } else if ($totaltime[1]>0) { $totaltime = $totaltime[0].".25";
 } else { $totaltime = $totaltime[0].".00"; }
 
 if ($dblink->get_num("SELECT time FROM memht_statistics_loadtime WHERE time='$totaltime' LIMIT 1")>0) {
 $dblink->query("UPDATE memht_statistics_loadtime SET hits=hits+1 WHERE time='$totaltime'");
 } else {
 $dblink->query("INSERT INTO memht_statistics_loadtime (time,hits,started) VALUES ('$totaltime',1,$tzNOW)");
 }
 
 //===========================================
 //DATABASE: DISCONNECT
 //===========================================
 $dblink->disconnect();
 
 ?>
 
 </body>
 </html>
 |