"; ?>

Distributed Computing Laboratory

Emory University


"; do { $currentDirDatFile = "$dcl_root/$pathDir/service/path.dat"; $currentDirPathLabel = null; $nextDir = next($dirs); if (file_exists($currentDirDatFile)) { $currentDirPathLabel = file($currentDirDatFile); echo "" . $currentDirPathLabel[0] . ""; if ($nextDir) { echo " » "; } } $pathDir = $pathDir . '/' . $nextDir; } while ($nextDir); echo "
"; echo "
"; } function print_project_header() { global $content_dir; $titleFileName = "$content_dir/service/title.dat"; $title = file_exists($titleFileName) ? file($titleFileName) : "No title"; ?>
\n"; echo "\n"; } function loadPageContent($contentFile) { global $dcl_root; echo "
"; //readfile("$dcl_root/$contentFile"); include "$dcl_root/$contentFile"; echo "
"; } function loadNewsContent($contentFile) { global $dcl_root; echo "
"; echo "

News

"; $lines = file("$dcl_root/".trim($contentFile)); // skip first line - ther is information about number news to show while (next($lines)) { $newLine = current($lines); list ($date, $msg) = sscanf($newLine, "%[^#]#%[^#]"); echo "
$date
$msg
\n"; } echo "
"; } class datFile { const comment = ";"; const refMenu = "ref"; const menuPart = "service/menu_part.dat"; const news = "news"; public static function readFile($fileName) { $lines = file(trim($fileName)); // remove all comment lines foreach ($lines as $index => & $var) { if (self :: isComment($var)) { unset ($lines[$index]); } } return $lines; } static function isComment(& $line) { return $line[0] == comment ? TRUE : FALSE; } } function menu_part() { // read menu_part.dat file global $content_dir; global $content_rel_dir; $menu_part = datFile :: readFile($content_dir . '/' . datFile :: menuPart); echo "
"; foreach ($menu_part as & $val) { list ($type, $header, $fileName) = sscanf($val, "%[^#]#%[^#]#%[^#]"); switch ($type) { case datFile :: refMenu : print_refMenu($header, $fileName); break; case datFile :: news : print_news($header, $fileName); default : break; } } echo "
"; } function print_refMenu(& $title, & $fileName) { global $content_dir; global $contentFile; global $content_rel_dir; $refs = datFile :: readFile($content_dir . '/service/' . $fileName); echo "

$title

"; echo "\n"; echo "
"; echo "
\n"; } function print_news(& $header, & $fileName) { global $content_dir; global $content_rel_dir; global $dcl_root; $news = file($content_dir . '/' . trim($fileName)); echo "

$header

"; echo "
\n"; // why i can't use $i--??????????????? for ($i = current($news); $i > 0; $i -= 1) { $newLine = next($news); if (!$newLine) { break; } list ($date, $msg) = sscanf($newLine, "%[^#]#%[^#]"); echo "
$date
$msg
\n"; } // in the list are more news if (next($news)) { //echo $dcl_root; echo "
All news:
click
\n"; } echo "
\n"; echo "
"; echo "
\n"; } function generateBib($msg, $bib_file) { global $dcl_root; echo "

$msg

"; echo "[bibtex]"; $bibPath = "/srv/www/bin/bib2xhtml"; $bib_html = shell_exec("export BSTINPUTS=$bibPath; $bibPath/bib2xhtml -s unsortlist $dcl_root/$bib_file"); $bib_begin = strpos($bib_html, "

Download the source distribution

Developer distributions for all versions are available in the Download section.

Download recent daily builds // //

//Automatic daily builds are also available for download. //

--> } ?>