view www/info.php @ 2833:d0e186348cb2 default tip

Add mention of soft level limitation to 'Eightleg woods'.
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 26 May 2024 20:33:53 +0300
parents 78ad0e51b7b5
children
line wrap: on
line source

<?php
require "config.inc.php";
require "world.inc.php";
require "common.inc.php";

/* Page start
 */
mpPrintPageHeader($pageTitle." - Wizards of the Realm");

echo
  "<h1>Wizards of the Realm</h1>\n".
  "<div class=\"attnbox\">\n".
  "  <b>Notice #1</b>: The area counts are not really accurate, as the database MOSTLY ".
  "lists areas accessible from outworld. Thus areas only accessible via some ".
  "other fashion MIGHT not be listed. Also, maintainerships of some areas are not ".
  "clear, and may be credited to wrong wizard(s).\n".
  "  <br />\n".
  "\n".
  "  <b>Notice #2</b>: Not everyone who has once been immortal is listed. ".
  "Some purged and/or remorted wizards without known contributions are unlisted.\n".
  "  <br />\n".
  "\n".
  "  <b>Notice #3</b>: It is certainly possible, that some of this information is ".
  "incorrect. Sorry for that. Please report to ".burl("Ggr").", if you have Knowledge(tm).\n".
  "</div>\n".
  "<hr />\n".
  "<div style=\"text-align: center;\">\n".
  " <table class=\"locWizHasInfo\">\n".
  "  <tr>\n".
  "   <td class=\"locWizHasDesc\">Entry has information about the wizard.</td>\n".
  "   <td class=\"locWizHasNoDesc\">No wizard information entry.</td>\n".
  "  </tr>\n".
  " </table>\n".
  "</div>\n";

$locTable = apcu_fetch("info_locTable");
if (empty($locTable))
{
  $locTable = mpParseLocFiles(TRUE);
  apcu_store("info_locTable", $locTable, 3600);
}
$wizTable = apcu_fetch("wizTable");
if (empty($wizTable))
{
  $wizTable = mpReadWizInfoFiles();
  apcu_store("wizTable", $wizTable, 3600);
}


function wizardSort($a, $b)
{
  return strcmp($a["name"], $b["name"]);
}


// Get area counts
foreach ($locTable as $location)
{
  foreach ($location["authors"] as $wiz)
  {
    $name = $wiz["name"];

    // Many wizards do not have an entry in wizard info table
    if (!isset($wizTable[$name]))
    {
      $wizTable[$name] = [
        "name" => $name,
        "names" => [],
        "areas" => 0,
      ];
    }

    $wizTable[$name]["areas"]++;
  }
}

// Make alphabetically sorted table of wizards
foreach ($wizTable as $name => $data)
  $alphaTable[$name[0]][$name] = $data;

ksort($alphaTable, SORT_STRING);

// Print wizards alphabetically per first character of name
foreach ($alphaTable as $alpha => $data)
if (count($data) > 0)
{
  usort($data, "wizardSort");

  $letter = strtoupper($alpha);
  echo "<h3><a id=\"ch".$letter."\"></a>".$letter."</h3>\n";
  echo "<div class=\"locTable\">\n";

  foreach ($data as $name => $wizard)
  {
    echo
      "  <div class=\"locWizard ".
      (isset($wizard["desc"]) ? "locWizHasDesc" : "locWizHasNoDesc")."\">".
      "<a href=\"loc.php?a=".$wizard["name"]."\">".$wizard["name"]."</a>";

    if ($wizard["areas"] > 0)
      echo " <span class=\"locWizNumAreas\">(".$wizard["areas"].")</span>";

    echo "</div>\n";
  }

  echo "</div>\n";
}

echo
  "<p><b>".count($wizTable)."</b> wizards.</p>\n".
  "</div>\n"; // end of contents div

// Print out the alpha link index
mpPrintExtraBoxAlphaList("ch", $alphaTable);

mpPrintPageFooter(FALSE);
?>