/** * @copyright (C) 2008 ZSK */ // fix to address the globals overwrite problem in php versions < 4.4.1 $protect_globals = array('_REQUEST', '_GET', '_POST', '_COOKIE', '_FILES', '_SERVER', '_ENV', 'GLOBALS', '_SESSION'); foreach ($protect_globals as $global) { if ( in_array($global , array_keys($_REQUEST)) || in_array($global , array_keys($_GET)) || in_array($global , array_keys($_POST)) || in_array($global , array_keys($_COOKIE)) || in_array($global , array_keys($_FILES))) { die("Invalid Request."); } } /** Set flag that this is a parent file */ define( '_VALID_MOS', 1 ); session_start(); // checks for configuration file, if none found loads installation page if ( !file_exists( 'configuration.php' ) || filesize( 'configuration.php' ) < 10 ) { header( 'Location: installation/index.php' ); exit(); } include_once( 'globals.php' ); require_once( 'configuration.php' ); // displays offline page if ( $mosConfig_offline == 1 ){ include( 'offline.php' ); exit(); } require_once( 'includes/mambo.php' ); if (file_exists( 'components/com_sef/sef.php' )) { require_once( 'components/com_sef/sef.php' ); } else { require_once( 'includes/sef.php' ); } require_once( 'includes/frontend.php' ); /* Installation sub folder check, removed for work with CVS*/ if (file_exists( 'installation/index.php' )) { include ('offline.php'); exit(); } /**/ /** retrieve some expected url (or form) arguments */ $option = trim( strtolower( mosGetParam( $_REQUEST, 'option' ) ) ); $Itemid = intval( mosGetParam( $_REQUEST, 'Itemid', null ) ); $database = new database( $mosConfig_host, $mosConfig_user, $mosConfig_password, $mosConfig_db, $mosConfig_dbprefix ); $database->debug( $mosConfig_debug ); $acl = new gacl_api(); //--- Start Nok Kaew Patch $mosConfig_nok_content='0'; if (file_exists( 'components/com_nokkaew/nokkaew.php' )) { $mosConfig_nok_content='1'; // can also go into the configuration - but this might be overwritten! require_once( "administrator/components/com_nokkaew/nokkaew.class.php"); require_once( "components/com_nokkaew/classes/nokkaew.class.php"); } if( $mosConfig_nok_content ) { $database = new mlDatabase( $mosConfig_host, $mosConfig_user, $mosConfig_password, $mosConfig_db, $mosConfig_dbprefix ); } else { $database = new database( $mosConfig_host, $mosConfig_user, $mosConfig_password, $mosConfig_db, $mosConfig_dbprefix ); } if ($mosConfig_nok_content) { $mosConfig_defaultLang = $mosConfig_lang; // Save the default language of the site $iso_client_lang = NokKaew::discoverLanguage( $database ); $_NOKKAEW_MANAGER = new NokKaewManager(); } //--- End Nok Kaew Patch if ($option == '') { if ($Itemid) { $query = "SELECT id, link" . "\n FROM #__menu" . "\n WHERE menutype='mainmenu'" . "\n AND id = '$Itemid'" . "\n AND published = '1'" ; $database->setQuery( $query ); } else { $query = "SELECT id, link" . "\n FROM #__menu" . "\n WHERE menutype='mainmenu' AND published='1'" . "\n ORDER BY parent, ordering LIMIT 1" ; $database->setQuery( $query ); } $menu = new mosMenu( $database ); if ($database->loadObject( $menu )) { $Itemid = $menu->id; } $link = $menu->link; if (($pos = strpos( $link, '?' )) !== false) { $link = substr( $link, $pos+1 ). '&Itemid='.$Itemid; } parse_str( $link, $temp ); /** this is a patch, need to rework when globals are handled better */ foreach ($temp as $k=>$v) { $GLOBALS[$k] = $v; $_REQUEST[$k] = $v; if ($k == 'option') { $option = $v; } } } /** mainframe is an API workhorse, lots of 'core' interaction routines */ $mainframe = new mosMainFrame( $database, $option, '.' ); $mainframe->initSession(); // checking if we can find the Itemid thru the content if ( $option == 'com_content' && $Itemid === 0 ) { $id = intval( mosGetParam( $_REQUEST, 'id', 0 ) ); $Itemid = $mainframe->getItemid( $id ); } /** do we have a valid Itemid yet?? */ if ( $Itemid === null ) { /** Nope, just use the homepage then. */ $query = "SELECT id" . "\n FROM #__menu" . "\n WHERE menutype='mainmenu'" . "\n AND published='1'" . "\n ORDER BY parent, ordering" . "\n LIMIT 1" ; $database->setQuery( $query ); $Itemid = $database->loadResult(); } /** patch to lessen the impact on templates */ if ($option == 'search') { $option = 'com_search'; } // loads english language file by default if ( $mosConfig_lang == '' ) { $mosConfig_lang = 'english'; } include_once ( 'language/'.$mosConfig_lang.'.php' ); // frontend login & logout controls $return = mosGetParam( $_REQUEST, 'return', NULL ); if ($option == "login") { $mainframe->login(); // JS Popup message if ( mosGetParam( $_POST, 'message', 0 ) ) { echo ""; ?>