source: main/trunk/greenstone2/macros/document.dm@ 28497

Last change on this file since 28497 was 28497, checked in by ak19, 11 years ago

Removing hyphens in some of the macros for adding user comments, as otherwise these macros don't appear in the language files for other languages.

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 27.3 KB
RevLine 
[7343]1# this file must be UTF-8 encoded
2
[258]3package document
4
5#######################################################################
6# macros set from within the server
7#######################################################################
8
9_imagethispage_ {}
10_httpprevarrow_ {}
11_httpnextarrow_ {}
[283]12_pagetitle_ {}
[1804]13_phindclassifier_ {}
[6813]14_collageclassifier_ {}
[13427]15
[12944]16# custom header for individual document
17_documentheader_ {}
[13370]18
[13427]19#custom css links for individual document
20_csslink_{
21 <link rel="stylesheet" href="_cssfilelink_" type="text/css"
22 charset="UTF-8" _linktagend_
[19129]23 <link rel="alternate stylesheet" href="_httpstyle_/preview-document.css"
[13450]24 type="text/css"
[13427]25 title="Preview Document" charset="UTF-8" media="screen" _linktagend_
[19129]26 <link rel="stylesheet" href="_httpstyle_/print-document.css" type="text/css"
[13427]27 charset="UTF-8" media="print" _linktagend_
28}
[13370]29
[258]30#######################################################################
31# page content
32#######################################################################
33
[14181]34_tocopen_ {<div class="top" _tocopenextra_>}
35_tocclose_ {</div>}
36
[13534]37_nextsearchresult_ {_If_("_cgiargsrn_" ne "0",<li id="nextresult"><a href="_httpquery_&amp;ifl=1&amp;ifln=_cgiargsrn_">_textnextsearchresult_</a></li>)}
[12944]38
[13534]39_prevsearchresult_ {_If_("_cgiargsrp_" ne "0",<li id="prevresult"><a href="_httpquery_&amp;ifl=1&amp;ifln=_cgiargsrp_">_textprevsearchresult_</a></li>)}
[13370]40
[258]41_content_ {
[7503]42_optnavigationbar_
[11094]43
[10872]44_If_(_phindclassifier__collageclassifier_,
45<p style="text-align: center;">
[1804]46_phindclassifier_
[6813]47_collageclassifier_
[10872]48</p>
49)
[13370]50
[13528]51_If_("_cgiargcl_" eq "search",
[13534]52<ul id="searchresults">
[13528]53_prevsearchresult_
54_nextsearchresult_
[14776]55</ul>)
[13370]56
[10872]57<div class="document">
[13370]58
59
[258]60}
61
[8106]62# Dublin Core Metadata Element Set, Version 1.1
[2802]63_textTitlepage_ {_texticonhtitle_}
[8106]64_textCreatorpage_ {_texticonhcreat_}
[2802]65_textSubjectpage_ {_texticonhsubj_}
[8106]66_textDescriptionpage_ {_texticonhdesc_}
67_textPublisherpage_ {_texticonhpubl_}
68_textContributorpage_ {_texticonhcontr_}
69_textDatepage_ {_texticonhdate_}
70_textTypepage_ {_texticonhtype_}
71_textFormatpage_ {_texticonhform_}
72_textIdentifierpage_ {_texticonhident_}
73_textSourcepage_ {_texticonhsrc_}
74_textLanguagepage_ {_texticonhlang_}
75_textRelationpage_ {_texticonhrel_}
76_textCoveragepage_ {_texticonhcover_}
77_textRightspage_ {_texticonhright_}
78
[2802]79_textTopage_ {_texticonhto_}
80_textFrompage_ {_texticonhfrom_}
81_textSeriespage_ {_texticonhser_}
82_textHowtopage_ {_texticonhhow_}
83_textOrganizationpage_ {_texticonhorg_}
84_textBrowsepage_ {_texticonhbrwse_}
[6813]85_textCollagepage_ {_texticonhcoll_}
[2802]86_textPeoplepage_ {_texticonhpeople_}
87_textAcronympage_ {_texticonhacronym_}
88_textPhrasepage_ {_texticonhphrases_}
89_textArtistpage_ {_texticonhartist_}
[3105]90_textKeywordpage_ {_texticonhkw_}
[3534]91_textVolumepage_ {_texticonhvol_}
[5622]92_textCaptionspage_ {_texticonhcapt_}
[5517]93_textCountriespage_ {_texticonhcount_}
[2802]94
[258]95#######################################################################
96# navigation arrows
97#
98#######################################################################
99
[4868]100# these two may be reset to "" by the server
101_navarrowsbottom_ {_navarrows_}
102_navarrowstop_ {_navarrows_}
103
[258]104_navarrows_ {<center>
105<table width=_pagewidth_ cellpadding=0 cellspacing=0 border=0>
106<tr><td align=left valign=top>
107_prevarrow_
108</td><td align=right valign=top>
109_nextarrow_
110</td></tr></table>
111</center>
112}
113
114_prevarrow_ {_If_(_httpprevarrow_,<a href="_httpprevarrow_">_iconprev_</a>)}
115_nextarrow_ {_If_(_httpnextarrow_,<a href="_httpnextarrow_">_iconnext_</a>)}
116
[548]117_navarrows_ [v=1] {<p>
[258]118_prevarrow_<br>
119_nextarrow_
120}
121
122#######################################################################
[27257]123# section for adding user comments: consists of form and its javascript
124#######################################################################
125
[27294]126# The div that loads the user comments that were already submitted
[27281]127# associated javascript function loadUserComments is in style.dm's _globalscripts_ macro
128_usercomments_ {
129_If_(_cgiargd_,
130<div id="usercomments"></div>
131)
132}
133
[27258]134# Display the add-user-comment form on actual document pages and not when browsing/searching
135# This means the form should only be displayed on pages where the _cgiargd_ (the docid) is set
136
[27294]137# If the user's logged in, show the comment form, else show the link to the login page
138_addusercomment_ {
139_If_(_cgiargd_,
140_If_(_cgiargun_,_usercommentform_,_loginlink_)
141)
142}
143
144_doc-url_ {_gwcgi_?e=_compressedoptions_&amp;a=_cgiarga_&amp;c=_cgiargc_&amp;cl=_cgiargcl_&amp;d=_cgiargd_}
145
146_loginlink_ {
147<div id="usercommentlink"><a href="_doc-url_&amp;uan=1">_textaddusercomment_</a></div>
148}
149
[27258]150# For getting the submitbutton to make Ajax calls, see
[27257]151# http://stackoverflow.com/questions/4264091/input-type-submit-instead-of-input-type-button-with-ajax
152# http://stackoverflow.com/questions/8869341/ajax-form-submit-with-submit-button
153
[27294]154_usercommentform_ {
[27347]155<form name="AddUserCommentForm" id="usercommentform">
[27294]156<!--<p>_textcommentusername_ <input type="text" name="username"></p>-->
157<input type=hidden name="username" value="_cgiargun_">
[27257]158<p>
159_textaddusercomment_
160<textarea name="comment" rows="10" cols="70"></textarea>
161<input type=hidden name="d" value="_cgiargd_">
162</p>
163
[27259]164<input type="submit" value="_textaddcomment_" onclick="addUserComment(document.AddUserCommentForm.username.value, document.AddUserCommentForm.comment.value, document.AddUserCommentForm.d.value, document); return false;">
165<label id="usercommentfeedback"></label>
[27297]166
[28497]167<div id="usercommentlogoutlink"><a href="_doc-url_&amp;un=">_textusercommentlogout_</a></div>
[27257]168</form>
[27259]169
[27294]170
[27257]171<script type="text/javascript">
[27259]172
[27277]173 // Unused. Replaced in favour of call to escape() in setMetaArray function that calls urlPostSync
174 // http://stackoverflow.com/questions/6020714/escape-html-using-jquery
[27259]175 function safeHTML(str) \{
176 return str.replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;").replace('"',"&quot;").replace("'","&#x27;").replace("/", "&#x2F;"); //"\\""
177 \}
178
[27277]179
[27259]180 function addUserComment(_username, _comment, _docid, doc) \{
[27293]181
182 // don't add empty strings for name/comment
183
184 // http://stackoverflow.com/questions/498970/how-do-i-trim-a-string-in-javascript
[27365]185 //var trimmed_username=_username.replace(/^\s+|\s+$/g, '');
[27293]186 var trimmed_comment = _comment.replace(/^\s+|\s+$/g, '');
187
[27365]188 if(!trimmed_comment) \{ // || !trimmed_username
189 doc.AddUserCommentForm.comment.value = "";
190 //doc.AddUserCommentForm.username.value = "";
[28497]191 doc.getElementById("usercommentfeedback").innerHTML = "_textisempty_";
[27293]192 return;
193 \}
194
[27258]195 // Need to the add user comment meta of username, timestamp and comment to the
196 // topmost section of the document. So only get the docId up to any period mark:
197 var period = _docid.indexOf(".");
198 if(period != -1) \{
199 _docid = _docid.substring(0, period);
200 \}
[27257]201
[27277]202
[27257]203 // Want to store username, timestamp and comment in import/metadata.xml, archives/doc.xml
204 // and index/col.gdb.
205
206 // For getting the current time, see
207 // http://stackoverflow.com/questions/3830244/get-current-date-time-in-seconds
208 var _timestamp = new Date().getTime(); // div by 1000 to get seconds. valueOf() may return string
209
210 //alert("username:" + _username
211 //+ "\\ncomment: " + _comment
212 //+ "\\ncollection: " + collection
213 //+ "\\ndocid: " + _docid
214 //+ "\\ntimestamp: " + _timestamp);
215
216
[27277]217 // Entity encode the values before storing (at least <, >, /. And single and double quote, ampersand)
218 // http://stackoverflow.com/questions/6020714/escape-html-using-jquery
219 // setMetadataArray escapes the entire JSON, is that better than escaping individually here?
220 //_docid = escape(_docid);
221 //_timestamp = escape(_timestamp);
222 //_username = escape(_username); //safeHTML(_username);
223 //_comment = escape(_comment); //safeHTML(_comment);
224
225 // Use this if making individual api calls to set username meta, then timestamp then comment meta
[27257]226 // GSAPI already knows the collection
227 //gsapi.setMetadata(_docid, "username", null, _username, "accumulate", "import|archives|index");
228 //gsapi.setMetadata(_docid, "usertimestamp", null, _timestamp, "accumulate", "import|archives|index");
229 //gsapi.setMetadata(_docid, "usercomment", null, _comment, "accumulate", "import|archives|index");
230
231
232 // Use the new JSON metatable format to set username, timestamp and comment meta for docid in one go
233
234 // For creating the JSON object that gets turned into a string, see
235 // http://msdn.microsoft.com/en-us/library/ie/cc836459%28v=vs.94%29.aspx
236 // http://jsfiddle.net/qmacro/W54hy/
237
238 var username_rec = \{
239 metaname: "username",
240 metavals: [_username]
241 \};
242
243 var timestamp_rec = \{
[27260]244 metaname: "usertimestamp",
[27257]245 metavals: [_timestamp]
246 \};
247
248 var comment_rec = \{
[27258]249 metaname: "usercomment",
[27257]250 metavals: [_comment]
251 \};
252
253 var doc_rec = \{
254 docid: _docid,
255 metatable: [username_rec, timestamp_rec, comment_rec],
256 metamode: "accumulate"
257 \};
258
259 var docArray = [doc_rec];
260
261 //alert(JSON.stringify(docArray));
262
263 // GSAPI already knows the collection
[27365]264 var result = gsapi.setMetadataArray(docArray, "accumulate", "import|archives|index");
[27297]265
266 // clear the comment field as it has now been submitted, but not the username field
267 // as the user is logged in, so they should be able to commit again under their username.
268 doc.AddUserCommentForm.comment.value = "";
[27281]269
[27365]270 // check for locked collection error
271 var errorIndex = result.indexOf("ERROR");
272 if(errorIndex != -1) \{
273 var endIndex = result.indexOf("\\n");
274 var error = result.substring(errorIndex,endIndex);
275 errormessage="Unable to add comment. " + error;
276 doc.getElementById("usercommentfeedback").innerHTML = errormessage;
277 //alert("Result: " + result);
278 \} else \{
279 doc.getElementById("usercommentfeedback").innerHTML = "_textcommentsubmitted_";
280
281 // update display of existing user comments to show the newly added comment
282 var usercommentdiv = document.getElementById("usercomments");
283 if(usercommentdiv != undefined) \{
[27293]284 displayInUserCommentList(usercommentdiv, _username, _timestamp, _comment);
[27365]285 \}
286 \}
[27257]287 \}
288</script>
289}
290
[27258]291
[27257]292#######################################################################
[258]293# the goto form
294#######################################################################
295
296_gotoform_ {
297<form name="GotoForm" method="get" action="_gwcgi_">
[876]298<input type=hidden name="e" value="_decodedcompressedoptions_">
[258]299<input type=hidden name="d" value="_cgiargd_">
300<input type=hidden name="cl" value="_cgiargcl_">
[666]301<input type="text" name="gp" size="3" maxlength="4">
[944]302<input type="submit" value="_textgoto_">
[258]303</form>
304}
305
[944]306_textnumpages_ {&nbsp;<i>(_1_ _pages_)</i>}
[666]307_parentarrow_ {}
[19048]308_prevtitle_ {}
309_nexttitle_ {}
[666]310
[258]311#######################################################################
[1804]312# the phind applet
313#
314# The phind applet is only required on phind classifier pages.
315# Consequently, the _phindclassifier_ macro is not usually set. On screens
316# where it is required, _phindclassifier_ resolves to _phindapplet_, and
317# the following macro is loaded into the web page.
318#######################################################################
319
320_phindapplet_ {
[19149]321<APPLET CODEBASE="_httpjava_" CODE="org.nzdl.gsdl.Phind.Phind.class" ARCHIVE="Phind.jar" WIDTH=500 HEIGHT=400>
[3084]322 <PARAM NAME=library VALUE="_gwcgi_?e=_compressedoptions_">
[2487]323 <PARAM NAME=phindcgi VALUE="_gwcgi_?a=phind">
[1804]324 <PARAM NAME=collection VALUE="_cgiargc_">
[2021]325 <PARAM NAME=classifier VALUE="_phindnumber_">
326
[1804]327 <PARAM NAME=orientation VALUE="vertical">
328 <PARAM NAME=depth VALUE="2">
[2021]329 <PARAM NAME=resultorder VALUE="L,l,E,e,D,d">
[22383]330 <PARAM NAME=textorientation VALUE="_textorientation_">
[2021]331 <PARAM NAME=backdrop VALUE="_httpimg_/phindbg1.jpg">
332 <PARAM NAME=fontsize VALUE="10">
[1804]333 <PARAM NAME=blocksize VALUE="10">
[2021]334
[1804]335 The Phind java applet.
336</APPLET>
337}
338
[6813]339_collageapplet_ {
[19149]340 <applet CODEBASE="_httpjava_"
[7332]341 code="org.nzdl.gsdl.GsdlCollageApplet.GsdlCollageApplet.class"
342 archive="GsdlCollageApplet.jar"
343 width="_collagexdim_" height="_collageydim_">
[1804]344
[7332]345 <param name="gwcgi" value="_gwcgi_">
346 <param name="collection" value="_cgiargc_">
347 <param name="classifier" value="_cgiargcl_.1">
[6813]348
[7332]349 <param name="hrefMustHave" value="cl=_cgiargcl_.1">
350 <param name="imageMustNotHave" value="hl=\%x=\%gt=\%gc=\%.pr">
351
352 <param name="imageType" value="_collageimageType_">
353 <param name="verbosity" value="_collageverbosity_">
354 <param name="maxDepth" value="_collagemaxDepth_">
355 <param name="maxDisplay" value="_collagemaxDisplay_">
356 <param name="refreshDelay" value="_collagerefreshDelay_">
357 <param name="isJava2" value="_collageisJava2_">
358 <param name="bgcolor" value="_collagebgcolor_">
[11421]359 <param name="documentroot" value="_httpimg_">
[6813]360 </applet>
[7332]361
362<center>
363_collagecaption_
364</center>
[13971]365}
[7332]366
[13971]367
368_flashbook_ {
369 <div id="bookdiv">
370 </div>
371
372 <script type="text/javascript">
[14082]373 var myWidth = "100%";
374 myHeight = 800;
375
[19149]376 var img_cover = '_httpassocdir_/_thisOID_/cover.jpg';
[13971]377 var doc_url = document.URL;
378 doc_url = doc_url.replace(/(&|\\?)book=[a-z]+/gi,'');
[14082]379 doc_url += '&book=flashxml';
[18168]380
381 var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;//get windows or not
382 //Only for Windows computers because Greenstone webserver doesn't allow us to pass parameters to Flash.
383 //These methods is called by the Flash program to get all the necessary parameters for the book
384 //However, it will only work for IE 5.0 and later, Firefox 1.0 and later, Mozilla 1.7.5 and later
385 //Netscape 8.0 and later, Safari 1.3 and later
386 function getDocURL() \{ return doc_url; \}
387 function getImgCover() \{ return img_cover; \}
388 function getStageW() \{ return -1; \}
389 function getStageH() \{ return -1; \}
390
391
[13971]392 var flash_plug_html = "";
393 flash_plug_html += '<OBJECT align="middle" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" \\n';
394 flash_plug_html += ' codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" \\n';
395 flash_plug_html += ' height="';
[18168]396 flash_plug_html += myHeight + '" id="Book" swLiveConnect="true" align="middle"\\n';
[13971]397 flash_plug_html += ' width="';
398 flash_plug_html += myWidth + '">\\n';
[18168]399
[13971]400 flash_plug_html += ' <PARAM name="allowScriptAccess" value="always" />\\n';
[19130]401 flash_plug_html += ' <PARAM name="movie" value="_httpflash_/Book.swf';
[18168]402 if (isWin == false)
403 \{
404 flash_plug_html += '?src_image=' + escape(img_cover);
405 flash_plug_html += '&amp;doc_url=' + escape(doc_url);
406 \}
[13971]407 flash_plug_html += '" />\\n';
408 flash_plug_html += ' <PARAM name="quality" value="high" />\\n';
409 flash_plug_html += ' <PARAM name="bgcolor" value="#FFFFFF" />\\n';
410 flash_plug_html += ' <EMBED align="middle" \\n';
411 flash_plug_html += ' allowScriptAccess="always" swLiveConnect="true" \\n';
412 flash_plug_html += ' bgcolor="#FFFFFF" height="';
413 flash_plug_html += myHeight + '" name="Book" \\n';
414 flash_plug_html += ' pluginspage="http://www.macromedia.com/go/getflashplayer" \\n';
415 flash_plug_html += ' quality="high" \\n';
[19130]416 flash_plug_html += ' src=\\'_httpflash_/Book.swf';
[18168]417 if (isWin == false)
418 \{
419 flash_plug_html += '?src_image=' + escape(img_cover);
420 flash_plug_html += '&amp;doc_url=' + escape(doc_url);
421 \}
422 flash_plug_html += '\\'\\n';
[13971]423 flash_plug_html += ' type="application/x-shockwave-flash" width="';
424 flash_plug_html += myWidth + '" />\\n';
425 flash_plug_html += '</OBJECT>\\n';
426
427 var flash_div = document.getElementById("bookdiv");
428 flash_div.innerHTML = flash_plug_html;
429 </script>
[6813]430}
431
[1804]432#######################################################################
[283]433# icons
[258]434#######################################################################
435
[10872]436_iconsmalltext_ {<img src="_httpiconsmtext_" class="icon" width=_widthsmtext_ height=_heightsmtext_ alt="_texticonsmalltext_" title="_texticonsmalltext_">}
[548]437_iconsmalltext_ [v=1] {<small><b>_texticonsmalltext2_</b></small>}
[283]438
[10872]439_iconarrowsmalltext_ {<img src="_httpiconasmtext_" class="icon" width=_widthasmtext_ height=_heightasmtext_ alt="_texticonsmalltext_" title="_texticonsmalltext_">}
[548]440_iconarrowsmalltext_ [v=1] {<small><b>->_texticonsmalltext2_</b></small>}
[454]441
[10872]442_iconclosedfolder_ {<img src="_httpiconclsdfldr_" class="icon" width=_widthclsdfldr_ height=_heightclsdfldr_ alt="_texticonclosedfolder_" title="_texticonclosedfolder_">}
[548]443_iconclosedfolder_ [v=1] {<small><b>_texticonclosedfolder2_</b></small>}
[283]444
[10872]445_iconarrowclosedfolder_ {<img src=_httpiconaclsdfdr_" class="icon" width=_widthaclsdfdr_ height=_heightaclsdfdr_ alt="_texticonclosedfolder_" title="_texticonclosedfolder_">}
[548]446_iconarrowclosedfolder_ [v=1] {<small><b>->_texticonclosedfolder2_</b></small>}
[454]447
[10872]448_iconopenfolder_ {<img src="_httpiconopenfldr_" class="icon" width=_widthopenfldr_ height=_heightopenfldr_ alt="_texticonopenfolder_" title="_texticonopenfolder_">}
[548]449_iconopenfolder_ [v=1] {<small><b>_texticonopenfolder2_</b></small>}
[283]450
[10872]451_iconarrowopenfolder_ {<img src="_httpiconaopenfdr_" class="icon" width=_widthaopenfdr_ height=_heightaopenfdr_ alt="_texticonopenfolder_" title="_texticonopenfolder_">}
[548]452_iconarrowopenfolder_ [v=1] {<small><b>->_texticonopenfolder2_</b></small>}
[454]453
[10872]454_iconarrowclosedbook_ {<img src="_httpiconabook_" width=_widthabook_ height=_heightabook_ class="icon" alt="_texticonclosedbook_" title="_texticonclosedbook_">}
[548]455_iconarrowclosedbook_ [v=1] {<small><b>->_texticonclosedbook_: </b></small>}
[454]456
[10872]457_iconopenbook_ {<img src="_httpiconopenbook_" width=_widthopenbook_ height=_heightopenbook_ class="icon" alt="_texticonopenbook_" title="_texticonopenbook_">}
[548]458_iconopenbook_ [v=1] {<small><b>_texticonopenbook_: </b></small>}
[283]459
[10872]460_iconarrowopenbook_ {<img src="_httpiconaopenbk_" width=_widthaopenbk_ height=_heightaopenbk_ class="icon" alt="_texticonopenbook_" title="_texticonopenbook_">}
[548]461_iconarrowopenbook_ [v=1] {<small><b>->_texticonopenbook_: </b></small>}
[454]462
[10872]463_iconopenbookshelf_ {<img src="_httpiconbshelf_" class="icon" width=_widthbshelf_ height=_heightbshelf_ alt="_texticonopenbookshelf_" title="_texticonopenbookshelf_">}
[548]464_iconopenbookshelf_ [v=1] {<small><b>_texticonopenbookshelf_: </b></small>}
[283]465
[10872]466_iconarrowopenbookshelf_ {<img src="_httpiconabshelf_" class="icon" width=_widthabshelf_ height=_heightabshelf_ alt="_texticonopenbookshelf_" title="_texticonopenbookshelf_">}
[548]467_iconarrowopenbookshelf_ [v=1] {<small><b>->_texticonopenbookshelf_: </b></small>}
[454]468
[10872]469_iconclosedbookshelf_ {<img src="_httpiconbshelf_" class="icon" width=_widthbshelf_ height=_heightbshelf_ alt="_texticonclosedbookshelf_" title="_texticonclosedbookshelf_">}
[548]470_iconclosedbookshelf_ [v=1] {<small><b>_texticonclosedbookshelf_: </b></small>}
[283]471
[10872]472_iconarrowclosedbookshelf_ {<img src="_httpiconabshelf_" class="icon" width=_widthabshelf_ height=_heightabshelf_ alt="_texticonclosedbookshelf_" title="_texticonclosedbookshelf_">}
[548]473_iconarrowclosedbookshelf_ [v=1] {<small><b>->_texticonclosedbookshelf_: </b></small>}
[454]474
[10872]475_iconpointer_ {<img src="_httpiconarrrght_" class="icon" width=_widtharrrght_ height=_heightarrrght_>}
[548]476_iconpointer_ [v=1] {<small><b>_texticonpointer_-> </b></small>}
[283]477
[11132]478_iconwarning_ {<img src="_httpiconwarning_" width="_widthwarning_" height="_heightwarning_" class="icon" align="left">}
[548]479_iconwarning_ [v=1] {_texticonwarning_}
[283]480
481
[258]482#######################################################################
[283]483# images
484#######################################################################
485
[19149]486_coverimage_ {<img alt="Cover Image" onError="src='_httpimg_/blank.gif'" src="_httpassocdir_/_thisOID_/cover.jpg">}
[14072]487
[11132]488_docbutton_ {<div class="button"><span class="button" title="_3_"><a href="_1_">_2_</a></span></div>
489}
[283]490
[11132]491# can't use _docbutton_ macro for detach button as we need to include target
492_imagedetach_ {<div class="button"><span class="button"><a href="_httpcurrentdocument_&amp;x=1" target="\_blank" title="_texticondetach_">_textDETACH_</a></span></div>}
[283]493
[13427]494_imageprint_{<div class="button"><span class="button"><a href="javascript:print_preview()">_textPRINT_</a></span></div>}
495
496
[11132]497_imagehighlight_ {_docbutton_(_httpcurrentdocument_&amp;hl=1&amp;gc=_cgiarggc_&amp;gt=_cgiarggt_,_textHIGHLIGHT_,_texticonhighlight_)}
[283]498
[11132]499_imagenohighlight_ {_docbutton_(_httpcurrentdocument_&amp;hl=0&amp;gc=_cgiarggc_&amp;gt=_cgiarggt_,_document:textNOHIGHLIGHT_,_document:texticonnohighlight_)}
[283]500
[11132]501_imagecontracttoc_ {_docbutton_(_httpcurrentdocument_&amp;gc=0,_textCONTRACTCONTENTS_,_texticoncontracttoc_)}
[283]502
[11132]503_imageexpandtoc_ {_docbutton_(_httpcurrentdocument_&amp;gc=1,_textEXPANDCONTENTS_,_texticonexpandtoc_)}
[283]504
[11132]505_imagecontracttext_ {_docbutton_(_httpcurrentdocument_&amp;gt=0,_textCONTRACT_,_texticoncontracttext_)}
[283]506
[11132]507_imageexpandtext_ {_docbutton_(_httpcurrentdocument_&amp;gt=1,_textEXPANDTEXT_,_texticonexpandtext_)}
[283]508
[11132]509_imagecont_ {_docbutton_(_httpcurrentdocument_&amp;gt=2,_textCONTINUE_,_texticoncont_)}
[283]510
[11132]511
[13427]512#######################################################################
513# print preview script
514#######################################################################
[11132]515
[13427]516
517_pagescriptextra_{
518
519 var style_display_old;
520 var show = true;
[13452]521 var toc_top;
[13427]522
523 function has_toc(){
524 var div_nodes = document.getElementsByTagName("div");
525 for (var i=0;i < div_nodes.length ; i++ )\{
526 var div_node = div_nodes[i];
527 if (div_node.className =="toc" && div_node.childNodes.length > 1)
528 \{
529 return true;
530 \}
531 \}
532
533 return false;
534 \}
535
536 function hide_toc()\{
537 var div_nodes = document.getElementsByTagName("div");
538 for (var i=0;i < div_nodes.length ; i++ )\{
539 var div_node = div_nodes[i];
540 if (div_node.className =="toc")
541 \{
542 style_display_old = div_node.style.display;
[13452]543 toc_top = document.getElementById("toc_top");
544 if (toc_top)
545 div_node.parentNode.insertBefore(toc_top,div_node);
546 div_node.style.display = "none";
[13427]547 \};
548 \}
549
550 \}
551
[13452]552
[13427]553 function show_toc()\{
554
555 var div_nodes = document.getElementsByTagName("div");
556 for (var i=0;i < div_nodes.length ; i++ )\{
557 var div_node = div_nodes[i];
558 if (div_node.className =="toc")
559 \{
560 div_node.style.display = style_display_old;
[13452]561 if (toc_top)
562 div_node.insertBefore(toc_top,div_node.firstChild);
563 \};
[13427]564 \}
565
566 \}
567
568
569 function switch_toc()\{
570 var toc_link = document.getElementById("toc_link");
571 while (toc_link.hasChildNodes()) \{
572 toc_link.removeChild(toc_link.firstChild);
573 \}
574 if (show)\{
[13450]575 toc_link.appendChild(document.createTextNode('_textshowcontents_'));
[13427]576 show = false;
577 hide_toc();
578 \}
579 else\{
[13450]580 toc_link.appendChild(document.createTextNode('_texthidecontents_'));
[13427]581 show = true;
582 show_toc();
583 \}
584
585 \}
586
587 function print_preview() \{
588 // Switch the stylesheet
589 setActiveStyleSheet("Preview Document");
590 add_print_message();
591 \}
592
593 function add_print_message()\{
594 if (document.getElementById)\{
595 var print_message = document.createElement('ul');
596 print_message.id = 'print-message';
597 print_message.className = "printmessage";
598
599 var cancel_print_link = document.createElement('li');
600 cancel_print_link.className = "cancelprint"
601 cancel_print_link.onclick = function()\{ cancel_print(); return false;\};
[13450]602 cancel_print_link.appendChild(document.createTextNode('_textreturnoriginal_'));
[13427]603 print_message.appendChild(cancel_print_link);
604
605
606 var print_link = document.createElement('li');
607 print_link.onclick = function()\{ window.print(); return false;\};
[13450]608 print_link.appendChild(document.createTextNode('_textprintpage_'));
[13427]609 print_message.appendChild(print_link);
610
611 if (has_toc())\{
612 var toc_link = document.createElement('li');
613 toc_link.id = "toc_link";
614 toc_link.onclick = function()\{ switch_toc(); return false;\};
[13450]615 toc_link.appendChild(document.createTextNode('_texthidecontents_'));
[13427]616 print_message.appendChild(toc_link);
617 \}
618
619 //insert the print message node
620 var div_nodes = document.getElementsByTagName("div");
621 for (var i=0;i < div_nodes.length ; i++ )\{
622 var div_node = div_nodes[i];
623 if (div_node.className =="document")\{
624 var parent = div_node.parentNode;
625 parent.insertBefore(print_message,div_node);
626 \}
627 \}
628 \}
629
630 \}
631
632
633 function cancel_print() \{
634 // Destroy the preview message
635 var print_message = document.getElementById('print-message');
636 var parent = print_message.parentNode;
637 parent.removeChild(print_message);
638
639 show_toc();
640 // Switch back stylesheet
641 setActiveStyleSheet("default");
642 \}
643
644 function setActiveStyleSheet(title) \{
645 var i, a, main;
646 for(i=0; (a = document.getElementsByTagName("link")[i]); i++) \{
647 if(a.getAttribute("rel").indexOf("style") != -1
648 && a.getAttribute("title")) \{
649 a.disabled = true;
650 if(a.getAttribute("title") == title) a.disabled = false;
651 \}
[25396]652 \}
[13427]653 \}
654
655}
656
657
[283]658#######################################################################
[258]659# headers/footers
660#######################################################################
661
662
663# header overridden for text pages
664_textheader_ {_cgihead_
[454]665_htmlhead_
[10872]666_startspacer_
667
668<!-- document:textheader -->
669<div id="banner">
670<div class="pageinfo"><p class="bannerlinks">_globallinks_</p></div>
671<div class="collectimage">_imagecollection_</div>
672</div>
[11779]673<div class="bannerextra">_pagebannerextra_</div>
[258]674}
[10872]675
[548]676_textheader_ [v=1] {_cgihead_
677_htmlhead_
[10872]678_globallinks_
[548]679}
[258]680
681_footer_ {
[10872]682</div> <!-- document:footer -->
683
[27363]684_If_("_document:allowusercomments_" eq "1",
[27281]685<center>
686<table width=_pagewidth_ cellpadding=0 cellspacing=0 border=0>
687<tr><td align=left valign=top>
688<div class="commentssection">
689_usercomments_
690_addusercomment_
691</div>
692</td></tr></table>
[27363]693</center>)
[27281]694
[27294]695<div class="navarrowsbottom">
696_navarrowsbottom_
697</div>
698
699
[258]700_endspacer__htmlfooter_
[23804]701}
702
703
[23812]704
705
[23804]706package Global
[23812]707
[23804]708# Social network support
709# Defined here in document, as the most likely place this will be used in
710# within a document view, however its package is 'Global' because you
711# might equally want this in a search or browse list
712
713# _1_ = e.g. title
714# _2_ = [srclink] or left empty. If left empty, then it will share the internal GS document
715
716_sharemescript_ {
717 <script type="text/javascript">
718 var a2a_config = a2a_config || \{ \};
719 a2a_config.linkname = "_1_";
[23812]720
721 _If_(_2_,
[23804]722 var srclink = \'_2_\';
[23812]723
724 //If metadata value is a valid URL that starts with xxx://
725 // (e.g. any protocol\, http, https\, ftp ...) then that will be the link to share
726 if (srclink.match(/^[^:]+:\\\/\\\//i)) \{
727 a2a_config.linkurl = srclink;
728 \}
729 else \{
730 //if metadata value is [srclink] then we have to cut off the 'href' tag label
731 var href = srclink.match(/href=\"([^\"]*)\"/);
732 a2a_config.linkurl = gsapi.fullDomainURL(href[1]);
733 \}
734 ,
735 //if no metadata was passed as link\, then the GS version of the document will be used.
[23804]736 a2a_config.linkurl = gsapi.fullDomainURL("_gwcgi_")+ "?c=_cgiargc_&a=d&d=_cgiargd_";
737)
738
739 </script>
740}
741
742_shareme_ {
743
744<div style=\'padding-left:50px;\' class=\'a2a_kit a2a_default_style\'>
745 _sharemescript_(_1_,_2_)
746 <center>
747 <a class=\'a2a_dd\' href=\'http://www.addtoany.com/share_save\'>Share</a>
748 <span class=\"a2a_divider\"></span>
749 <a class=\'a2a_button_facebook\'></a>
750 <a class=\'a2a_button_twitter\'></a>
751 <a class=\'a2a_button_email\'></a>
752 <a class=\'a2a_button_linkedin\'></a>
753 </center>
754 <script type=\"text/javascript\" src=\"http://static.addtoany.com/menu/page.js\"></script>
755</div>
756
757}
758
759_sharemesmall_ {
760
761<span style=\'padding-left:8px;\' class=\'a2a_kit a2a_default_style\'>
762 _sharemescript_(_1_,_2_)
763 <a class=\'a2a_dd\' href=\'http://www.addtoany.com/share_save\'>Share</a>
764 <script type=\"text/javascript\" src=\"http://static.addtoany.com/menu/page.js\"></script>
765</span>
766
767}
Note: See TracBrowser for help on using the repository browser.