1<?php
2/**
3 * Plugin Goole+1
4 *
5 * @author Enrico Croce & Simona Burzio (staff@eiroca.net)
6 * @copyright Copyright (C) 2013-2019 eIrOcA - Enrico Croce & Simona Burzio
7 * @license GPL >=3 (http://www.gnu.org/licenses/)
8 * @version 19.02
9 * @link http://www.eiroca.net/doku_gplusone
10 */
11if (!defined('DOKU_INC')) die();
12if (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN', DOKU_INC . 'lib/plugins/');
13if (!defined('DOKU_PLUGIN_GPLUSONE')) define('DOKU_PLUGIN_GPLUSONE', DOKU_PLUGIN . 'gplusone/');
14require_once (DOKU_PLUGIN . 'syntax.php');
15
16class syntax_plugin_gplusone extends DokuWiki_Syntax_Plugin {
17
18  function getType() {
19    return 'substition';
20  }
21
22  function getPType() {
23    return 'normal';
24  }
25
26  function getSort() {
27    return 999;
28  }
29
30  function connectTo($mode) {
31    $this->Lexer->addSpecialPattern('~~GPLUSONE.*?~~', $mode, 'plugin_gplusone');
32  }
33
34  function getConf($setting, $notset = false) {
35    $val = $this->localConf[$setting];
36    if ($val == '') {
37      $val = parent::getConf($setting, $notset);
38    }
39    return $val;
40  }
41
42  function handle($match, $state, $pos, Doku_Handler $handler) {
43    $out = "";
44    $paramsArr = explode('~', $match);
45    $this->localConf = array ();
46    for ($i = 3; $i < count($paramsArr); $i++) {
47      $param = explode('=', $paramsArr[$i]);
48      $this->localConf[$param[0]] = $param[1];
49    }
50    $out = '<div class="g-plusone"';
51    if (!$this->configloaded) {
52      $this->loadConfig();
53    }
54    foreach ($this->conf as $param => $val) {
55      $val = $this->getConf($param);
56      if ($val != '') {
57        $out .= ' data-' . $param . '="' . $val . '"';
58      }
59    }
60    $out .= '></div>';
61    return $out;
62  }
63
64  function render($mode, Doku_Renderer $renderer, $data) {
65    if ($mode == 'xhtml') {
66      $renderer->doc .= $data;
67      return true;
68    }
69    return false;
70  }
71
72}
73?>