"Metadata Field Editor", "index.php?P=MetadataFieldOrdering" => "Metadata Field Ordering", "index.php?P=AddQualifier" => "Qualifier Editor", "index.php?P=EditSearchConfig" => "Search Configuration", "index.php?P=ConfirmRebuildSearchDB" => "Rebuild Search Database", "index.php?P=ConfirmRebuildRecommenderDB" => "Rebuild Recommender Database", "index.php?P=ImportData" => "Import Tab-Delimited Data", "index.php?P=PurgeSampleData" => "Purge Sample Records", ]; $UserAdminMenuEntries = [ "index.php?P=UserList" => "Edit Users", "index.php?P=TrackUserComments" => "Track User Comments", "index.php?P=ImportUsers" => "Import User Accounts", "index.php?P=ExportUsers" => "Export User Accounts", ]; $SystemAdminMenuEntries = [ "index.php?P=EditSystemConfig" => "System Configuration", "index.php?P=EditInterfaceConfig" => "Interface Configuration", "index.php?P=FixityChecks" => "File Integrity Report", "index.php?P=EditPrivilegeNames" => "Edit Custom Privilege Flags", "index.php?P=Plugins" => "Plugins", "index.php?P=TaskQueue" => "Task Queue", ]; # ----- LOCAL FUNCTIONS ------------------------------------------------------ /** * Display menu entries in two columns. * @param array $MenuEntries Entries with links for the index and labels * for the values. */ function displayMenu(array $MenuEntries): void { ?>

$Label) { # if we are halfway through the entries, move to second column if ($Index == ceil(count($MenuEntries) / 2)) { ?>

User | Login | Idle | Where | From
--- | --- | --- | --- | ---
Get("UserName"); $LoginTime = StdLib::getPrettyTimestamp($User->Get("LastLoginDate")); $IdleTime = time() - strtotime($User->LastActiveDate()); $IdleTime = sprintf( "%d:%02d:%02d", $IdleTime / 3600, ($IdleTime % 3600) / 60, $IdleTime % 60 ); $Location = $User->lastLocation(); $Location = preg_replace("/P_([A-Za-z0-9]+)_/", "\\1:", $Location); if (!is_string($Location)) { $Location = "(unknown)"; } $From = StdLib::getHostName($User->LastIPAddress()); ?>

GetErrorMessages(); if (count($ErrMsgs)) { $Output = '

### Plugin Errors

'; foreach ($ErrMsgs as $PluginName => $Msgs) { if (PluginManager::getInstance()->PluginEnabled($PluginName)) { foreach ($Msgs as $Msg) { $Output .= "
- ".$PluginName.": ".$Msg."
"; $ErrMsgDisplayed = true; } } } $Output .= "

"; if (isset($ErrMsgDisplayed)) { print $Output; } } } # ----- SETUP ---------------------------------------------------------------- $AF = ApplicationFramework::getInstance(); $PluginMgr = PluginManager::getInstance(); # retrieve data for administration menus $PluginMenus = Plugin::getAdminMenuEntries(); # retrieve data for Currently Logged In section $UFactory = new UserFactory(); $LoggedInUsers = $UFactory->getLoggedInUsers(); $RecentlyLoggedInUsers = $UFactory->getRecentlyLoggedInUsers(); # retrieve data for System Information section $DatabaseServerVersion = (new Database())->getServerVersion(true); $SupportedImageFormats = implode(", ", \ScoutLib\RasterImageFile::supportedFormatNames()); $LoadAverageString = "(unknown)"; if (function_exists("sys_getloadavg")) { $Load = sys_getloadavg(); if ($Load !== false) { $LoadAverageString = sprintf("%.2f / %.2f / %.2f", $Load[0], $Load[1], $Load[2]); } } # clear caches if requested if (isset($_GET["AC"]) && ($_GET["AC"] == "ClearPageCache")) { $AF->ClearPageCache(); $AF->ClearTemplateLocationCache(); $AF->ClearObjectLocationCache(); } # retrieve user currently logged in $User = User::getCurrentUser(); $ClearButton = new HtmlButton("CLEAR"); $ClearButton->setSize(HtmlButton::SIZE_SMALL); $ClearButton->setLink("?P=SysAdmin&AC=ClearPageCache"); $AF->setPageTitle("System Administration"); # ----- DISPLAY -------------------------------------------------------------- ?>
HasPriv(PRIV_SYSADMIN)) { if ($AF->GetOrphanedTaskCount()) { ?>

- WARNING: There are currently orphaned tasks. Please visit the Task Queue page and re-queue or delete the tasks as appropriate.

TaskExecutionEnabled()) { ?>

- PLEASE NOTE: Automatic task execution is currently disabled, which means that background tasks like search database updates and periodic mailings will not run.Visit the Task Queue page to re-enable task execution.

HasPriv(PRIV_SYSADMIN, PRIV_COLLECTIONADMIN)) { ?>

# Collection Administration

HasPriv(PRIV_SYSADMIN, PRIV_USERADMIN)) { ?>

# User Administration

HasPriv(PRIV_SYSADMIN)) { ?>

# System Administration

# Plugin Administration

$MenuEntries) { $Plugin = $PluginMgr->getPlugin($BaseName); if (!$Plugin->isReady()) { continue; } ?>

## getName() ?>

HasPriv(PRIV_SYSADMIN, PRIV_USERADMIN)) { ?>

# Users Currently Logged In

# Users Recently Logged In

HasPriv(PRIV_SYSADMIN)) { ?>

# Recent Log Messages

GetLogEntries(10); if (count($SysLogEntries)) { $LevelStrings = [ ApplicationFramework::LOGLVL_FATAL => "Fatal", ApplicationFramework::LOGLVL_ERROR => "Error", ApplicationFramework::LOGLVL_WARNING => "Warn", ApplicationFramework::LOGLVL_INFO => "Info", ApplicationFramework::LOGLVL_DEBUG => "Debug", ApplicationFramework::LOGLVL_TRACE => "Trace", ]; foreach ($SysLogEntries as $Entry) { # linkify any URLs in the message $Msg = htmlspecialchars($Entry["Message"]); $MaxDisplayedUrlLen = 50; $Msg = preg_replace( "~([[:alpha:]]+://[^<>[:space:]]{1," .$MaxDisplayedUrlLen."})([^<>[:space:]]*)~", "\\1", $Msg ); $RowClasses = "mv-content-sysadmin-logmsgs-row" ." mv-content-sysadmin-logmsgs-row-" .strtolower($LevelStrings[$Entry["Level"]]); ?>
(no log messages found)

# System Information

Metavus Version |
PHP Version |
MySQL Version |
Database Name | DBName(); ?>
Supported Image Formats |
PHP Configuration Summary | phpinfo()
Server Time |
Server Load Average | (1/5/15 minutes)
Page Cache | PageCacheEnabled()) { $CacheInfo = $AF->GetPageCacheInfo(); print number_format($CacheInfo["NumberOfEntries"])." entries"; if ($CacheInfo["NumberOfEntries"]) { print ", oldest from " . StdLib::getPrettyTimestamp($CacheInfo["OldestTimestamp"]) . " " . $ClearButton->getHtml(); } } else { print "(disabled)"; } ?>
SignalEvent("EVENT_SYSTEM_INFO_LIST"); if (count($SignalResult)) { foreach ($SignalResult as $HandlerName => $Items) { foreach ($Items as $Label => $Content) { ?>