blob: b7e4861ce883fee182d46d7675358a0803103680 [file] [log] [blame]
<?php
/* path, project's downloads path, downloads page path, includes path, and vanity name */
$PR = substr($projDetails[0],1);
$projectDownloadsPath = $projDetails[0];
$projectDownloadsPagePath = $projDetails[1];
$projectIncludesPath = $projDetails[2];
$projectName = $projDetails[3];
$isWWWserver = (preg_match("/^(?:www.|)eclipse.org$/", $_SERVER["SERVER_NAME"]));
$isBuildServer = preg_match("/^(build|emft).eclipse.org$/", $_SERVER["SERVER_NAME"]) || preg_match("/^emf(?:\.torolab\.ibm\.com)$/", $_SERVER["SERVER_NAME"]);
$doPhoenix = is_file($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
if ($isWWWserver || $doPhoenix)
{
require_once ($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
require_once ($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");
require_once ($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php");
$App = new App();
$Nav = new Nav();
$Menu = new Menu();
if (is_file($App->getProjectCommon()))
{
include ($App->getProjectCommon());
}
$PWD = $App->getDownloadBasePath() . "/$PR/";
$jdPWD = "http://download.eclipse.org/$PR/";
}
else
{
if (is_dir("../../../../$PR/"))
{
$PWD = "../../../../$PR/"; // in a javadoc folder in the /modeling/mdt area
}
else
if (is_dir("../../../$PR/"))
{
$PWD = "../../../$PR/"; // in the web folder in /modeling/mdt/
}
$jdPWD = $PWD;
}
$subprojs = loadSubDirs($PWD, "(.+)");
// REDIRECT to latest version of javadoc for the specified path
if ($_GET["project"] && $_GET["page"])
{
/* http://www.eclipse.org/modeling/emf/javadoc/?project=emf&page=org/eclipse/emf/ecore/package-summary.html&anchor=details
* http://www.eclipse.org/modeling/mdt/javadoc/?project=xsd&page=org/eclipse/xsd/package-summary.html&anchor=details */
$vers = array ();
foreach ($subprojs as $projct)
{
if ($_GET["project"]==$projct)
{
$vers = loadSubDirs($PWD . $projct . "/javadoc", "(\d\.\d|\d\.\d\.\d+)");
break;
}
}
if (sizeof($vers) > 0)
{
rsort($vers);
$redirect = "Location: " . $jdPWD . $projct . "/javadoc/" . $vers[0] . "/" . str_replace("//", "/", str_replace("..", "", $_GET["page"]) . "#" . $_GET["anchor"]);
//print $redirect;
header($redirect);
exit;
}
}
if ($doPhoenix)
{
ob_start();
}
else
{
print '<html>' . "\n" .
'<head>' . "\n" .
' <title>' . $projectName . ' Javadoc</title>' . "\n" .
' <link rel="stylesheet" type="text/css" href="http://' . ($isBuildServer ? $_SERVER["SERVER_NAME"] : "www.eclipse.org") . '/modeling/includes/downloads.css"/>' . "\n" .
'</head>' . "\n" .
'<body>' . "\n";
}
print '<div id="midcolumn">
<div class="homeitem3col">
<h3>' . $projectName . ' Javadoc</h3>
<ul>
';
$trans = array(); // flipped $projects array
if (sizeof($subprojs) > 0)
{
sort($subprojs);
reset($subprojs);
if (isset ($projects) && is_array($projects))
{
$trans = array_flip($projects);
}
foreach ($subprojs as $subproj)
{
if (in_array($subproj, $projects))
{
$label = $trans ? $trans[$subproj] : $subproj;
$didprint = 0;
print '<li><b> ' . $label . '</b><a name="' . $subproj . '"></a>' . "\n";
if ($PR == "modeling/mdt" && $subproj == "xsd")
{
$didprint = 1;
print '<ul><li><i><a href="/modeling/emf/javadoc/">See EMF Javadoc</a>.</i></li></ul>';
}
else
{
$vers = loadSubDirs("$PWD$subproj/javadoc", "");
rsort($vers);
reset($vers);
foreach ($vers as $ver)
{
if (preg_match("/[^0-9.]+/", $ver))
{
$vers2 = loadSubDirs("$PWD$subproj/javadoc/" . $ver, "");
rsort($vers2);
reset($vers2);
if (sizeof($vers2) > 0)
{
$didprint = 1;
print "<ul>\n";
}
foreach ($vers2 as $ver2)
{
print '<li><a href="' . $jdPWD . $subproj . '/javadoc/' . $ver . '/' . $ver2 . '/">' . $ver . ' ' . $ver2 . '</a></li>' . "\n";
}
if (sizeof($vers2) > 0)
{
print "</ul>\n";
}
}
else
{
$didprint = 1;
print '<ul><li><a href="' . $jdPWD . $subproj . '/javadoc/' . $ver . '/">' . $subproj . ' ' . $ver . '</a></li></ul>' . "\n";
}
}
if ($didprint == 0)
{
print "<ul><li><i>None available.</i></li></ul>";
}
}
print '</li>' . "\n";
}
}
}
else
{
print "<li>No javadoc found!</li>";
}
print "</ul>\n";
print "</div></div>\n";
$tprojs = loadSubDirs("../../", ".*");
if ($tprojs && sizeof($tprojs) > 0)
{
sort($tprojs); reset($tprojs);
print "<div id=\"rightcolumn\">\n";
print '<div class="sideitem">'."\n". "<h6>Online Javadoc</h6>";
print '<ul>'."\n";
foreach ($tprojs as $tproj)
{
$sprojs = loadSubDirs($PWD . "/../../modeling/" . $tproj, ".*");
if ($sprojs && sizeof($sprojs) > 0 && is_dir("../../$tproj/javadoc/"))
{
print '<li><a href="/modeling/'.$tproj.'/javadoc/">' . strtoupper($tproj) . "</a></li>\n";
sort($sprojs); reset($sprojs);
print '<ul>'."\n";
foreach ($sprojs as $sproj)
{
if (is_dir($PWD . "/../../modeling/" . $tproj . "/" . $sproj . "/javadoc") && !is_link($PWD . "/../../modeling/" . $tproj . "/" . $sproj))
{
print '<li><a href="/modeling/'.$tproj.'/javadoc/#' . $sproj . '">' . $sproj . "</a></li>\n";
}
}
print '</ul>'."\n";
}
}
print "</ul>\n";
print "</div></div>\n";
}
if ($doPhoenix)
{
$html = ob_get_contents();
ob_end_clean();
$pageTitle = "Modeling - " . ($projectName ? $projectName . " -" : "") . " Javadoc";
$pageKeywords = "";
$pageAuthor = "Nick Boldt";
$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="http://' . ($isBuildServer ? $_SERVER["SERVER_NAME"] : "www.eclipse.org") . '/modeling/includes/downloads.css"/>' . "\n");
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
}
else
{
print "</body></html>\n";
}
function loadSubDirs($dir, $ext)
{
$stuff = array ();
if (is_dir($dir) && is_readable($dir))
{
$handle = opendir($dir);
while (($file = readdir($handle)) !== false)
{
if (preg_match("/$ext$/", $file) && !preg_match("/^\.{1,2}$/", $file) && is_dir("$dir/$file"))
{
$stuff[] = $file;
}
}
closedir($handle);
}
return $stuff;
}
?>