<?php /** * DokuWiki Plugin vamr (Syntax Component) * version 1.3 (2018-08-29) * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html * @author Michal Rubeš <michal@termiter.cz> */ // 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_vamr extends DokuWiki_Syntax_Plugin { function getType() { return 'container'; } function getPType() { return 'normal'; } function getSort() { return 190; } function connectTo($mode) { $this->Lexer->addSpecialPattern('{vamr.*?}',$mode,'plugin_vamr'); } function handle($match, $state, $pos, &$handler){ $handle = trim(substr($match,5,-1)); $param = explode(' ', $handle); if (!is_numeric($param[0])) $param[0] = 0; if (!isset($param[1])) $param[1] = ''; if (!isset($param[2])) $param[2] = ''; $data[0] = $param[0]; if ($data[0] == 'x') { $num = 5500; //number of photos $r = rand(1, $num); if (!$fp = curl_init('https://www.darwiniana.cz/vamr/?page=obrazek&id='.$r)) $r = 1; $data[0] = $r; } $data[1] = 2; if ($param[1] == 'small' or $param[2] == 'small') $data[1] = 1; // if ($param[1] == 'normal' or $param[2] == 'normal') $data[1] = 2; if ($param[1] == 'big' or $param[2] == 'big') $data[1] = 3; $data[2] = ''; if ($param[1] == 'left' or $param[2] == 'left') $data[2] = ' class="medialeft"'; if ($param[1] == 'right' or $param[2] == 'right') $data[2] = ' class="mediaright"'; if ($param[1] == 'center' or $param[2] == 'center') $data[2] = ' class="mediacenter"'; $data[3] = 'VAMR - Velký Atlas Masožravých Rostlin'; return $data; } function render($mode, &$renderer, $data) { if($mode != 'xhtml' or $data[0]==0) return false; $renderer->doc .= '<a href="https://www.darwiniana.cz/vamr/?page=obrazek&id='.$data[0].'"><img src="https://www.darwiniana.cz/vamr/galerie/'.str_pad($data[0], 5, '0', STR_PAD_LEFT).'-t'.$data[1].'.jpg" alt="'.$data[3].'"'.$data[2].'/></a>'; return true; } } // vim:ts=4:sw=4:et:enc=utf-8: