|
|
|
<?php
|
|
|
|
/*
|
|
|
|
Fabien Benetou
|
|
|
|
|
|
|
|
Based on http://www.pmwiki.org/wiki/Cookbook/SlideShow
|
|
|
|
|
|
|
|
Installing:
|
|
|
|
Download reveal.js and uncompress it to pub/reveal folder in your "Farm" directory
|
|
|
|
|
|
|
|
Using:
|
|
|
|
Include this (reveal.php) file in your config.php.
|
|
|
|
Create a page using section to define slides and then
|
|
|
|
access the page with action=reveal
|
|
|
|
|
|
|
|
If you defined a master/client keypair configure them further in the multiplex parameters
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
Markup('section','fulltext','/\(:section:\)/e',"Keep('<section>')");
|
|
|
|
Markup('sectionend','fulltext','/\(:sectionend:\)/e',"Keep('</section>')");
|
|
|
|
Markup('sectionextended','fulltext','/\(:sectionextended (.*?):\)/e',"Keep('<section $1>')");
|
|
|
|
|
|
|
|
SDV($HandleActions['reveal'],'HandleRevealSlides');
|
|
|
|
|
|
|
|
SDV($SlideShowFmt, '<!doctype html>
|
|
|
|
<html lang="en">
|
|
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
|
|
<title>reveal.js - Barebones</title>
|
|
|
|
<link rel="stylesheet" href="$FarmPubDirUrl/reveal.js-master/css/reveal.css" type="text/css" />
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div class="reveal">
|
|
|
|
<div class="slides">
|
|
|
|
$Slide
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<script src="$FarmPubDirUrl/reveal.js-master/js/reveal.js"></script>
|
|
|
|
<script>
|
|
|
|
Reveal.initialize({
|
|
|
|
// other options...
|
|
|
|
|
|
|
|
multiplex: {
|
|
|
|
// Example values. To generate your own, see the socket.io server instructions.
|
|
|
|
secret: null, // Obtained from the socket.io server. Gives this (the master) control of the presentation
|
|
|
|
id: "", // Obtained from socket.io server
|
|
|
|
url: "https://reveal-multiplex.glitch.me/" // Location of socket.io server
|
|
|
|
},
|
|
|
|
|
|
|
|
// Don"t forget to add the dependencies
|
|
|
|
dependencies: [
|
|
|
|
{ src: "//cdn.socket.io/socket.io-1.3.5.js", async: true },
|
|
|
|
{ src: "/pub/reveal.js-master/plugin/multiplex/client.js", async: true },
|
|
|
|
|
|
|
|
// other dependencies...
|
|
|
|
]
|
|
|
|
});
|
|
|
|
|
|
|
|
</script>
|
|
|
|
</body>
|
|
|
|
</html>
|
|
|
|
');
|
|
|
|
|
|
|
|
|
|
|
|
function HandleRevealSlides($pagename, $auth = 'read') {
|
|
|
|
global $SlideShowFmt,$FmtV,$ScriptUrl,$Group,$Name;
|
|
|
|
|
|
|
|
$page = RetrieveAuthPage($pagename, $auth, false, READPAGE_CURRENT);
|
|
|
|
if (!$page) Abort("?cannot read $pagename");
|
|
|
|
|
|
|
|
$FmtV['$Slide'] = MarkupToHTML($pagename, $page['text']);
|
|
|
|
FmtPageName($SlideShowFmt, $pagename);
|
|
|
|
PrintFmt($pagename,$SlideShowFmt);
|
|
|
|
exit();
|
|
|
|
}
|
|
|
|
|
|
|
|
/* For master control of slides (ALL presentations!)
|
|
|
|
{"secret":"14731768290817665483","socketId":"1ff0f582dc396a71"}
|
|
|
|
|
|
|
|
Example of working control
|
|
|
|
http://fabien.benetou.fr/pub/home/testingrevealremote/
|
|
|
|
*/
|
|
|
|
|
|
|
|
SDV($HandleActions['revealcontrol'],'ControlSlides');
|
|
|
|
|
|
|
|
SDV($SlideShowFmtControl, '<!doctype html>
|
|
|
|
<html lang="en">
|
|
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
|
|
<title>reveal.js - Barebones</title>
|
|
|
|
<link rel="stylesheet" href="$FarmPubDirUrl/reveal.js-master/css/reveal.css" type="text/css" />
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div class="reveal">
|
|
|
|
<div class="slides">
|
|
|
|
$Slide
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<script src="$FarmPubDirUrl/reveal.js-master/js/reveal.js"></script>
|
|
|
|
<script>
|
|
|
|
Reveal.initialize({
|
|
|
|
// other options...
|
|
|
|
|
|
|
|
multiplex: {
|
|
|
|
// Example values. To generate your own, see the socket.io server instructions.
|
|
|
|
secret: "", // Obtained from the socket.io server. Gives this (the master) control of the presentation
|
|
|
|
id: "", // Obtained from socket.io server
|
|
|
|
url: "https://reveal-multiplex.glitch.me/" // Location of socket.io server
|
|
|
|
},
|
|
|
|
|
|
|
|
// Don"t forget to add the dependencies
|
|
|
|
dependencies: [
|
|
|
|
{ src: "//cdn.socket.io/socket.io-1.3.5.js", async: true },
|
|
|
|
{ src: "/pub/reveal.js-master/plugin/multiplex/master.js", async: true },
|
|
|
|
|
|
|
|
// other dependencies...
|
|
|
|
]
|
|
|
|
});
|
|
|
|
|
|
|
|
</script>
|
|
|
|
</body>
|
|
|
|
</html>
|
|
|
|
');
|
|
|
|
|
|
|
|
function ControlSlides($pagename, $auth = 'read') {
|
|
|
|
global $SlideShowFmtControl,$FmtV,$ScriptUrl,$Group,$Name;
|
|
|
|
|
|
|
|
$page = RetrieveAuthPage($pagename, $auth, false, READPAGE_CURRENT);
|
|
|
|
if (!$page) Abort("?cannot read $pagename");
|
|
|
|
|
|
|
|
$FmtV['$Slide'] = MarkupToHTML($pagename, $page['text']);
|
|
|
|
FmtPageName($SlideShowFmtControl, $pagename);
|
|
|
|
PrintFmt($pagename,$SlideShowFmtControl);
|
|
|
|
exit();
|
|
|
|
}
|
|
|
|
|
|
|
|
?>
|