"; ?>
";
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 "";
echo "\n";
foreach ($refs as & $val) {
list ($label, $href) = sscanf($val, "%[^#]#%[^#]");
$classSelected = strpos($contentFile, trim($href)) === FALSE ? "" : "class=\"selected\" ";
$ref = strpos($href, "ref:") === 0 ? "\"href=\"".substr($href, 4).'"' : "href=\"loadPage.php?content=$content_rel_dir/$href\"";
echo "- $label
";
}
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 "";
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.
//
-->
}
?>