mirror of
https://github.com/YunoHost/doc.git
synced 2024-09-03 20:06:26 +02:00
65 lines
2 KiB
PHP
65 lines
2 KiB
PHP
<?php
|
|
/**
|
|
* Presentation Plugin
|
|
*
|
|
* PHP version 7
|
|
*
|
|
* @category Extensions
|
|
* @package Grav
|
|
* @subpackage Presentation
|
|
* @author Ole Vik <git@olevik.net>
|
|
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
|
* @link https://github.com/OleVik/grav-plugin-presentation
|
|
*/
|
|
namespace Grav\Plugin\Shortcodes;
|
|
|
|
use Grav\Common\Grav;
|
|
use Thunder\Shortcode\Shortcode\ShortcodeInterface;
|
|
|
|
/**
|
|
* Embed slides
|
|
*
|
|
* Class PresentationPlugin
|
|
*
|
|
* @category Extensions
|
|
* @package Grav\Plugin
|
|
* @author Ole Vik <git@olevik.net>
|
|
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
|
* @link https://github.com/OleVik/grav-plugin-presentation
|
|
*/
|
|
class PresentationShortcode extends Shortcode
|
|
{
|
|
/**
|
|
* Initialize shortcode
|
|
*
|
|
* @return string
|
|
*/
|
|
public function init()
|
|
{
|
|
$this->shortcode->getHandlers()->add(
|
|
'presentation',
|
|
function (ShortcodeInterface $sc) {
|
|
$pages = Grav::instance()['pages'];
|
|
$uri = $this->grav['uri']->rootUrl(true);
|
|
$src = trim($sc->getParameter('src', $this->getBbCode($sc)), '/"');
|
|
$id = 'presentation-' . str_replace(['/', '\\'], '-', $src);
|
|
$classes = $this->config->get('plugins.presentation.shortcode_classes');
|
|
if ($sc->getParameter('class') !== null) {
|
|
$classes = $classes . ' ' . $sc->getParameter('class');
|
|
}
|
|
$page = $pages->find('/' . $src);
|
|
$output = $this->twig->processTemplate(
|
|
'partials/presentation_iframe.html.twig',
|
|
[
|
|
'id' => $id,
|
|
'src' => $src,
|
|
'base_url' => $uri,
|
|
'class' => $classes,
|
|
'page' => $page ?? null
|
|
]
|
|
);
|
|
return $output;
|
|
}
|
|
);
|
|
}
|
|
}
|