I use the dokuwiki and the users need to login for viewing several pages. When he is not logged in, he gets the following error message page:
As you can see I already tried to add a link to the Login page. I would like to keep the initial page requested in the link, but add the do=login
to redirect to the login page.
[[#?do=login|Perhaps you forgot to login?]]
How can I create a link to the same page but showing the login page instead of the access denied?
The page is the inc/lang/en/denied.txt
Have you tried with this plugin "showlogin" to display the login form appended within this page. https://www.dokuwiki.org/plugin:showlogin
Basically this is the code which stop showing the default denied page which contains text message and instead login form.
class action_plugin_showlogin extends DokuWiki_Action_Plugin {
/**
* Register its handlers with the dokuwiki's event controller
*/
public function register(Doku_Event_Handler &$controller) {
# TPL_CONTENT_DISPLAY is called before and after content of wikipage is written to output buffer
$controller->register_hook('TPL_CONTENT_DISPLAY', 'BEFORE', $this, 'handle_tpl_content_display');
}
/**
* Handle the event
*/
public function handle_tpl_content_display(Doku_Event &$event, $param) {
global $ACT;
# If user is not logged in and access to page is denied, show login form
if (($ACT == 'denied') && (! $_SERVER['REMOTE_USER'])) {
$event->preventDefault(); // prevent "Access denied" page from showing
html_login(); // show login dialog instead
}
# .. or show regular access denied page
}
}