/** * Returns an array (keyed on session ID) of arrays with the following fields: * id the session id * last last touched time (Unix timestamp) * ttl time to live, in seconds * size disk usage, in bytes * This function may take tens of seconds to run on a production server with * thousands of active sessions. */ function mpEnumerateSessions() { $sesslist = array(); //$baseDataDir = MP_BASE_DIR."/public_html/data"; $baseDataDir = substr(MP_JOB_DATA_DIR, 0, strlen(MP_JOB_DATA_DIR) - 1); $h = opendir($baseDataDir); while (($id = readdir($h)) != false) { if (preg_match('/^[a-zA-Z0-9_]{16,64}$/', $id) && is_dir("{$baseDataDir}/{$id}")) { unset($sess); $lifetime = mpSessLifetime($id); $sess['id'] = $id; $sess['last'] = $lifetime['last']; $sess['ttl'] = $lifetime['ttl']; $sess['size'] = mpSessSizeOnDisk($id); $sesslist[$id] = $sess; } } closedir($h); return $sesslist; }
/** * $active is one of ... */ function mpNavigationBar($active) { $s = ""; $s .= mpNavBar_goto('welcome.php', 'Main page', $active == 'welcome'); $s .= "<div class='minornav'>" . mpNavBar_goto('helper_hydrogens.php', 'About hydrogens', $active == 'helper_hydrogens') . "</div>"; $s .= "<div class='minornav'>" . mpNavBar_goto('helper_xray.php', 'Evaluate X-ray', $active == 'helper_xray') . "</div>"; $s .= "<div class='minornav'>" . mpNavBar_goto('helper_nmr.php', 'Evaluate NMR', $active == 'helper_nmr') . "</div>"; $s .= "<div class='minornav'>" . mpNavBar_goto('helper_rebuild.php', 'Fix up structure', $active == 'helper_rebuild') . "</div>"; $s .= "<div class='minornav'>" . mpNavBar_goto('helper_kinemage.php', 'Work with kins', $active == 'helper_kinemage') . "</div>"; $s .= "<br />\n"; /* $s .= "<div class='minornav'>".mpNavBar_call('upload_setup.php', 'Input PDB files')."</div>"; $s .= "<div class='minornav'>".mpNavBar_call('upload_setup.php', 'Input other files')."</div>"; $s .= "<div class='minornav'>".mpNavBar_call('reduce_setup.php', 'Add hydrogens')."</div>"; $s .= "<div class='minornav'>".mpNavBar_call('aacgeom_setup.php', 'All-atom contacts & geometry')."</div>"; $s .= "<div class='minornav'>".mpNavBar_call('interface_setup1.php', 'Interface contacts')."</div>"; //$s .= "<div class='minornav'>".mpNavBar_call('sswing_setup1.php', 'Refit sidechains')."</div>"; $s .= "<div class='minornav'>".mpNavBar_call('makekin_setup.php', 'Make simple kins')."</div>"; $s .= "<br />\n"; */ $s .= mpNavBar_goto('file_browser.php', 'View & download files', $active == 'files'); $s .= mpNavBar_goto('notebook_main.php', 'Lab notebook', $active == 'notebook'); //$s .= mpNavBar_goto('', 'Set preferences', ($active == 'preferences')); $s .= mpNavBar_goto('feedback_setup.php', 'Feedback & bugs', $active == 'feedback'); $s .= mpNavBar_goto('sitemap.php', 'Site map', $active == 'sitemap'); $s .= "<br />\n"; $s .= mpNavBar_goto('save_session.php', 'Save session', $active == 'savesession'); $s .= mpNavBar_goto('logout.php', 'Log out', $active == 'logout'); $s .= "<br />You are using " . round(100 * mpSessSizeOnDisk(session_id()) / MP_SESSION_MAX_SIZE); $s .= "% of your " . formatFilesize(MP_SESSION_MAX_SIZE) . " of disk space."; return $s; }