'; $o .= '
'; $o .= '

' . t('Documentation Search') . ' - ' . htmlspecialchars($_REQUEST['search']) . '

'; $o .= '
'; $o .= '
'; $r = search_doc_files($_REQUEST['search']); if($r) { $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; default: break; } header("Content-Length: " . filesize($realpath)); // dump the picture and stop the script readfile($realpath); killme(); } if (argc() === 1) { $files = self::listdir('doc'); if ($files) { foreach ($files as $file) { if ((! strpos($file,'/site/')) && file_exists(str_replace('doc/','doc/site/',$file))) { continue; } if (strpos($file,'README')) { continue; } if (preg_match('/\/(..|..\-..)\//',$file,$matches)) { $language = $matches[1]; } else { $language = t('Unknown language'); } if ($language === substr(App::$language,0,2)) { $language = ''; } $link = str_replace( [ 'doc/', '.mc' ], [ 'help/', '' ], $file); if (strpos($link,'/global/') !== false || strpos($link,'/media/') !== false) { continue; } $content .= '' . (($language) ? " [$language]" : '') . EOL; } } } else { $content = get_help_content(); } return replace_macros(get_markup_template('help.tpl'), array( '$title' => t('$Projectname Documentation'), '$tocHeading' => t('Contents'), '$content' => $content, '$heading' => $heading, '$language' => $language )); } static function listdir($path) { $results = []; $handle = opendir($path); if (! $handle) { return $results; } while (false !== ($file = readdir($handle))) { if ($file === '.' || $file === '..') { continue; } if (is_dir($path . '/' . $file)) { $results = array_merge($results, self::listdir($path . '/' . $file)); } else { $results[] = $path . '/' . $file; } } closedir($handle); return $results; } }