1531e725cSNickeau<?php 2531e725cSNickeau 3531e725cSNickeau 4*c3437056SNickeauuse ComboStrap\AnalyticsDocument; 5531e725cSNickeauuse ComboStrap\PluginUtility; 6531e725cSNickeau 7531e725cSNickeau 8531e725cSNickeau/** 9531e725cSNickeau * Class syntax_plugin_combo_analytics 10*c3437056SNickeau * This class was just created to add the syntax analytics 11531e725cSNickeau * to the metadata. 12531e725cSNickeau */ 13531e725cSNickeauclass syntax_plugin_combo_analytics extends DokuWiki_Syntax_Plugin 14531e725cSNickeau{ 15531e725cSNickeau 16531e725cSNickeau const TAG = "analytics"; 17531e725cSNickeau 18531e725cSNickeau /** 19531e725cSNickeau * Syntax Type. 20531e725cSNickeau * @see DokuWiki_Syntax_Plugin::getType() 21531e725cSNickeau */ 22531e725cSNickeau function getType() 23531e725cSNickeau { 24531e725cSNickeau return 'formatting'; 25531e725cSNickeau } 26531e725cSNickeau 27531e725cSNickeau /** 28531e725cSNickeau * How Dokuwiki will add P element 29531e725cSNickeau * 30531e725cSNickeau * * 'normal' - The plugin can be used inside paragraphs 31531e725cSNickeau * * 'block' - Open paragraphs need to be closed before plugin output - block should not be inside paragraphs 32531e725cSNickeau * * 'stack' - Special case. Plugin wraps other paragraphs. - Stacks can contain paragraphs 33531e725cSNickeau * 34531e725cSNickeau * @see DokuWiki_Syntax_Plugin::getPType() 35531e725cSNickeau */ 36531e725cSNickeau function getPType() 37531e725cSNickeau { 38531e725cSNickeau return 'normal'; 39531e725cSNickeau } 40531e725cSNickeau 41531e725cSNickeau /** 42531e725cSNickeau * @return array 43531e725cSNickeau * Allow which kind of plugin inside 44531e725cSNickeau * 45531e725cSNickeau * array('container', 'baseonly', 'formatting', 'substition', 'protected', 'disabled', 'paragraphs') 46531e725cSNickeau * 47531e725cSNickeau */ 48531e725cSNickeau function getAllowedTypes() 49531e725cSNickeau { 50531e725cSNickeau return array(); 51531e725cSNickeau } 52531e725cSNickeau 53531e725cSNickeau function getSort() 54531e725cSNickeau { 55531e725cSNickeau return 201; 56531e725cSNickeau } 57531e725cSNickeau 58531e725cSNickeau 59531e725cSNickeau /** 60531e725cSNickeau * Create a pattern that will called this plugin 61531e725cSNickeau * 62531e725cSNickeau * @param string $mode 63531e725cSNickeau * @see Doku_Parser_Mode::connectTo() 64531e725cSNickeau */ 65531e725cSNickeau function connectTo($mode) 66531e725cSNickeau { 67531e725cSNickeau /** 68531e725cSNickeau * The instruction `calls` are not created via syntax 69531e725cSNickeau * but dynamically via {@link action_plugin_combo_pluginanalytics::_extract_plugin_info()} 70531e725cSNickeau */ 71531e725cSNickeau 72531e725cSNickeau } 73531e725cSNickeau 74531e725cSNickeau function postConnect() 75531e725cSNickeau { 76531e725cSNickeau 77531e725cSNickeau /** 78531e725cSNickeau * The instruction `calls` are not created via syntax 79531e725cSNickeau * but dynamically via {@link action_plugin_combo_pluginanalytics::_extract_plugin_info()} 80531e725cSNickeau */ 81531e725cSNickeau 82531e725cSNickeau } 83531e725cSNickeau 84531e725cSNickeau function handle($match, $state, $pos, Doku_Handler $handler) 85531e725cSNickeau { 86531e725cSNickeau 87531e725cSNickeau /** 88531e725cSNickeau * The instruction `calls` are not created via syntax 89531e725cSNickeau * but dynamically via {@link action_plugin_combo_pluginanalytics::_extract_plugin_info()} 90531e725cSNickeau */ 91531e725cSNickeau 92531e725cSNickeau } 93531e725cSNickeau 94531e725cSNickeau /** 95531e725cSNickeau * Render the output 96531e725cSNickeau * @param string $format 97531e725cSNickeau * @param Doku_Renderer $renderer 98531e725cSNickeau * @param array $data - what the function handle() return'ed 99531e725cSNickeau * @return boolean - rendered correctly? (however, returned value is not used at the moment) 100531e725cSNickeau * @see DokuWiki_Syntax_Plugin::render() 101531e725cSNickeau * 102531e725cSNickeau * 103531e725cSNickeau */ 104531e725cSNickeau function render($format, Doku_Renderer $renderer, $data) 105531e725cSNickeau { 106531e725cSNickeau 107531e725cSNickeau if ($format == renderer_plugin_combo_analytics::RENDERER_FORMAT) { 108531e725cSNickeau 109531e725cSNickeau /** @var renderer_plugin_combo_analytics $renderer */ 110531e725cSNickeau $state = $data[PluginUtility::STATE]; 111531e725cSNickeau if ($state == DOKU_LEXER_SPECIAL) { 112531e725cSNickeau $attributes = $data[PluginUtility::ATTRIBUTES]; 113*c3437056SNickeau $renderer->stats[AnalyticsDocument::SYNTAX_COUNT] = $attributes; 114531e725cSNickeau return true; 115531e725cSNickeau } 116531e725cSNickeau 117531e725cSNickeau } 118531e725cSNickeau 119531e725cSNickeau return false; 120531e725cSNickeau } 121531e725cSNickeau 122531e725cSNickeau 123531e725cSNickeau} 124531e725cSNickeau 125