getConfig(); $lang = $config->get('system', 'language'); // @TODO: Replace with parameter from router if ($a->argc > 1) { $path = ''; // looping through the argv keys bigger than 0 to build // a path relative to /help for ($x = 1; $x < $a->argc; $x ++) { if (strlen($path)) { $path .= '/'; } $path .= $a->getArgumentValue($x); } $title = basename($path); $filename = $path; $text = self::loadDocFile('doc/' . $path . '.md', $lang); $a->page['title'] = L10n::t('Help:') . ' ' . str_replace('-', ' ', Strings::escapeTags($title)); } $home = self::loadDocFile('doc/Home.md', $lang); if (!$text) { $text = $home; $filename = "Home"; $a->page['title'] = L10n::t('Help'); } else { $a->page['aside'] = Markdown::convert($home, false); } if (!strlen($text)) { throw new HTTPException\NotFoundException(); } $html = Markdown::convert($text, false); if ($filename !== "Home") { // create TOC but not for home $lines = explode("\n", $html); $toc = "

TOC

"; } for ($k = $level + 1; $k < count($idNum); $k++) { $idNum[$k] = 0; } } if ($level > $lastLevel) { $toc .= "
  • "; } $html = implode("\n", $lines); $a->page['aside'] = '
    ' . $toc . '
    ' . $a->page['aside'] . '
    '; } return $html; } private static function loadDocFile($fileName, $lang = 'en') { $baseName = basename($fileName); $dirName = dirname($fileName); if (file_exists("$dirName/$lang/$baseName")) { return file_get_contents("$dirName/$lang/$baseName"); } if (file_exists($fileName)) { return file_get_contents($fileName); } return ''; } }