1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
//
// This is a Roxen module.
//
// Written by Bill Welliver, <hww3@riverweb.com>
//
//
string cvs_version = "$Id: presentit.pike,v 1.1 1998/01/12 14:43:46 hww3 Exp $";
#include <module.h>
inherit "module";
inherit "roxenlib";
array register_module()
{
return ({ MODULE_PARSER,
"PresentIt!",
"Creates Slideshows and presentations.<p>"
"For more information, see <a "
"href=http://www.riverweb.com/modules/presentit>"
"http://www.riverweb.com/modules/presentit</a>.\n"
"", ({}), 1
});
}
void create()
{
}
string|void check_variable(string variable, mixed set_to)
{
}
string container_slide(string tag_name, mapping arguments,
string contents,object id, object file, mapping defines)
{
string retval="";
if(!id->misc->slides) id->misc->slides=({});
mapping s=(["name":arguments->name,
"description":contents,
"src":arguments->src
]);
id->misc->slides+=({s});
return retval;
}
int i;
mixed container_presentit(string tag_name, mapping arguments,
string contents, object id,
mapping defines)
{
string retval=parse_html(contents,([]),(["slide":container_slide]),id);
if(!id->variables->slide) id->variables->slide=0;
int slide=(int)id->variables->slide;
int previousslide;
if (id->variables->slide==0) previousslide=sizeof(id->misc->slides)-1;
else previousslide=slide-1;
int nextslide=slide+1;
if (nextslide==sizeof(id->misc->slides)) nextslide=0;
retval+="<table border=3><tr><td>"
"<img src=\""+ id->misc->slides[slide]->src
+ "\"></td></tr></table>\n"
"<font size=+2>"+id->misc->slides[slide]->name
+ "</font>\n<br>" +id->misc->slides[slide]->description
+"<p>\n";
if(!arguments->backward)
retval+="<gtext href=\"" +id->not_query+ "?slide="+ previousslide
+ "\" magic=\"Previous Slide\">"
"< Back</gtext> ";
else retval+="<a href=\""+id->not_query+ "?slide="+previousslide +
"\"><img alt=Backward src=\""+arguments->backward+"\"></a>";
if(!arguments->quit)
retval+=" <gtext href=\"" + arguments->home
+ "\" magic=\"Exit Slideshow\">Quit</gtext>\n";
else retval+="<a href=\""+arguments->home+
"\"><img alt=Quit src=\""+arguments->quit+"\"></a>";
if(!arguments->forward)
retval+=" <gtext href=\"" + id->not_query+ "?slide=" +nextslide
+"\" magic=\"Next Slide\">Next ></gtext><p>\n";
else retval+="<a href=\""+id->not_query+ "?slide="+nextslide +
"\"><img alt=Forward src=\""+arguments->forward+"\"></a>";
return retval;
}
void start(){
i=0;
}
mapping query_container_callers() { return
(["presentit":container_presentit ]); }
|