Format the code

This commit is contained in:
Tim Schumacher 2014-01-24 18:34:46 +01:00
parent ac753695e9
commit fb1ed3d78e

View file

@ -7,26 +7,28 @@
*/ */
// must be run within DokuWiki // must be run within DokuWiki
if (!defined ('DOKU_INC')) die(); if (!defined('DOKU_INC')) die();
if (!defined ('DOKU_PLUGIN')) define('DOKU_PLUGIN', DOKU_INC . 'lib/plugins/'); if (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN', DOKU_INC . 'lib/plugins/');
require_once DOKU_PLUGIN . 'syntax.php'; require_once DOKU_PLUGIN . 'syntax.php';
// TODO migrate this to composer // TODO migrate this to composer
require_once dirname (__FILE__) . DIRECTORY_SEPARATOR . 'objectrepresentation' . DIRECTORY_SEPARATOR . 'DokuWikiObjectRepresentation.class.php'; require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'objectrepresentation' . DIRECTORY_SEPARATOR . 'DokuWikiObjectRepresentation.class.php';
/** /**
* All DokuWiki plugins to extend the parser/rendering mechanism * All DokuWiki plugins to extend the parser/rendering mechanism
* need to inherit from this class * need to inherit from this class
*/ */
class syntax_plugin_navigation extends DokuWiki_Syntax_Plugin { class syntax_plugin_navigation extends DokuWiki_Syntax_Plugin
{
// TODO add a config option for this // TODO add a config option for this
private $maxDepth = 3; private $maxDepth = 3;
private $depth = 0; private $depth = 0;
function getInfo () { function getInfo()
return array ('author' => 'Tim Schumacher', {
return array('author' => 'Tim Schumacher',
'email' => 'tim@bandenkrieg.hacked.jp', 'email' => 'tim@bandenkrieg.hacked.jp',
'date' => '2013-11-12', 'date' => '2013-11-12',
'name' => 'Navigation', 'name' => 'Navigation',
@ -34,46 +36,51 @@ class syntax_plugin_navigation extends DokuWiki_Syntax_Plugin {
'url' => 'https://bk-dev.hacked.jp/project/view/3/'); 'url' => 'https://bk-dev.hacked.jp/project/view/3/');
} }
function getType () { function getType()
{
return 'substition'; return 'substition';
} }
function getSort () { function getSort()
{
return 32; return 32;
} }
function connectTo ($mode) { function connectTo($mode)
$this->Lexer->addSpecialPattern('{{indexmenu_n>.+?}}',$mode,'plugin_navigation'); {
$this->Lexer->addSpecialPattern ('\[Navigation\]', $mode, 'plugin_navigation'); $this->Lexer->addSpecialPattern('{{indexmenu_n>.+?}}', $mode, 'plugin_navigation');
$this->Lexer->addSpecialPattern('\[Navigation\]', $mode, 'plugin_navigation');
} }
function handle ($match, $state, $pos, &$handler) { function handle($match, $state, $pos, &$handler)
return array ($match, $state, $pos); {
return array($match, $state, $pos);
} }
function render ($mode, &$renderer, $data) { function render($mode, &$renderer, $data)
if (preg_match('/{{indexmenu_n>(\d+)}}/',$data[0],$matches)) { {
if (preg_match('/{{indexmenu_n>(\d+)}}/', $data[0], $matches)) {
global $ACT, $INFO; global $ACT, $INFO;
if($INFO['isadmin'] && $ACT == 'show') { if ($INFO['isadmin'] && $ACT == 'show') {
ptln('<div class="info">'); ptln('<div class="info">');
ptln('Sortorder for this node: '.$matches[1]); ptln('Sortorder for this node: ' . $matches[1]);
ptln('</div>'); ptln('</div>');
} }
return false; return false;
} }
$iter = new DokuWikiIterator(); $iter = new DokuWikiIterator();
$iter->all(function(DokuWikiNode $node) { $iter->all(function (DokuWikiNode $node) {
if (preg_match('/{{indexmenu_n>(\d+)}}/',$node->getContent(),$matches)) { if (preg_match('/{{indexmenu_n>(\d+)}}/', $node->getContent(), $matches)) {
$node->setMetaData('sortorder',$matches[1]); $node->setMetaData('sortorder', $matches[1]);
} else { } else {
$node->setMetaData('sortorder',9999999); $node->setMetaData('sortorder', 9999999);
} }
}); });
$iter->all(function(DokuWikiNode $node){ $iter->all(function (DokuWikiNode $node) {
if ($node instanceof DokuWikiNameSpace) { if ($node instanceof DokuWikiNameSpace) {
$node->nodes->uasort(function(DokuWikiNode $a,DokuWikiNode $b){ $node->nodes->uasort(function (DokuWikiNode $a, DokuWikiNode $b) {
if ($a->getMetaData('sortorder') == $b->getMetaData('sortorder')) { if ($a->getMetaData('sortorder') == $b->getMetaData('sortorder')) {
return 0; return 0;
} }
@ -101,7 +108,8 @@ class syntax_plugin_navigation extends DokuWiki_Syntax_Plugin {
return false; return false;
} }
private function RenderNodes(DokuWikiNameSpace $node) { private function RenderNodes(DokuWikiNameSpace $node)
{
$this->depth++; $this->depth++;
$output = ''; $output = '';
foreach ($node->getNodes() as $node) { foreach ($node->getNodes() as $node) {
@ -115,7 +123,7 @@ class syntax_plugin_navigation extends DokuWiki_Syntax_Plugin {
$output .= '<li><a href="' . wl($node->getFullID()) . '">' . $title . '</a></li>' . PHP_EOL; $output .= '<li><a href="' . wl($node->getFullID()) . '">' . $title . '</a></li>' . PHP_EOL;
} }
} else if($node instanceof DokuWikiNameSpace) { } else if ($node instanceof DokuWikiNameSpace) {
/** @var DokuWikiNameSpace $node */ /** @var DokuWikiNameSpace $node */
if ($this->depth <= $this->maxDepth) { if ($this->depth <= $this->maxDepth) {
if ($access > 0) { if ($access > 0) {