Hi Bernhard, Thanks for trying this out on such short notice! 19. September 2021 21:30, "Bernhard Bitsch" <bbitsch(a)ipfire.org> schrieb: > The enhancements function without problems for your examples. > Two additional thoughts: > - the manual_pages hash could be read global at the start of general-functions Would this improve the page load time? The hash is only accessed once in the openpage() function. > - is it possible to check the existence of the page? Doing the test manually, I've copied the last > line of manualpages with an error. So I landed on the oops page. Good idea! But I think this should only be checked once by the build script e.g. "make manualpages", to avoid excess http requests to the Wiki. > > Tested-by: Bernhard Bitsch <bbitsch(a)ipfire.org> > > Am 19.09.2021 um 16:34 schrieb Leo-Andres Hofmann: > >> This patch adds a little "help" icon to the page header. >> If a manual entry exists for a configuration page, the icon >> appears and offers a quick way to access the wiki. >> Wiki pages can be configured in the "manualpages" file. >> Signed-off-by: Leo-Andres Hofmann <hofmann(a)leo-andres.de> >> --- >> Hi all, >> This patch is not yet complete, but I would like to present the idea. >> What do you think, would this get more people to read the wiki? >> To test this, move the new file "manualpages" to /var/ipfire/main/ and CTRL+F5 reload the webif to >> refresh the CSS cache. >> Still -to do- and where I could use some help: >> Add "manualpages" file to the updater/installer - how, and should this file be read-only? >> Collect and match all wiki pages to the CGIs. >> Kind regards >> Leo >> config/cfgroot/general-functions.pl | 18 +++++++++++++++++- >> config/cfgroot/manualpages | 3 +++ >> html/html/themes/ipfire/include/css/style.css | 13 +++++++++++++ >> html/html/themes/ipfire/include/functions.pl | 17 ++++++++++++++++- >> 4 files changed, 49 insertions(+), 2 deletions(-) >> create mode 100644 config/cfgroot/manualpages >> diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl >> index de608e38b..54e23a535 100644 >> --- a/config/cfgroot/general-functions.pl >> +++ b/config/cfgroot/general-functions.pl >> @@ -24,7 +24,9 @@ $|=1; # line buffering >> $General::version = 'VERSION'; >> $General::swroot = 'CONFIG_ROOT'; >> $General::noipprefix = 'noipg-'; >> -$General::adminmanualurl = 'http://wiki.ipfire.org'; >> + >> +# Base URL of the user manual >> +my $usermanual_base_url = 'https://wiki.ipfire.org'; >>> require "${General::swroot}/network-functions.pl"; >>> @@ -1421,4 +1423,18 @@ sub running_on_gcp() { >> return 0; >> } >>> +# Get user manual url for the specified configuration page, returns "" if no entry is configured >> +sub get_usermanual_url() { >> + my ($config_page) = @_; >> + >> + my %manual_pages = (); >> + &readhash("${General::swroot}/main/manualpages", \%manual_pages); >> + >> + if($config_page && defined($manual_pages{$config_page})) { >> + return $usermanual_base_url . '/' . $manual_pages{$config_page}; >> + } >> + >> + return ""; >> +} >> + >> 1; >> diff --git a/config/cfgroot/manualpages b/config/cfgroot/manualpages >> new file mode 100644 >> index 000000000..02dac5be6 >> --- /dev/null >> +++ b/config/cfgroot/manualpages >> @@ -0,0 +1,3 @@ >> +index=configuration/system/startpage >> +pppsetup=configuration/system/dial >> +qos=configuration/services/qos >> diff --git a/html/html/themes/ipfire/include/css/style.css >> b/html/html/themes/ipfire/include/css/style.css >> index b92f476c4..661773675 100644 >> --- a/html/html/themes/ipfire/include/css/style.css >> +++ b/html/html/themes/ipfire/include/css/style.css >> @@ -169,6 +169,19 @@ iframe { >> margin-bottom: 1em; >> } >>> +#main_header > * { >> + display: inline-block; >> + vertical-align: baseline; >> +} >> + >> +#main_header > span { >> + margin-left: 0.8em; >> +} >> + >> +#main_header img { >> + padding: 0; >> +} >> + >> #footer { >> height: 2.5em; >> margin-bottom: 1em; >> diff --git a/html/html/themes/ipfire/include/functions.pl >> b/html/html/themes/ipfire/include/functions.pl >> index 9f12bbe59..d352a7d96 100644 >> --- a/html/html/themes/ipfire/include/functions.pl >> +++ b/html/html/themes/ipfire/include/functions.pl >> @@ -170,7 +170,22 @@ END >> print <<END >> <div class="bigbox fixed"> >> <div id="main_inner" class="fixed"> >> - <h1>$title</h1> >> + <div id="main_header"> >> + <h1>$title</h1> >> +END >> +; >> + >> +# Print user manual link >> +my $manual_url = &General::get_usermanual_url($scriptName); >> +if($manual_url ne "") { >> + print <<END >> + <span><a href="$manual_url" title="$Lang::tr{'online help en'}" target="_blank"><img >> src="/images/help-browser.png" alt="$Lang::tr{'online help en'}"></a></span> >> +END >> +; >> +} >> + >> +print <<END >> + </div> >> END >> ; >> }