*/ // must be run within Dokuwiki if (!defined('DOKU_INC')) die(); if (!defined('DOKU_LF')) define('DOKU_LF', "\n"); if (!defined('DOKU_TAB')) define('DOKU_TAB', "\t"); if (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); require_once DOKU_PLUGIN.'syntax.php'; class syntax_plugin_whoisinyourhackspace extends DokuWiki_Syntax_Plugin { /** * Check if a given option has been given, and remove it from the initial string * @param string $match The string match by the plugin * @param string $pattern The pattern which activate the option * @param $varAffected The variable which will memorise the option * @param $valIfFound the value affected to the previous variable if the option is found */ private function _checkOption(&$match, $pattern, &$varAffected, $valIfFound){ if ( preg_match($pattern, $match, $found) ){ $varAffected = $valIfFound; $match = str_replace($found[0], '', $match); } } // _checkOption public function getType() { return 'substition'; } public function getPType() { return 'block'; } public function getSort() { return 0; } public function connectTo($mode) { $this->Lexer->addSpecialPattern('\[wiyh\]',$mode,'plugin_whoisinyourhackspace'); } public function render($mode, &$renderer, $data) { global $conf; if($mode != 'xhtml') return false; $api_path = $this->getConf('api_path'); $file = file_get_contents($api_path); $api = json_decode($file); $content = ''; $content .= '
'; $content .= "

" . $this->getLang('wiyh_heading') . "

"; if ($api->state->open) { $content .= "state->icon->open}\" alt=\"{$api->space} ist besetzt.\" title=\"{$api->space} ist besetzt.\" />"; $content .= "

{$api->space} " . $this->getLang('wiyh_open') . "

"; } else { $content .= "state->icon->closed}\" alt=\"{$api->space} ist geschlossen.\" title=\"{$api->space} ist geschlossen.\" />"; $content .= "

{$api->space} " . $this->getLang('wiyh_closed') . "

"; } $date = new DateTime(); $date->setTimeStamp($api->lastchange); $content .= "

seit " . $date->format('d.m.Y H:i') . " Uhr

"; $content .= '
'; $content .= sprintf('

'.$this->getLang('wiyh_stats').'

',strtolower($api->space)); $content .= '
'; $renderer->doc .= $content; return true; } } // vim:ts=4:sw=4:et: