'en', //! Detected language, 2-letter ISO 639-1 code ("en")
'from_url' => false, //! true if language from URL overrides browser default
];
/**
* Pre-check before processing request.
*
* Determine language requested, and ensure that a topic was requested.
* If no topic was requested, redirect to the about page, and abort
* processing.
*/
public function init() {
$this->determine_help_language();
if (argc() === 1) {
goaway("/help/{$this->lang['language']}/about/about");
killme();
}
}
/**
* Process get request for the help module.
*
* Loads the correct help file from the `doc/` directory, and passes it to
* the help template in `view/tpl/help.tpl`.
*
* If the requested help topic does not exist for the currently selected
* language, a 404 status is returned instead.
*
* This function currently also handles search and serving static assets
* that may be used by the help files.
*
* @return string The rendered help page or a 404 page if help topic was
* not found.
*/
public function get() {
nav_set_selected('Help');
$o = '';
if(isset($_REQUEST['search']) && $_REQUEST['search']) {
$o .= '
';
$o .= '
';
$o .= '
' . t('Documentation Search') . ' - ' . htmlspecialchars($_REQUEST['search']) . '
';
$o .= '';
$o .= '
';
$r = search_doc_files($_REQUEST['search']);
if($r) {
$o .= '
';
foreach($r as $rr) {
$dirname = dirname($rr['v']);
$fname = basename($rr['v']);
$fname = substr($fname, 0, strrpos($fname, '.'));
$path = trim(substr($dirname, 4), '/');
$o .= '- ' . ucwords(str_replace('_',' ',notags($fname))) . '
'
. '' . 'help/' . (($path) ? $path . '/' : '') . $fname . '
'
. '...' . str_replace('$Projectname', \Zotlabs\Lib\System::get_platform_name(), $rr['text']) . '...
';
}
$o .= '
';
$o .= '
';
$o .= '
';
}
return $o;
}
if(argc() > 2 && argv(argc()-2) === 'assets') {
$path = '';
for($x = 1; $x < argc(); $x ++) {
if(strlen($path))
$path .= '/';
$path .= argv($x);
}
$realpath = 'doc/' . $path;
//Set the content-type header as appropriate
$imageInfo = getimagesize($realpath);
switch ($imageInfo[2]) {
case IMAGETYPE_JPEG:
header("Content-Type: image/jpeg");
break;
case IMAGETYPE_GIF:
header("Content-Type: image/gif");
break;
case IMAGETYPE_PNG:
header("Content-Type: image/png");
break;
case IMAGETYPE_WEBP:
header("Content-Type: image/webp");
break;
default:
break;
}
header("Content-Length: " . filesize($realpath));
// dump the picture and stop the script
readfile($realpath);
killme();
}
//
// The args to the module will be along this pattern:
//
// help/