Files
JIMRI/jython/index.php
T
2026-06-17 14:00:51 +02:00

168 lines
4.2 KiB
PHP

<!DOCTYPE html>
<html>
<head>
<title>JMRI Jython Example Files</title>
</head>
<body>
<h1>JMRI Jython Example Files</h1>
<?php
//Based on two php files in the resources directory: index, showIcons
function startswith($string, $test) {
$strlen = strlen($string);
$testlen = strlen($test);
if ($testlen > $strlen) return false;
return substr($string, 0, strlen($test)) == $test;
}
function endswith($string, $test) {
$strlen = strlen($string);
$testlen = strlen($test);
if ($testlen > $strlen) return false;
return substr_compare(strtolower($string), strtolower($test), -$testlen) === 0;
}
function showSubdirs() {
// show subdirectories
$list = array();
$d = dir(".");
while (false !== ($entry = $d->read())) {
if (is_dir($entry) && substr($entry,0,1) != '.') {
$list[] = $entry;
}
}
$d->close();
if (sizeof($list)> 0) {
echo "<h2>Subdirectories</h2>\n";
sort($list);
foreach ($list as $entry) {
echo '<img src="https://www.jmri.org/icons/folder.gif"> <a href="'.$entry.'">'.$entry.'</a></td><p>'."\n";
}
}
}
function showFilesAndIcons() {
$listIcon = array();
$listOther = array();
$listPy = array();
$d = dir(".");
while (false !== ($entry = $d->read())) {
if (endswith($entry, ".py")) {
$listPy[] = $entry;
}
elseif (endswith($entry, ".gif")
|| endswith($entry, ".jpg")
|| endswith($entry, ".png")
|| endswith($entry, ".EPS")
|| endswith($entry, ".PSD")
) {
$listIcon[] = $entry;
}
elseif (! (startswith($entry, ".") || is_dir($entry) || endswith($entry, ".php")) ) {
$listOther[] = $entry;
}
}
$d->close();
// now show the files
if (sizeof($listPy)> 0) {
echo "<h2>Sample Scripts</h2>\n";
echo '<table border="1">';
sort($listPy);
foreach ($listPy as $entry) {
echo '<tr>'."\n";
echo '<td><a href="'.$entry.'">'.$entry.' </a></td>'."\n";
echo '<td bgcolor="#C0C0C0"><a href="'.$entry.'" download="'.$entry.'">(download)</a></tr>'."\n";
echo '</tr>'."\n";
}
echo "</table>\n";
}
// Show any icons
if (sizeof($listIcon)> 0) {
echo "<h2>Icons</h2>\n";
echo '<table border="1">';
sort($listIcon);
foreach ($listIcon as $entry) {
echo '<tr>'."\n";
echo '<td><a href="'.$entry.'">'.$entry.' </a></td>'."\n";
if (endswith($entry, ".gif") || endswith($entry, ".jpg") || endswith($entry, ".png")) {
// display as image
// would be good to add a limiting size here
echo '<td bgcolor="#C0C0C0"><a href="'.$entry.'"><img src="'.$entry.'" style="max-width:500px;max-height:500px;"></a></tr>'."\n";
}
else {
// link without display
echo '<td bgcolor="#C0C0C0"><a href="'.$entry.'" download="'.$entry.'">(download)</a></tr>'."\n";
}
echo '</tr>'."\n";
}
echo "</table>\n";
}
// now show the rest of the files
if (sizeof($listOther)> 0) {
echo "<h2>Other Files</h2>\n";
echo '<table border="1">';
sort($listOther);
foreach ($listOther as $entry) {
echo '<tr>'."\n";
echo '<td><a href="'.$entry.'">'.$entry.' </a></td>'."\n";
echo '<td bgcolor="#C0C0C0"><a href="'.$entry.'" download="'.$entry.'">(download)</a></tr>'."\n";
echo '</tr>'."\n";
}
echo "</table>\n";
}
}
//MAINLINE
// show README if present
if (file_exists("README.md")) {
echo "<pre>\n";
echo file_get_contents( "README.md" );
echo "</pre>\n";
}
elseif (file_exists("README")) {
echo "<pre>\n";
echo file_get_contents( "README" );
echo "</pre>\n";
}
elseif (file_exists("README.txt")) {
echo "<pre>\n";
echo file_get_contents( "README.txt" );
echo "</pre>\n";
}
//Show subdirs first since some examples will be in subdirs
showSubdirs();
showFilesAndIcons();
?>
</body>
</html>