diff --git a/Template.php b/Template.php index f1f71f4..e221821 100644 --- a/Template.php +++ b/Template.php @@ -17,6 +17,7 @@ class Template { protected $plugins = array( 'sqlite' => null, 'tagging' => null, + 'magicmatcher' => null, ); /** @@ -35,6 +36,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; } /** @@ -44,7 +75,9 @@ class Template { $this->plugins['sqlite'] = plugin_load('helper', 'sqlite'); if($this->plugins['sqlite']) { $this->plugins['tagging'] = plugin_load('helper', 'tagging'); + $this->plugins['magicmatcher'] = plugin_load('syntax', 'magicmatcher_issuelist'); } + $this->plugins['tplinc'] = plugin_load('helper', 'tplinc'); } /** @@ -75,7 +108,14 @@ class Template { ); } - // fixme add magicmatcher info + if ($this->plugins['magicmatcher']) { + $tabs[] = array( + 'id' => 'spr__tab-issues', + 'label' => tpl_getLang('tab_issues'), + 'tab' => $this->plugins['magicmatcher']->getIssueListHTML(), + 'count' => $this->plugins['magicmatcher']->getCountIssues(), + ); + } return $tabs; } diff --git a/css/plugins/magic-matcher.less b/css/plugins/magic-matcher.less index 0233a26..936f65e 100755 --- a/css/plugins/magic-matcher.less +++ b/css/plugins/magic-matcher.less @@ -76,6 +76,16 @@ } } + +/* + + + + + in meta box + + + + + */ +#spr__tab-issues { + ul.mmissuelist { + padding-left: 0; + margin-top: 1rem; + } +} + + /* + + + + + in content + + + + + */ a.jiralink { font-size: @font-size-default; diff --git a/css/plugins/struct.less b/css/plugins/struct.less index 31dc00e..9ae22ae 100755 --- a/css/plugins/struct.less +++ b/css/plugins/struct.less @@ -54,3 +54,7 @@ margin-top: -.5rem; } } + +.dokuwiki .struct_inlineditor { + z-index: 3; +} diff --git a/lang/en/lang.php b/lang/en/lang.php index 0df814f..f193fe2 100755 --- a/lang/en/lang.php +++ b/lang/en/lang.php @@ -31,6 +31,7 @@ $lang['meta_box_tags_none'] = 'tags found: none'; $lang['js']['meta_box_toc_none'] = 'no Table of Contents available'; $lang['tab_tags'] = 'Tags'; +$lang['tab_issues'] = 'Issues'; $lang['quality_trigger'] = 'toggle page analysis'; diff --git a/main.php b/main.php index a48aacc..d4d546b 100755 --- a/main.php +++ b/main.php @@ -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'); - ?>
@@ -301,19 +300,13 @@ $classWideContent = ($ACT === "show") ? "": "wide-content "; tpl_content(false); /* the main content */ ?> - - - + getInclude( + 'footer', + ' ' + ); + ?>