support the tplinc plugin

This is a first commit to generally support the plugin and make the page
footer use it. More includes should be added at other places.
This commit is contained in:
Andreas Gohr 2017-03-28 16:55:26 +02:00
commit cad2e67442
2 changed files with 40 additions and 16 deletions

View file

@ -35,6 +35,36 @@ class Template {
*/
protected function __construct() {
$this->initializePlugins();
/** @var \Doku_Event_Handler */
global $EVENT_HANDLER;
$EVENT_HANDLER->register_hook('PLUGIN_TPLINC_LOCATIONS_SET', 'BEFORE', $this, 'registerIncludes');
}
/**
* Makes include position info available to the tplinc plugin
*
* @param \Doku_Event $event
*/
public function registerIncludes(\Doku_Event $event) {
$event->data['footer'] = 'Footer below the page content';
}
/**
* Get the content to include from the tplinc plugin
*
* prefix and postfix are only added when there actually is any content
*
* @param string $location
* @param string $pre prepend this before the content
* @param string $post append this to the content
* @return string
*/
public function getInclude($location, $pre = '', $post = '') {
if(!$this->plugins['tplinc']) return '';
$content = $this->plugins['tplinc']->renderIncludes($location);
if($content === '') return '';
return $pre . $content . $post;
}
/**
@ -45,6 +75,7 @@ class Template {
if($this->plugins['sqlite']) {
$this->plugins['tagging'] = plugin_load('helper', 'tagging');
}
$this->plugins['tplinc'] = plugin_load('helper', 'tplinc');
}
/**

View file

@ -9,14 +9,13 @@
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*/
use dokuwiki\template\sprintdoc\Template;
if (!defined('DOKU_INC')) die(); /* must be run from within DokuWiki */
header('X-UA-Compatible: IE=edge,chrome=1');
$showTools = !tpl_getConf('hideTools') || ( tpl_getConf('hideTools') && !empty($_SERVER['REMOTE_USER']) );
$showSidebar = true; /* */
$hasFooter = page_findnearest('pagefooter');
$showFooter = $hasFooter && ($ACT === 'show');
?>
<html class="edge no-js" lang="<?php echo $conf['lang'] ?>" dir="<?php echo $lang['direction'] ?>">
<head>
@ -277,19 +276,13 @@ $classWideContent = ($ACT === "show") ? "": "wide-content ";
tpl_content(false); /* the main content */
?>
<div class="clearer"></div>
<?php if($showFooter):
/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */
/* Page Include Hook: pagefooter.txt */
/* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */
?>
<div class="wikipagefooter">
<hr>
<?php tpl_include_page('pagefooter', true, true) ?>
<div class="clearer"></div>
</div>
<?php endif; ?>
<?php
if($ACT == 'show') echo Template::getInstance()->getInclude(
'footer',
'<div class="wikipagefooter"><hr>',
'<div class="clearer"></div></div>'
);
?>
</div><!-- .main-content -->