read())) { if (($entry!=".") && ($entry!="..") && ($entry!="CVS") && (preg_match("/\.php$/", $entry)>0)) { require_once WT_ROOT.'blocks/'.$entry; } } $d->close(); /** * End loading list of Blocks in blocks directory * * Load List of Blocks in modules/XX/blocks directories */ if (file_exists(WT_ROOT.'modules')) { $dir=dir(WT_ROOT.'modules'); while (false !== ($entry = $dir->read())) { if (!strstr($entry,".") && ($entry!="..") && ($entry!="CVS")&& !strstr($entry, "svn")) { $path = WT_ROOT.'modules/' . $entry.'/blocks'; if (is_readable($path)) { $d=dir($path); while (false !== ($entry = $d->read())) { if (($entry!=".") && ($entry!="..") && ($entry!="CVS")&& !strstr($entry, "svn")&&(preg_match("/\.php$/", $entry)>0)) { $p=$path.'/'.$entry; require_once $p; } } } } } } /** * End loading list of Blocks in modules/XX/blocks directories */ $time = client_time(); if (!isset($action)) $action=""; // Visitors should see any links to a user page, but they may be // following a link after an inactivity logout. if (!WT_USER_ID) { if (!empty($ctype) && $ctype=='user') { header('Location: login.php&url=index.php?ctype=user'); exit; } else { $ctype = 'gedcom'; } } if (empty($ctype)) { if ($PAGE_AFTER_LOGIN == 'welcome') $ctype = 'gedcom'; else $ctype = 'user'; } if (WT_USER_ID) { //-- add favorites action if ($action=="addfav" && !empty($gid)) { $gid = strtoupper($gid); $indirec = find_gedcom_record($gid, WT_GED_ID); $ct = preg_match("/0 @(.*)@ (.*)/", $indirec, $match); if ($indirec && $ct>0) { $favorite = array(); if (empty($favtype)) { if ($ctype=="user") $favtype = "user"; else $favtype = "gedcom"; } if ($favtype=="gedcom") { $favtype = $GEDCOM; $_SESSION['clearcache'] = true; } else $favtype=WT_USER_NAME; $favorite["username"] = $favtype; $favorite["gid"] = $gid; $favorite["type"] = trim($match[2]); $favorite["file"] = $GEDCOM; $favorite["url"] = ""; $favorite["note"] = $favnote; $favorite["title"] = ""; addFavorite($favorite); } } if (($action=="addfav")&&(!empty($url))) { if (empty($favtitle)) $favtitle = $url; $favorite = array(); if (!isset($favtype)) { if ($ctype=="user") $favtype = "user"; else $favtype = "gedcom"; } if ($favtype=="gedcom") { $favtype = $GEDCOM; $_SESSION['clearcache'] = true; } else $favtype=WT_USER_NAME; $favorite["username"] = $favtype; $favorite["gid"] = ""; $favorite["type"] = "URL"; $favorite["file"] = $GEDCOM; $favorite["url"] = $url; $favorite["note"] = $favnote; $favorite["title"] = $favtitle; addFavorite($favorite); } if (($action=="deletefav")&&(!empty($fv_id))) { deleteFavorite($fv_id); if ($ctype=="gedcom") $_SESSION['clearcache'] = true; } else if ($action=="deletemessage") { if (isset($message_id)) { if (!is_array($message_id)) deleteMessage($message_id); else { foreach($message_id as $indexval => $mid) { if (isset($mid)) deleteMessage($mid); } } if ($ctype=="gedcom") $_SESSION['clearcache'] = true; } } else if (($action=="deletenews")&&(isset($news_id))) { deleteNews($news_id); if ($ctype=="gedcom") $_SESSION['clearcache'] = true; } } //-- get the blocks list if ($ctype=="user") { $ublocks = getBlocks(WT_USER_NAME); if ((count($ublocks["main"])==0) && (count($ublocks["right"])==0)) { $ublocks["main"][] = array("print_todays_events", ""); $ublocks["main"][] = array("print_user_messages", ""); $ublocks["main"][] = array("print_user_favorites", ""); $ublocks["right"][] = array("print_welcome_block", ""); $ublocks["right"][] = array("print_random_media", ""); $ublocks["right"][] = array("print_upcoming_events", ""); $ublocks["right"][] = array("print_logged_in_users", ""); } } else { $ublocks = getBlocks($GEDCOM); if ((count($ublocks["main"])==0) && (count($ublocks["right"])==0)) { $ublocks["main"][] = array("print_gedcom_stats", ""); $ublocks["main"][] = array("print_gedcom_news", ""); $ublocks["main"][] = array("print_gedcom_favorites", ""); $ublocks["main"][] = array("review_changes_block", ""); $ublocks["right"][] = array("print_gedcom_block", ""); $ublocks["right"][] = array("print_random_media", ""); $ublocks["right"][] = array("print_todays_events", ""); $ublocks["right"][] = array("print_logged_in_users", ""); } } //-- Set some behaviour controls that depend on which blocks are selected $welcome_block_present = false; $gedcom_block_present = false; $top10_block_present = false; $login_block_present = false; foreach($ublocks["right"] as $block) { if ($block[0]=="print_welcome_block") $welcome_block_present = true; if ($block[0]=="print_gedcom_block") $gedcom_block_present = true; if ($block[0]=="print_block_name_top10") $top10_block_present = true; if ($block[0]=="print_login_block") $login_block_present = true; } foreach($ublocks["main"] as $block) { if ($block[0]=="print_welcome_block") $welcome_block_present = true; if ($block[0]=="print_gedcom_block") $gedcom_block_present = true; if ($block[0]=="print_block_name_top10") $top10_block_present = true; if ($block[0]=="print_login_block") $login_block_present = true; } //-- clear the GEDCOM cache files if (!empty($_SESSION['clearcache'])) { $_SESSION['clearcache'] = false; clearCache(); } // We have finished writing to $_SESSION, so release the lock session_write_close(); //-- handle block AJAX calls /** * In order for a block to make an AJAX call the following request parameters must be set * block = the method name of the block to call (e.g. 'print_random_media') * side = the side of the page the block is on (e.g. 'main' or 'right') * bindex = the number of the block on that side, first block = 0 */ if ($action=="ajax") { header('Content-Type: text/html; charset=UTF-8'); //-- if a block wasn't sent then exit with nothing if (!isset($_REQUEST['block'])) { print "Block not sent"; exit; } $block = $_REQUEST['block']; //-- set which side the block is on $side = "main"; if (isset($_REQUEST['side'])) $side = $_REQUEST['side']; //-- get the block number if (isset($_REQUEST['bindex'])) { if (isset($ublocks[$side][$_REQUEST['bindex']])) { $blockval = $ublocks[$side][$_REQUEST['bindex']]; if ($blockval[0]==$block && array_key_exists($blockval[0], $WT_BLOCKS)) { if ($side=="main") { $param1 = "false"; } else { $param1 = "true"; } if (array_key_exists($blockval[0], $WT_BLOCKS) && !loadCachedBlock($blockval, $side.$_REQUEST['bindex'])) { ob_start(); eval($blockval[0]."($param1, \$blockval[1], \"$side\", ".$_REQUEST['bindex'].");"); $content = ob_get_contents(); saveCachedBlock($blockval, $side.$_REQUEST['bindex'], $content); ob_end_flush(); } if (WT_DEBUG) { echo execution_stats(); } if (WT_DEBUG_SQL) { echo WT_DB::getQueryLog(); } exit; } } } //-- not sure which block to call so call the first one we find foreach($ublocks["main"] as $bindex=>$blockval) { if ($blockval[0]==$block && array_key_exists($blockval[0], $WT_BLOCKS)) { eval($blockval[0]."(false, \$blockval[1], \"main\", $bindex);"); } } foreach($ublocks["right"] as $bindex=>$blockval) { if ($blockval[0]==$block && array_key_exists($blockval[0], $WT_BLOCKS)) { eval($blockval[0]."(true, \$blockval[1], \"right\", $bindex);"); } } exit; } //-- end of ajax call handler if ($ctype=="user") { $helpindex = "index_myged_help"; print_header(i18n::translate('My Page')); } else { print_header(get_gedcom_setting(WT_GED_ID, 'title')); } if (WT_USE_LIGHTBOX) { require WT_ROOT.'modules/lightbox/lb_defaultconfig.php'; require WT_ROOT.'modules/lightbox/functions/lb_call_js.php'; } echo WT_JS_START; ?> function refreshpage() { window.location = 'index.php?ctype='; } function addnews(uname) { window.open('editnews.php?username='+uname, '_blank', 'top=50,left=50,width=600,height=500,resizable=1,scrollbars=1'); } function editnews(news_id) { window.open('editnews.php?news_id='+news_id, '_blank', 'top=50,left=50,width=600,height=500,resizable=1,scrollbars=1'); } var pastefield; function paste_id(value) { pastefield.value=value; } /** * blocks may use this JS function to update themselves using AJAX technology * @param string targetId the id of the block to target the results too * @param string block the method name of the block to call (e.g. 'print_random_media') * @param string side the side of the page the block is on (e.g. 'main' or 'right') * @param int bindex the number of the block on that side, first block = 0 * @param string ctype shows whether block is on Welcome or My Page ('gedcom' or 'user') * @param boolean loading Whether or not to show the loading message */ function ajaxBlock(targetId, block, side, bindex, ctype, loading) { target = document.getElementById(targetId); if (!target) return false; target.style.height = (target.offsetHeight) + "px"; if (loading) target.innerHTML = "



"; var oXmlHttp = createXMLHttp(); link = "index.php?action=ajax&block="+block+"&side="+side+"&bindex="+bindex+"&ctype="+ctype; oXmlHttp.open("get", link, true); oXmlHttp.onreadystatechange=function() { if (oXmlHttp.readyState==4) { target.innerHTML = oXmlHttp.responseText; target.style.height = 'auto'; } }; oXmlHttp.send(null); return false; } "; // This is needed so that page footers print in the right place if ($ctype=="user") { print "
"; print "

".i18n::translate('My Page')."

"; print i18n::translate('My Page allows you to keep bookmarks of your favorite people, track upcoming events, and collaborate with other webtrees users.'); print "

"; } if (count($ublocks["main"])!=0) { if (count($ublocks["right"])!=0) { print "
"; } else { print "
"; } echo ''; echo ''; foreach($ublocks["main"] as $bindex=>$block) { if (WT_DEBUG) { echo execution_stats(); } if (array_key_exists($block[0], $WT_BLOCKS) && !loadCachedBlock($block, "main".$bindex)) { $url="index.php?action=ajax&block={$block[0]}&side=main&bindex={$bindex}&ctype={$ctype}"; if ($SEARCH_SPIDER || WT_DEBUG) { // Search spiders get the blocks directly ob_start(); eval($block[0]."(false, \$block[1], \"main\", $bindex);"); $content = ob_get_contents(); $temp = $SEARCH_SPIDER; $SEARCH_SPIDER = false; saveCachedBlock($block, "main".$bindex, $content); $SEARCH_SPIDER = $temp; ob_end_flush(); } else { // Interactive users get the blocks via ajax echo '
', htmlspecialchars(i18n::translate('Loading...')),  '
'; echo WT_JS_START, "jQuery('#block_main_{$bindex}').load('{$url}');", WT_JS_END; } } } print "
"; } //-- end of main content section //-- start of blocks section if (count($ublocks["right"])!=0) { if (count($ublocks["main"])!=0) { print "
"; } else { print "
"; } foreach($ublocks["right"] as $bindex=>$block) { if (WT_DEBUG) { echo execution_stats(); } if (array_key_exists($block[0], $WT_BLOCKS) && !loadCachedBlock($block, "right".$bindex)) { $url="index.php?action=ajax&block={$block[0]}&side=right&bindex={$bindex}&ctype={$ctype}"; if ($SEARCH_SPIDER || WT_DEBUG) { // Search spiders get the blocks directly ob_start(); eval($block[0]."(true, \$block[1], \"right\", $bindex);"); $content = ob_get_contents(); saveCachedBlock($block, "right".$bindex, $content); ob_end_flush(); } else { // Interactive users get the blocks via ajax echo '
', htmlspecialchars(i18n::translate('Loading...')),  '
'; echo WT_JS_START, "jQuery('#block_right_{$bindex}').load('{$url}');", WT_JS_END; } } } print "
"; } //-- end of blocks section print "
"; // Close off that table if ($ctype=="user" && !$welcome_block_present) { print "
"; print "".i18n::translate('Customize My Page').""; echo help_link('mygedview_customize'); print "
"; } if ($ctype=="gedcom" && !$gedcom_block_present) { if (WT_USER_IS_ADMIN) { print "
"; print "".i18n::translate('Customize this GEDCOM Home Page').""; print "
"; } } print_footer(); ?>