135 lines
3.5 KiB
PHP
135 lines
3.5 KiB
PHP
<?php
|
|
|
|
|
|
function drawContents (&$list) {
|
|
$kl = array_keys($list);
|
|
foreach ($kl as $k) {
|
|
echo "<li><a href='#ac-{$list[$k]['name']}'>{$list[$k]['title']}</a>";
|
|
if (count($list[$k]['subsections'])) {
|
|
echo "<ul>";
|
|
drawContents($list[$k]['subsections']);
|
|
echo "</ul>";
|
|
}
|
|
echo "</li>";
|
|
}
|
|
}
|
|
|
|
|
|
function displayLinks($text) {
|
|
$l = explode('<mlink ', $text);
|
|
$nText = array_shift($l);
|
|
while (count($l)) {
|
|
$t = preg_replace('/^\s*to=[\'"]/', '', array_shift($l));
|
|
$toName = preg_replace('/^([A-Za-z0-9_\-]+)[\'"]>(.*\n)*.*/', '\1', $t);
|
|
$toName = preg_replace('/\s/', '', $toName);
|
|
$t = preg_replace('/^[A-Za-z0-9_\-]+[\'"]>/', '', $t);
|
|
|
|
$secId = handler::$h->lib->call('getSectionId', handler::$h->lang, $toName);
|
|
$link = "";
|
|
if (!is_null($secId)) {
|
|
$pageId = handler::$h->lib->call('getPageId', $secId);
|
|
if (!is_null($pageId)) {
|
|
$lt = handler::$h->lib->call('readSectionRecord', $secId);
|
|
if ($pageId == handler::$h->page['id']) {
|
|
$link = "<a href='#ac-{$lt['name']}'>";
|
|
} else {
|
|
$pg = handler::$h->lib->call('readSectionRecord', $pageId);
|
|
$link = "<a href='?c=0&p={$pg['name']}#ac-{$lt['name']}'>";
|
|
}
|
|
}
|
|
}
|
|
|
|
$nText .= $link . preg_replace('/^(.*)<\/mlink>(.*\n)*.*/', '\1', $t) . ($link != '' ? "</a>" : "")
|
|
. preg_replace('/^.*<\/mlink>/', '', $t);
|
|
}
|
|
|
|
return $nText;
|
|
}
|
|
|
|
|
|
function drawTitle(&$section, $depth) {
|
|
$pgLink = "";
|
|
if ($section['linkto'] != "") {
|
|
$pageId = handler::$h->lib->call('getPageId', $section['linkto']);
|
|
if (!is_null($pageId)) {
|
|
$lt = handler::$h->lib->call('readSectionRecord', $section['linkto']);
|
|
if ($pageId == handler::$h->page['id']) {
|
|
$pgLink = "<a class='mlink' href='#ac-{$lt['name']}'>";
|
|
} else {
|
|
$pg = handler::$h->lib->call('readSectionRecord', $pageId);
|
|
$pgLink = "<a class='mlink' href='?c=0&p={$pg['name']}#ac-{$lt['name']}'>";
|
|
}
|
|
}
|
|
}
|
|
|
|
$mDepth = ($depth - 2) * 10;
|
|
$tMargin = ($pgLink == "") ? "5px $mDepth 15px 0px" : "5px $mDepth 5px 0px";
|
|
|
|
?>
|
|
<? if ($depth == 2) : ?>
|
|
<a class="toplnk" href='#ac-<?= handler::$h->page['name'] ?>'>Top</a>
|
|
<? endif; ?>
|
|
<h<?= $depth ?> id='ac-<?= $section['name'] ?>'><?= $section['title'] ?></h<?= $depth ?>>
|
|
<? if ($pgLink != "") : ?>
|
|
<?= $pgLink ?>-> Main article</a>
|
|
<? endif;
|
|
|
|
}
|
|
|
|
function drawSections (&$list, $depth = 2) {
|
|
$kl = array_keys($list);
|
|
foreach ($kl as $k) {
|
|
/*
|
|
if ($depth == 2) {
|
|
echo "<hr style='margin: 30px 0px 0px 0px'/>";
|
|
}
|
|
*/
|
|
?>
|
|
<? if ($depth == 2) : ?>
|
|
<div class="mtopsec">
|
|
<? else : ?>
|
|
<div class="msec">
|
|
<? endif; ?>
|
|
<? drawTitle($list[$k], $depth);
|
|
if (trim($list[$k]['contents']) != '') {
|
|
echo "<div class='mancontents'>" . displayLinks($list[$k]['contents']) . "</div>";
|
|
}
|
|
if (count($list[$k]['subsections'])) {
|
|
drawSections($list[$k]['subsections'], $depth + 1);
|
|
}
|
|
?>
|
|
</div>
|
|
<?
|
|
}
|
|
}
|
|
|
|
|
|
include("manual-box.en.inc");
|
|
$this->title = "Manual";
|
|
$this->addStylesheet("manual");
|
|
$this->addScript("manual");
|
|
if (is_null(handler::$h->page)) {
|
|
include('manual_notfound.en.inc');
|
|
} else {
|
|
?>
|
|
<div id="manpage">
|
|
<h1 id="ac-<?=handler::$h->page['name']?>"><?=handler::$h->page['title']?></h1>
|
|
<? if (count(handler::$h->page['subsections'])) : ?>
|
|
<div id='clist'>
|
|
<div id='chead'>
|
|
<b>Page contents</b>
|
|
[ <span id='hidecontents'>Hide</span><span id='showcontents'>Show</span> ]
|
|
</div>
|
|
<div id='pcontents'>
|
|
<ul>
|
|
<? drawContents(handler::$h->page['subsections']); ?>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<? drawSections(handler::$h->page['subsections']); ?>
|
|
<? endif; ?>
|
|
</div>
|
|
<?
|
|
}
|
|
$this->endContents();
|
|
?>
|