http://www.gnu.org/copyleft/gpl.html GNU/GPL, смотрите LICENSE.php * Joostina! - свободное программное обеспечение. Эта версия может быть изменена * в соответствии с Генеральной Общественной Лицензией GNU, поэтому возможно * её дальнейшее распространение в составе результата работы, лицензированного * согласно Генеральной Общественной Лицензией GNU или других лицензий свободных * программ или программ с открытым исходным кодом. * Для просмотра подробностей и замечаний об авторском праве, смотрите файл COPYRIGHT.php. */ // Установка флага родительского файла define( '_VALID_MOS', 1 ); if (function_exists('memory_get_usage')) define( '_MEM_USAGE_START', memory_get_usage() ); else define( '_MEM_USAGE_START', null ); // проверка конфигурационного файла, если не обнаружен, то загружается страница установки if (!file_exists( 'configuration.php' ) || filesize( 'configuration.php' ) < 10) { $self = rtrim( dirname( $_SERVER['PHP_SELF'] ), '/\\' ) . '/'; header("Location: http://" . $_SERVER['HTTP_HOST'] . $self . "installation/index.php" ); exit(); } // подключение файла эмуляции отключения регистрации глобальных переменных require( 'globals.php' ); // подключение файла конфигурации require_once( 'configuration.php' ); // boston считаем время за которое сгенерирована страница if($mosConfig_time_gen){ list($usec, $sec) = explode(" ",microtime()); $sysstart = ((float)$usec + (float)$sec); }; // проверка и активация расширенного отладчика if($mosConfig_front_debug){ require_once "includes/debug/jdebug.php"; $debug = new jdebug(); } // Проверка SSL - $http_host возвращает :<номер_порта, если он 443> $http_host = explode(':', $_SERVER['HTTP_HOST'] ); if( (!empty( $_SERVER['HTTPS'] ) && strtolower( $_SERVER['HTTPS'] ) != 'off' || isset( $http_host[1] ) && $http_host[1] == 443) && substr( $mosConfig_live_site, 0, 8 ) != 'https://' ) { $mosConfig_live_site = 'https://'.substr( $mosConfig_live_site, 7 ); } // подключение главного файла - ядра системы require_once( 'includes/joomla.php' ); //Проверка подпапки установки, удалена при работе с SVN if (file_exists( 'installation/index.php' ) && $_VERSION->SVN == 0) { define( '_INSTALL_CHECK', 1 ); include ( $mosConfig_absolute_path .'/offline.php'); exit(); } // отображение страницы выключенного сайта if ($mosConfig_offline == 1) { require( $mosConfig_absolute_path .'/offline.php' ); } // boston, проверяем, разрешено ли использование системных мамботов if($mosConfig_mmb_system_off==0) { $_MAMBOTS->loadBotGroup( 'system' ); // триггер событий onStart $_MAMBOTS->trigger( 'onStart' ); } //boston, если в глобальной конфигурации не указано использовать sef - не будем даже файлы подключать if($mosConfig_sef==1){ if (file_exists( $mosConfig_absolute_path .'/components/com_sef/sef.php' )) { require_once( $mosConfig_absolute_path .'/components/com_sef/sef.php' ); } else { require_once( $mosConfig_absolute_path .'/includes/sef.php' ); } }else{ // boston, функция sefRelToAbs() - системная, создадим для неё заглушку function sefRelToAbs( $string ) { global $mosConfig_com_frontpage_clear; if (eregi("option=com_frontpage", $string) & $mosConfig_com_frontpage_clear & !eregi("limit", $string)) $string = '.'; // если ссылка идёт на компонент главной страницы - очистим её return $string ; } } require_once( $mosConfig_absolute_path .'/includes/frontend.php' ); // поиск некоторых аргументов url (или form) $option = strval( strtolower( mosGetParam( $_REQUEST, 'option' ) ) ); $Itemid = intval( mosGetParam( $_REQUEST, 'Itemid', null ) ); if ($option == '') { if ($Itemid) { $query = "SELECT id, link" . "\n FROM #__menu" . "\n WHERE menutype = 'mainmenu'" . "\n AND id = " . (int) $Itemid . "\n AND published = 1" ; $database->setQuery( $query ); } else { $query = "SELECT id, link" . "\n FROM #__menu" . "\n WHERE menutype = 'mainmenu'" . "\n AND published = 1" . "\n ORDER BY parent, ordering" ; $database->setQuery( $query, 0, 1 ); } $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 ); /** это путь, требуется переделать для лучшего управления глобальными переменными */ foreach ($temp as $k=>$v) { $GLOBALS[$k] = $v; $_REQUEST[$k] = $v; if ($k == 'option') { $option = $v; } } } if ( !$Itemid ) { // когда не найден Itemid, то ему присваивается значение по умолчанию $Itemid = 99999999; } // mainframe - основная рабочая среда API, осуществляет взаимодействие с 'ядром' $mainframe = new mosMainFrame( $database, $option, '.' ); // boston, отключение ведения сессий на фронте if($mosConfig_session_front==0) $mainframe->initSession(); // триггер событий onAfterStart if($mosConfig_mmb_system_off==0) $_MAMBOTS->trigger( 'onAfterStart' ); // проверка, если мы можем найти Itemid в содержимом if ( $option == 'com_content' && $Itemid === 0 ) { $id = intval( mosGetParam( $_REQUEST, 'id', 0 ) ); $Itemid = $mainframe->getItemid( $id ); } /** до сих пор не правильный Itemid?? */ if ( $Itemid === 0 ) { /** Нет, используется именно главная страница. */ $query = "SELECT id" . "\n FROM #__menu" . "\n WHERE menutype = 'mainmenu'" . "\n AND published = 1" . "\n ORDER BY parent, ordering" ; $database->setQuery( $query, 0, 1 ); $Itemid = $database->loadResult(); } // путь уменьшения воздействия на шаблоны if ($option == 'search') { $option = 'com_search'; } // загрузка файла русского языка по умолчанию if ($mosConfig_lang=='') { $mosConfig_lang = 'russian'; } include_once( $mosConfig_absolute_path .'/language/' . $mosConfig_lang . '.php' ); // контроль входа и выхода в фронт-энд $return = strval( mosGetParam( $_REQUEST, 'return', NULL ) ); $message = intval( mosGetParam( $_POST, 'message', 0 ) ); if ($option == 'login') { $mainframe->login(); // Всплывающее сообщение JS if ( $message ) { ?> logout(); // Всплывающее сообщение JS if ( $message ) { ?> getUser(); // обнаружение первого посещения $mainframe->detect(); // установка проверки для overlib $mainframe->set( 'loadOverlib', false ); $gid = intval( $my->gid ); // получение шаблона страницы $cur_template = $mainframe->getTemplate(); /** @global