}} */ class syntax_plugin_luxtools_calendarsync extends SyntaxPlugin { /** @inheritdoc */ public function getType() { return 'substition'; } /** @inheritdoc */ public function getPType() { return 'block'; } /** @inheritdoc */ public function getSort() { return 225; } /** @inheritdoc */ public function connectTo($mode) { $this->Lexer->addSpecialPattern('\{\{calendar_sync>\}\}', $mode, 'plugin_luxtools_calendarsync'); } /** @inheritdoc */ public function handle($match, $state, $pos, Doku_Handler $handler) { return []; } /** @inheritdoc */ public function render($format, Doku_Renderer $renderer, $data) { if ($data === false || !is_array($data)) return false; if ($format !== 'xhtml') return false; if (!($renderer instanceof Doku_Renderer_xhtml)) return false; $renderer->nocache(); // Only render for authenticated users if (empty($_SERVER['REMOTE_USER'])) { return true; } $ajaxUrl = defined('DOKU_BASE') ? (string)DOKU_BASE . 'lib/exe/ajax.php' : 'lib/exe/ajax.php'; $sectok = function_exists('getSecurityToken') ? getSecurityToken() : ''; $buttonLabel = (string)$this->getLang('calendar_sync_button'); if ($buttonLabel === '') $buttonLabel = 'Sync Calendars'; $renderer->doc .= '
'; return true; } }