sidebar table of contents for help hierarchies; note that these should probably be html due to extraneous linefeeds you might find in bbcode or markdown

This commit is contained in:
redmatrix 2016-09-04 18:35:06 -07:00
parent a3171cd429
commit ecb44ad572
4 changed files with 60 additions and 31 deletions

View File

@ -55,7 +55,7 @@ class Help extends \Zotlabs\Web\Controller {
return replace_macros(get_markup_template("help.tpl"), array(
'$title' => t('$Projectname Documentation'),
'$content' => translate_projectname($content)
'$content' => $content
));
}

View File

@ -1,4 +1,4 @@
[h3]Diaspora Compatibility[h3]
[h3]Diaspora Compatibility[/h3]
The Diaspora Protocol addon allows a site to communicate using the Diaspora protocol, which allows communications and connections to be made with Diaspora members (and also Friendica members, since that network also provides the Diaspora Protocol).

View File

@ -1,6 +1,6 @@
<?php
function get_help_content() {
function get_help_content($tocpath = false) {
global $lang;
@ -8,48 +8,54 @@ function get_help_content() {
$text = '';
if(argc() > 1) {
$path = (($tocpath !== false) ? $tocpath : '');
if($tocpath === false && argc() > 1) {
$path = '';
for($x = 1; $x < argc(); $x ++) {
if(strlen($path))
$path .= '/';
$path .= argv($x);
}
}
if($path) {
$title = basename($path);
if(! $tocpath)
\App::$page['title'] = t('Help:') . ' ' . ucwords(str_replace('-',' ',notags($title)));
$text = load_doc_file('doc/' . $path . '.md');
\App::$page['title'] = t('Help:') . ' ' . ucwords(str_replace('-',' ',notags($title)));
if(! $text) {
$text = load_doc_file('doc/' . $path . '.bb');
if($text)
$doctype = 'bbcode';
\App::$page['title'] = t('Help:') . ' ' . ucwords(str_replace('_',' ',notags($title)));
}
if(! $text) {
$text = load_doc_file('doc/' . $path . '.html');
if($text)
$doctype = 'html';
\App::$page['title'] = t('Help:') . ' ' . ucwords(str_replace('-',' ',notags($title)));
}
}
if(! $text) {
$text = load_doc_file('doc/Site.md');
\App::$page['title'] = t('Help');
}
if(! $text) {
$doctype = 'bbcode';
$text = load_doc_file('doc/main.bb');
\App::$page['title'] = t('Help');
}
if($tocpath === false) {
if(! $text) {
$text = load_doc_file('doc/Site.md');
\App::$page['title'] = t('Help');
}
if(! $text) {
$doctype = 'bbcode';
$text = load_doc_file('doc/main.bb');
\App::$page['title'] = t('Help');
}
if(! strlen($text)) {
header($_SERVER["SERVER_PROTOCOL"] . ' 404 ' . t('Not Found'));
$tpl = get_markup_template("404.tpl");
return replace_macros($tpl, array(
'$message' => t('Page not found.' )
));
if(! $text) {
header($_SERVER["SERVER_PROTOCOL"] . ' 404 ' . t('Not Found'));
$tpl = get_markup_template("404.tpl");
return replace_macros($tpl, array(
'$message' => t('Page not found.' )
));
}
}
if($doctype === 'html')
@ -69,7 +75,7 @@ function get_help_content() {
}
$content = preg_replace_callback("/#include (.*?)\;/ism", 'preg_callback_help_include', $content);
return $content;
return translate_projectname($content);
}
@ -110,8 +116,9 @@ function load_doc_file($s) {
}
function find_doc_file($s) {
if(file_exists($s))
if(file_exists($s)) {
return file_get_contents($s);
}
return '';
}

View File

@ -1493,15 +1493,37 @@ function widget_tasklist($arr) {
function widget_helpindex($arr) {
$o .= '<div class="widget">';
$o .= '<h3>' . t('Documentation') . '</h3>';
$level_0 = get_help_content('toc');
$level_0 = preg_replace('/\<ul(.*?)\>/','<ul class="nav nav-pills nav-stacked">',$level_0);
$levels = array();
$o .= '<div class="widget">' . '<h3>' . t('Documentation') . '</h3>';
$o .= '<ul class="nav nav-pills nav-stacked">';
$o .= '<li><a href="help/general">' . t('Project/Site Information') . '</a></li>';
$o .= '<li><a href="help/members">' . t('For Members') . '</a></li>';
$o .= '<li><a href="help/admins">' . t('For Administrators') . '</a></li>';
$o .= '<li><a href="help/develop">' . t('For Developers') . '</a></li>';
$o .= '</ul></div>';
if(argc() > 2) {
$path = '';
for($x = 1; $x < argc(); $x ++) {
$path .= argv($x) . '/';
$y = get_help_content($path . 'toc');
if($y)
$levels[] = preg_replace('/\<ul(.*?)\>/','<ul class="nav nav-pills nav-stacked">',$y);
}
}
if($level_0)
$o .= $level_0;
if($levels) {
foreach($levels as $l) {
$o .= '<br /><br />';
$o .= $l;
}
}
$o .= '</div>';
return $o;
}