184838f32Snomadjimbob<?php 2*3a0ad8d3SJames Collinsif (!defined('DOKU_INC')) define('DOKU_INC', __DIR__ . '/../../../'); 384838f32Snomadjimbobrequire_once(DOKU_INC . 'inc/init.php'); 484838f32Snomadjimbob 584838f32Snomadjimbob$core = new syntax_plugin_mikioplugin_core(); 684838f32Snomadjimbob$renderer = new Doku_Renderer_xhtml(); 784838f32Snomadjimbob 884838f32Snomadjimbobif (isset($_GET['id'])) { 984838f32Snomadjimbob $content = rawWiki($_GET['id']); 1084838f32Snomadjimbob preg_match_all('/<carousel[^-item].*?>.*?<\/carousel>/s', $content, $matches); 1184838f32Snomadjimbob 1284838f32Snomadjimbob $carousel_index = 0; 1384838f32Snomadjimbob if (isset($_GET['carousel'])) { 1484838f32Snomadjimbob $carousel_index = $_GET['carousel']; 1584838f32Snomadjimbob if ($carousel_index > count($matches[0])) { 1684838f32Snomadjimbob die('The page does not have ' . $carousel_index . ' carousels'); 1784838f32Snomadjimbob } 1884838f32Snomadjimbob 1984838f32Snomadjimbob $carousel_index--; 2084838f32Snomadjimbob } else { 2184838f32Snomadjimbob if (count($matches[0]) <= 0) { 2284838f32Snomadjimbob die('No carousels where found on the page'); 2384838f32Snomadjimbob } 2484838f32Snomadjimbob } 2584838f32Snomadjimbob 2684838f32Snomadjimbob preg_match_all('/<[^\/].*?>/s', $matches[0][$carousel_index], $tags); 2784838f32Snomadjimbob foreach ($tags[0] as $tag) { 2884838f32Snomadjimbob preg_match_all('/([^\r\n\t\f\v<>= \'"]+)(?:=(["\'])?((?:.(?!\2?\s+(?:\S+)=|\2))+[^>])\2?)?/', $tag, $attributes); 2984838f32Snomadjimbob 3084838f32Snomadjimbob if (count($attributes) > 0) { 3184838f32Snomadjimbob $tagName = $attributes[1][0]; 3284838f32Snomadjimbob $tagAttribs = array(); 33f51f4f12SJames Collins $count = count($attributes[1]); 3484838f32Snomadjimbob 35f51f4f12SJames Collins for ($i = 1; $i < $count; $i++) { 3684838f32Snomadjimbob $value = $attributes[3][$i]; 3784838f32Snomadjimbob if (strlen($value) == 0) { 3884838f32Snomadjimbob $value = true; 3984838f32Snomadjimbob } 4084838f32Snomadjimbob 4184838f32Snomadjimbob $tagAttribs[$attributes[1][$i]] = $value; 4284838f32Snomadjimbob } 4384838f32Snomadjimbob 4484838f32Snomadjimbob if (strcasecmp($tagName, 'carousel') == 0) { 4584838f32Snomadjimbob $core->syntaxRender($renderer, $tagName, '', $tagAttribs, MIKIO_LEXER_ENTER); 4684838f32Snomadjimbob } else if (strcasecmp($tagName, 'carousel-item') == 0) { 4784838f32Snomadjimbob $core->syntaxRender($renderer, $tagName, '', $tagAttribs, MIKIO_LEXER_SPECIAL); 4884838f32Snomadjimbob } 4984838f32Snomadjimbob } 5084838f32Snomadjimbob } 5184838f32Snomadjimbob 5284838f32Snomadjimbob $core->syntaxRender($renderer, 'carousel', '', $tagAttribs, MIKIO_LEXER_EXIT); 5384838f32Snomadjimbob 5484838f32Snomadjimbob echo '<html lang=en><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><link type="text/css" rel="stylesheet" href="assets/external.css"/><link type="text/css" rel="stylesheet" href="css.php?css=/assets/variables.less,/assets/styles.less"/></head><body id="dokuwiki__content">'; 5584838f32Snomadjimbob echo $renderer->doc; 5684838f32Snomadjimbob echo '<script src="../../scripts/jquery/jquery.min.js"></script><script src="script.js"></script>'; 5784838f32Snomadjimbob echo '</body></html>'; 5884838f32Snomadjimbob} else { 5984838f32Snomadjimbob die('No page id was set in the url'); 6084838f32Snomadjimbob} 61