moved tab logic to a new class

More of the logic should be moved to this class
This commit is contained in:
Andreas Gohr 2017-02-15 17:05:00 +01:00
commit 2387fd467e
2 changed files with 84 additions and 25 deletions

83
Template.php Normal file
View file

@ -0,0 +1,83 @@
<?php
namespace dokuwiki\template\sprintdoc;
/**
* Class Template
*
* provides additional logic for the sprintdoc template
*
* @package dokuwiki\template\sprintdoc
*/
class Template {
/**
* @var array loaded plugins
*/
protected $plugins = array(
'sqlite' => null,
'tagging' => null,
);
/**
* Get the singleton instance
*
* @return Template
*/
public static function getInstance() {
static $instance = null;
if($instance === null) $instance = new Template();
return $instance;
}
/**
* Template constructor.
*/
protected function __construct() {
$this->initializePlugins();
}
/**
* Load all the plugins we support directly
*/
protected function initializePlugins() {
$this->plugins['sqlite'] = plugin_load('helper', 'sqlite');
if($this->plugins['sqlite']) {
$this->plugins['tagging'] = plugin_load('helper', 'tagging');
}
}
/**
* Get all the tabs to display
*
* @return array
*/
public function getMetaBoxTabs() {
global $lang;
$tabs = array();
$toc = tpl_toc(true);
if($toc) {
$tabs[] = array(
'id' => 'spr__tab-toc',
'label' => $lang['toc'],
'tab' => $toc,
'count' => null,
);
}
if($this->plugins['tagging']) {
$tabs[] = array(
'id' => 'spr__tab-tags',
'label' => tpl_getLang('tab_tags'),
'tab' => $this->plugins['tagging']->tpl_tags(false),
'count' => null, // FIXME
);
}
// fixme add magicmatcher info
return $tabs;
}
}

View file

@ -1,31 +1,7 @@
<?php <?php
if(!defined('DOKU_INC')) die(); if(!defined('DOKU_INC')) die();
global $lang;
$tabs = array(); $tabs = \dokuwiki\template\sprintdoc\Template::getInstance()->getMetaBoxTabs();
$toc = tpl_toc(true);
if($toc) {
$tabs[] = array(
'id' => 'spr__tab-toc',
'label' => $lang['toc'],
'tab' => $toc,
'count' => null,
);
}
/** @var helper_plugin_tagging $tags */
$tags = plugin_load('helper', 'tagging');
if($tags) {
$tabs[] = array(
'id' => 'spr__tab-tags',
'label' => tpl_getLang('tab_tags'),
'tab' => $tags->tpl_tags(false),
'count' => null, // FIXME
);
}
// fixme add magicmatcher info
?> ?>
<div class="tab-container"> <div class="tab-container">