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
>> ;
>> }