. */ /** * Defined in session.php * * @global string $SEARCH_SPIDER * @global Tree $WT_TREE */ global $SEARCH_SPIDER, $WT_TREE; define('WT_SCRIPT_NAME', 'index.php'); require './includes/session.php'; // The only option for action is "ajax" $action = Filter::get('action'); // The default view depends on whether we are logged in if (Auth::check()) { $ctype = Filter::get('ctype', 'gedcom|user', 'user'); } else { $ctype = 'gedcom'; } // Get the blocks list if ($ctype === 'user') { $blocks = get_user_blocks(Auth::id()); } else { $blocks = get_gedcom_blocks(WT_GED_ID); } $all_blocks = Module::getActiveBlocks(); // The latest version is shown on the administration page. This updates it every day. fetch_latest_version(); // We generate individual blocks using AJAX if ($action === 'ajax') { $controller = new AjaxController; $controller->pageHeader(); // Check we’re displaying an allowable block. $block_id = Filter::getInteger('block_id'); if (array_key_exists($block_id, $blocks['main'])) { $module_name = $blocks['main'][$block_id]; } elseif (array_key_exists($block_id, $blocks['side'])) { $module_name = $blocks['side'][$block_id]; } else { return; } if (array_key_exists($module_name, $all_blocks)) { $class_name = __NAMESPACE__ . '\\' . $module_name . '_WT_Module'; $module = new $class_name; echo $module->getBlock($block_id); } if (WT_DEBUG_SQL) { echo Database::getQueryLog(); } return; } $controller = new PageController; if ($ctype === 'user') { $controller->restrictAccess(Auth::check()); } $controller ->setPageTitle($ctype === 'user' ? I18N::translate('My page') : WT_TREE_TITLE) ->setMetaRobots('index,follow') ->setCanonicalUrl(WT_SCRIPT_NAME . '?ctype=' . $ctype . '&ged=' . WT_GEDCOM) ->pageHeader() // By default jQuery modifies AJAX URLs to disable caching, causing JS libraries to be loaded many times. ->addInlineJavascript('jQuery.ajaxSetup({cache:true});'); if ($ctype === 'user') { echo '
'; echo '

', I18N::translate('My page'), '

'; } else { echo '
'; } if ($blocks['main']) { if ($blocks['side']) { echo '
'; } else { echo '
'; } foreach ($blocks['main'] as $block_id => $module_name) { $class_name = __NAMESPACE__ . '\\' . $module_name . '_WT_Module'; $module = new $class_name; if ($SEARCH_SPIDER || !$module->loadAjax()) { // Load the block directly echo $module->getBlock($block_id); } else { // Load the block asynchronously echo '
 
'; $controller->addInlineJavascript( 'jQuery("#block_' . $block_id . '").load("index.php?ctype=' . $ctype . '&action=ajax&block_id=' . $block_id . '");' ); } } echo '
'; } if ($blocks['side']) { if ($blocks['main']) { echo '
'; } else { echo '
'; } foreach ($blocks['side'] as $block_id => $module_name) { $class_name = __NAMESPACE__ . '\\' . $module_name . '_WT_Module'; $module = new $class_name; if ($SEARCH_SPIDER || !$module->loadAjax()) { // Load the block directly echo $module->getBlock($block_id); } else { // Load the block asynchronously echo '
 
'; $controller->addInlineJavascript( 'jQuery("#block_' . $block_id . '").load("index.php?ctype=' . $ctype . '&action=ajax&block_id=' . $block_id . '");' ); } } echo '
'; } echo '
';