about summary refs log tree commit diff stats
path: root/update/plugin/phpBB3/trunk
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2008-08-06 15:50:24 +0000
committerKelly Rauchenberger <fefferburbia@gmail.com>2008-08-06 15:50:24 +0000
commit4909076f16676f79065093d882e873a0c2b3351b (patch)
treea973af4ed31c5678792bb7704d7ccb6c34d989b9 /update/plugin/phpBB3/trunk
parent0c7e773693e2937ac16595ef551cecfa73bc1ec2 (diff)
downloadinstadisc-4909076f16676f79065093d882e873a0c2b3351b.tar.gz
instadisc-4909076f16676f79065093d882e873a0c2b3351b.tar.bz2
instadisc-4909076f16676f79065093d882e873a0c2b3351b.zip
Update: Created MODX installation instructions for phpBB3
The phpBB3 plugin is now completed! Closes #7
Diffstat (limited to 'update/plugin/phpBB3/trunk')
-rw-r--r--update/plugin/phpBB3/trunk/install.xml69
-rw-r--r--update/plugin/phpBB3/trunk/license.txt340
-rw-r--r--update/plugin/phpBB3/trunk/modx.prosilver.en.xsl2016
3 files changed, 2425 insertions, 0 deletions
diff --git a/update/plugin/phpBB3/trunk/install.xml b/update/plugin/phpBB3/trunk/install.xml new file mode 100644 index 0000000..dbdaaaf --- /dev/null +++ b/update/plugin/phpBB3/trunk/install.xml
@@ -0,0 +1,69 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<?xml-stylesheet type="text/xsl" href="modx.prosilver.en.xsl"?>
3
4<mod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.phpbb.com/mods/xml/modx-1.2.0.xsd">
5 <header>
6 <license>http://opensource.org/licenses/gpl-license.php GNU General Public License v2</license>
7
8 <title lang="en">InstaDisc</title>
9
10 <description lang="en">This is an InstaDisc Update Server implementation plugin for phpBB3 which allows you to send out InstaDisc items whenever someone posts</description>
11
12 <author-group>
13 <author>
14 <realname>Starla Insigna</realname>
15 <username>hatkirby</username>
16 <homepage>http://fourisland.com/</homepage>
17 </author>
18 </author-group>
19
20 <mod-version>1.0.0</mod-version>
21
22 <installation>
23 <level>easy</level>
24 <time>300</time>
25 <target-version>3.0.2</target-version>
26 </installation>
27 </header>
28
29 <action-group>
30 <copy>
31 <file from="root/instadisc.php" to="instadisc.php" />
32 <file from="root/adm/style/acp_instadisc.html" to="adm/style/acp_instadisc.html" />
33 <file from="root/includes/functions_instadisc.php" to="includes/functions_instadisc.php" />
34 <file from="root/includes/acp/acp_instadisc.php" to="includes/acp/acp_instadisc.php" />
35 <file from="root/includes/acp/info/acp_instadisc.php" to="includes/acp/info/acp_instadisc.php" />
36 <file from="root/language/en/mods/instadisc.php" to="language/en/mods/instadisc.php" />
37 <file from="root/styles/prosilver/template/instadisc.html" to="styles/prosilver/template/instadisc.html" />
38 </copy>
39
40 <open src="includes/functions_posting.php">
41 <edit>
42 <find><![CDATA[if (!defined('IN_PHPBB'))
43{
44 exit;
45}]]></find>
46
47 <action type="after-add"><![CDATA[
48/* Start: InstaDisc Plugin */
49include($phpbb_root_path . 'includes/functions_instadisc.' . $phpEx);
50/* End: InstaDisc Plugin */]]></action>
51 </edit>
52
53 <edit>
54 <find>return $url;</find>
55
56 <action type="before-add"><![CDATA[/* Start: InstaDisc Plugin */
57if (($post_mode == 'post') || ($post_mode == 'reply'))
58{
59 sendItem($subject, (int) $user->data['user_id'], $url, $data['forum_id']);
60}
61/* End: InstaDisc Plugin */
62
63]]></action>
64 </edit>
65 </open>
66
67 <diy-instructions lang="en">Go to http://fourisland.com/projects/instadisc/wiki/Update/phpBB3 for help on setting up your subscriptions.</diy-instructions>
68 </action-group>
69</mod>
diff --git a/update/plugin/phpBB3/trunk/license.txt b/update/plugin/phpBB3/trunk/license.txt new file mode 100644 index 0000000..b860267 --- /dev/null +++ b/update/plugin/phpBB3/trunk/license.txt
@@ -0,0 +1,340 @@
1 GNU GENERAL PUBLIC LICENSE
2 Version 2, June 1991
3
4 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
6 Everyone is permitted to copy and distribute verbatim copies
7 of this license document, but changing it is not allowed.
8
9 Preamble
10
11 The licenses for most software are designed to take away your
12freedom to share and change it. By contrast, the GNU General Public
13License is intended to guarantee your freedom to share and change free
14software--to make sure the software is free for all its users. This
15General Public License applies to most of the Free Software
16Foundation's software and to any other program whose authors commit to
17using it. (Some other Free Software Foundation software is covered by
18the GNU Library General Public License instead.) You can apply it to
19your programs, too.
20
21 When we speak of free software, we are referring to freedom, not
22price. Our General Public Licenses are designed to make sure that you
23have the freedom to distribute copies of free software (and charge for
24this service if you wish), that you receive source code or can get it
25if you want it, that you can change the software or use pieces of it
26in new free programs; and that you know you can do these things.
27
28 To protect your rights, we need to make restrictions that forbid
29anyone to deny you these rights or to ask you to surrender the rights.
30These restrictions translate to certain responsibilities for you if you
31distribute copies of the software, or if you modify it.
32
33 For example, if you distribute copies of such a program, whether
34gratis or for a fee, you must give the recipients all the rights that
35you have. You must make sure that they, too, receive or can get the
36source code. And you must show them these terms so they know their
37rights.
38
39 We protect your rights with two steps: (1) copyright the software, and
40(2) offer you this license which gives you legal permission to copy,
41distribute and/or modify the software.
42
43 Also, for each author's protection and ours, we want to make certain
44that everyone understands that there is no warranty for this free
45software. If the software is modified by someone else and passed on, we
46want its recipients to know that what they have is not the original, so
47that any problems introduced by others will not reflect on the original
48authors' reputations.
49
50 Finally, any free program is threatened constantly by software
51patents. We wish to avoid the danger that redistributors of a free
52program will individually obtain patent licenses, in effect making the
53program proprietary. To prevent this, we have made it clear that any
54patent must be licensed for everyone's free use or not licensed at all.
55
56 The precise terms and conditions for copying, distribution and
57modification follow.
58
59 GNU GENERAL PUBLIC LICENSE
60 TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
62 0. This License applies to any program or other work which contains
63a notice placed by the copyright holder saying it may be distributed
64under the terms of this General Public License. The "Program", below,
65refers to any such program or work, and a "work based on the Program"
66means either the Program or any derivative work under copyright law:
67that is to say, a work containing the Program or a portion of it,
68either verbatim or with modifications and/or translated into another
69language. (Hereinafter, translation is included without limitation in
70the term "modification".) Each licensee is addressed as "you".
71
72Activities other than copying, distribution and modification are not
73covered by this License; they are outside its scope. The act of
74running the Program is not restricted, and the output from the Program
75is covered only if its contents constitute a work based on the
76Program (independent of having been made by running the Program).
77Whether that is true depends on what the Program does.
78
79 1. You may copy and distribute verbatim copies of the Program's
80source code as you receive it, in any medium, provided that you
81conspicuously and appropriately publish on each copy an appropriate
82copyright notice and disclaimer of warranty; keep intact all the
83notices that refer to this License and to the absence of any warranty;
84and give any other recipients of the Program a copy of this License
85along with the Program.
86
87You may charge a fee for the physical act of transferring a copy, and
88you may at your option offer warranty protection in exchange for a fee.
89
90 2. You may modify your copy or copies of the Program or any portion
91of it, thus forming a work based on the Program, and copy and
92distribute such modifications or work under the terms of Section 1
93above, provided that you also meet all of these conditions:
94
95 a) You must cause the modified files to carry prominent notices
96 stating that you changed the files and the date of any change.
97
98 b) You must cause any work that you distribute or publish, that in
99 whole or in part contains or is derived from the Program or any
100 part thereof, to be licensed as a whole at no charge to all third
101 parties under the terms of this License.
102
103 c) If the modified program normally reads commands interactively
104 when run, you must cause it, when started running for such
105 interactive use in the most ordinary way, to print or display an
106 announcement including an appropriate copyright notice and a
107 notice that there is no warranty (or else, saying that you provide
108 a warranty) and that users may redistribute the program under
109 these conditions, and telling the user how to view a copy of this
110 License. (Exception: if the Program itself is interactive but
111 does not normally print such an announcement, your work based on
112 the Program is not required to print an announcement.)
113
114These requirements apply to the modified work as a whole. If
115identifiable sections of that work are not derived from the Program,
116and can be reasonably considered independent and separate works in
117themselves, then this License, and its terms, do not apply to those
118sections when you distribute them as separate works. But when you
119distribute the same sections as part of a whole which is a work based
120on the Program, the distribution of the whole must be on the terms of
121this License, whose permissions for other licensees extend to the
122entire whole, and thus to each and every part regardless of who wrote it.
123
124Thus, it is not the intent of this section to claim rights or contest
125your rights to work written entirely by you; rather, the intent is to
126exercise the right to control the distribution of derivative or
127collective works based on the Program.
128
129In addition, mere aggregation of another work not based on the Program
130with the Program (or with a work based on the Program) on a volume of
131a storage or distribution medium does not bring the other work under
132the scope of this License.
133
134 3. You may copy and distribute the Program (or a work based on it,
135under Section 2) in object code or executable form under the terms of
136Sections 1 and 2 above provided that you also do one of the following:
137
138 a) Accompany it with the complete corresponding machine-readable
139 source code, which must be distributed under the terms of Sections
140 1 and 2 above on a medium customarily used for software interchange; or,
141
142 b) Accompany it with a written offer, valid for at least three
143 years, to give any third party, for a charge no more than your
144 cost of physically performing source distribution, a complete
145 machine-readable copy of the corresponding source code, to be
146 distributed under the terms of Sections 1 and 2 above on a medium
147 customarily used for software interchange; or,
148
149 c) Accompany it with the information you received as to the offer
150 to distribute corresponding source code. (This alternative is
151 allowed only for noncommercial distribution and only if you
152 received the program in object code or executable form with such
153 an offer, in accord with Subsection b above.)
154
155The source code for a work means the preferred form of the work for
156making modifications to it. For an executable work, complete source
157code means all the source code for all modules it contains, plus any
158associated interface definition files, plus the scripts used to
159control compilation and installation of the executable. However, as a
160special exception, the source code distributed need not include
161anything that is normally distributed (in either source or binary
162form) with the major components (compiler, kernel, and so on) of the
163operating system on which the executable runs, unless that component
164itself accompanies the executable.
165
166If distribution of executable or object code is made by offering
167access to copy from a designated place, then offering equivalent
168access to copy the source code from the same place counts as
169distribution of the source code, even though third parties are not
170compelled to copy the source along with the object code.
171
172 4. You may not copy, modify, sublicense, or distribute the Program
173except as expressly provided under this License. Any attempt
174otherwise to copy, modify, sublicense or distribute the Program is
175void, and will automatically terminate your rights under this License.
176However, parties who have received copies, or rights, from you under
177this License will not have their licenses terminated so long as such
178parties remain in full compliance.
179
180 5. You are not required to accept this License, since you have not
181signed it. However, nothing else grants you permission to modify or
182distribute the Program or its derivative works. These actions are
183prohibited by law if you do not accept this License. Therefore, by
184modifying or distributing the Program (or any work based on the
185Program), you indicate your acceptance of this License to do so, and
186all its terms and conditions for copying, distributing or modifying
187the Program or works based on it.
188
189 6. Each time you redistribute the Program (or any work based on the
190Program), the recipient automatically receives a license from the
191original licensor to copy, distribute or modify the Program subject to
192these terms and conditions. You may not impose any further
193restrictions on the recipients' exercise of the rights granted herein.
194You are not responsible for enforcing compliance by third parties to
195this License.
196
197 7. If, as a consequence of a court judgment or allegation of patent
198infringement or for any other reason (not limited to patent issues),
199conditions are imposed on you (whether by court order, agreement or
200otherwise) that contradict the conditions of this License, they do not
201excuse you from the conditions of this License. If you cannot
202distribute so as to satisfy simultaneously your obligations under this
203License and any other pertinent obligations, then as a consequence you
204may not distribute the Program at all. For example, if a patent
205license would not permit royalty-free redistribution of the Program by
206all those who receive copies directly or indirectly through you, then
207the only way you could satisfy both it and this License would be to
208refrain entirely from distribution of the Program.
209
210If any portion of this section is held invalid or unenforceable under
211any particular circumstance, the balance of the section is intended to
212apply and the section as a whole is intended to apply in other
213circumstances.
214
215It is not the purpose of this section to induce you to infringe any
216patents or other property right claims or to contest validity of any
217such claims; this section has the sole purpose of protecting the
218integrity of the free software distribution system, which is
219implemented by public license practices. Many people have made
220generous contributions to the wide range of software distributed
221through that system in reliance on consistent application of that
222system; it is up to the author/donor to decide if he or she is willing
223to distribute software through any other system and a licensee cannot
224impose that choice.
225
226This section is intended to make thoroughly clear what is believed to
227be a consequence of the rest of this License.
228
229 8. If the distribution and/or use of the Program is restricted in
230certain countries either by patents or by copyrighted interfaces, the
231original copyright holder who places the Program under this License
232may add an explicit geographical distribution limitation excluding
233those countries, so that distribution is permitted only in or among
234countries not thus excluded. In such case, this License incorporates
235the limitation as if written in the body of this License.
236
237 9. The Free Software Foundation may publish revised and/or new versions
238of the General Public License from time to time. Such new versions will
239be similar in spirit to the present version, but may differ in detail to
240address new problems or concerns.
241
242Each version is given a distinguishing version number. If the Program
243specifies a version number of this License which applies to it and "any
244later version", you have the option of following the terms and conditions
245either of that version or of any later version published by the Free
246Software Foundation. If the Program does not specify a version number of
247this License, you may choose any version ever published by the Free Software
248Foundation.
249
250 10. If you wish to incorporate parts of the Program into other free
251programs whose distribution conditions are different, write to the author
252to ask for permission. For software which is copyrighted by the Free
253Software Foundation, write to the Free Software Foundation; we sometimes
254make exceptions for this. Our decision will be guided by the two goals
255of preserving the free status of all derivatives of our free software and
256of promoting the sharing and reuse of software generally.
257
258 NO WARRANTY
259
260 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268REPAIR OR CORRECTION.
269
270 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278POSSIBILITY OF SUCH DAMAGES.
279
280 END OF TERMS AND CONDITIONS
281
282 How to Apply These Terms to Your New Programs
283
284 If you develop a new program, and you want it to be of the greatest
285possible use to the public, the best way to achieve this is to make it
286free software which everyone can redistribute and change under these terms.
287
288 To do so, attach the following notices to the program. It is safest
289to attach them to the start of each source file to most effectively
290convey the exclusion of warranty; and each file should have at least
291the "copyright" line and a pointer to where the full notice is found.
292
293 <one line to give the program's name and a brief idea of what it does.>
294 Copyright (C) <year> <name of author>
295
296 This program is free software; you can redistribute it and/or modify
297 it under the terms of the GNU General Public License as published by
298 the Free Software Foundation; either version 2 of the License, or
299 (at your option) any later version.
300
301 This program is distributed in the hope that it will be useful,
302 but WITHOUT ANY WARRANTY; without even the implied warranty of
303 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304 GNU General Public License for more details.
305
306 You should have received a copy of the GNU General Public License
307 along with this program; if not, write to the Free Software
308 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
309
310
311Also add information on how to contact you by electronic and paper mail.
312
313If the program is interactive, make it output a short notice like this
314when it starts in an interactive mode:
315
316 Gnomovision version 69, Copyright (C) year name of author
317 Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
318 This is free software, and you are welcome to redistribute it
319 under certain conditions; type `show c' for details.
320
321The hypothetical commands `show w' and `show c' should show the appropriate
322parts of the General Public License. Of course, the commands you use may
323be called something other than `show w' and `show c'; they could even be
324mouse-clicks or menu items--whatever suits your program.
325
326You should also get your employer (if you work as a programmer) or your
327school, if any, to sign a "copyright disclaimer" for the program, if
328necessary. Here is a sample; alter the names:
329
330 Yoyodyne, Inc., hereby disclaims all copyright interest in the program
331 `Gnomovision' (which makes passes at compilers) written by James Hacker.
332
333 <signature of Ty Coon>, 1 April 1989
334 Ty Coon, President of Vice
335
336This General Public License does not permit incorporating your program into
337proprietary programs. If your program is a subroutine library, you may
338consider it more useful to permit linking proprietary applications with the
339library. If this is what you want to do, use the GNU Library General
340Public License instead of this License.
diff --git a/update/plugin/phpBB3/trunk/modx.prosilver.en.xsl b/update/plugin/phpBB3/trunk/modx.prosilver.en.xsl new file mode 100644 index 0000000..9da5465 --- /dev/null +++ b/update/plugin/phpBB3/trunk/modx.prosilver.en.xsl
@@ -0,0 +1,2016 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<!-- MODX by the phpBB MOD Team XSL file v1.2.0 copyright 2005-2008 the phpBB MOD Team.
3 $Id: modx.prosilver.en.xsl 1897 2008-06-16 00:37:40Z jelly_doughnut $
4 Updated on 2008-06-06 at 4:00PM by primehalo to fix several bugs.
5-->
6<!DOCTYPE xsl:stylesheet[
7 <!ENTITY nbsp "&#160;">
8]>
9<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:mod="http://www.phpbb.com/mods/xml/modx-1.2.0.xsd">
10 <xsl:output method="html" omit-xml-declaration="no" indent="yes" />
11 <xsl:variable name="title" select="mod:mod/mod:header/mod:title" />
12 <xsl:variable name="version">
13 <xsl:for-each select="mod:mod/mod:header/mod:mod-version">
14 <xsl:value-of select="current()" />
15 </xsl:for-each>
16 </xsl:variable>
17 <xsl:template match="mod:mod">
18 <html xmlns="http://www.w3.org/1999/xhtml">
19 <head>
20 <meta http-equiv="Content-Language" content="en" />
21 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
22 <style type="text/css">
23/* phpBB 3.0 Admin Style Sheet
24 –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
25 Original author: subBlue ( http://www.subblue.com/ )
26 Copyright 2007 phpBB Group ( http://www.phpbb.com/ )
27 –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
28 */
29
30/* General markup styles
31––––––––––––––––––––––––––––––*/
32* {
33 /* Reset browsers default margin, padding and font sizes */
34 margin: 0;
35 padding: 0;
36 font-size: 100%;
37}
38
39body, div, p, th, td, li, dd {
40 font-size: x-small;
41 voice-family: "\"}\"";
42 voice-family: inherit;
43 font-size: 100%;
44}
45
46html>body, html>div, html>p, html>th, html>td, html>li, html>dd {
47 font-size: small
48}
49
50html {
51 color: #536482;
52 background: #DBD7D1;
53 /* Always show a scrollbar for short pages - stops the jump when the scrollbar appears. non-ie browsers */
54 height: 100%;
55 margin-bottom: 1px;
56}
57
58body {
59 /* Text-Sizing with ems: http://www.clagnut.com/blog/348/ */
60 font-family: "Lucida Grande", Verdana, Helvetica, Arial, sans-serif;
61 color: #536482;
62 background: #DBD7D1;
63 font-size: 82.5%; /* This sets the default font size to be equivalent to 10px */
64 margin: 10px 15px;
65}
66
67img {
68 border: 0;
69}
70
71h1 {
72 font-family: "Trebuchet MS", Helvetica, sans-serif;
73 font-size: 1.70em;
74 font-weight: normal;
75 color: #333333;
76}
77
78h2, caption {
79 font-family: "Trebuchet MS", Helvetica, sans-serif;
80 font-size: 1.40em;
81 font-weight: normal;
82 color: #115098;
83 text-align: left;
84 margin-top: 25px;
85}
86
87.rtl h2, .rtl caption {
88 text-align: right;
89}
90
91h3, h4, h5 {
92 font-family: "Trebuchet MS", Helvetica, sans-serif;
93 font-size: 1.20em;
94 text-decoration: none;
95 line-height: 1.20em;
96 margin-top: 10px;
97}
98
99p {
100 margin-bottom: 0.7em;
101 line-height: 1.40em;
102 font-size: 1.0em;
103}
104
105ul {
106 list-style: disc;
107 margin: 0 0 1em 2em;
108}
109
110.rtl ul {
111 margin: 0 2em 1em 0;
112}
113
114hr {
115 border: 0 none;
116 border-top: 1px dashed #999999;
117 margin-bottom: 5px;
118 padding-bottom: 5px;
119 height: 1px;
120}
121
122.small {
123 font-size: 0.85em;
124}
125
126/* General links */
127a:link, a:visited {
128 color: #105289;
129 text-decoration: none;
130}
131
132a:hover {
133 color: #BC2A4D;
134 text-decoration: underline;
135}
136
137a:active {
138 color: #368AD2;
139 text-decoration: none;
140}
141
142/* Main blocks
143––––––––––––––––––––––––––––––––––––––––*/
144#wrap {
145 padding: 0 0 15px 0;
146 min-width: 615px;
147}
148
149#page-header {
150 clear: both;
151 text-align: right;
152 background: url(data:image/gif;base64,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) top left no-repeat;
153 height: 69px;
154 font-size: 0.85em;
155 margin-bottom: 10px;
156}
157
158.rtl #page-header {
159 text-align: left;
160 background: top right no-repeat;
161}
162
163#page-header h1 {
164 color: #767676;
165 font-family: "Trebuchet MS",Helvetica,sans-serif;
166 font-size: 1.70em;
167 padding-top: 10px;
168}
169
170#page-header p {
171 font-size: 1.00em;
172}
173
174#page-body {
175 clear: both;
176 min-width: 700px;
177}
178
179#page-footer {
180 clear: both;
181 font-size: 0.75em;
182 text-align: center;
183}
184
185#content {
186 padding: 0px 10px 10px;
187 position: relative;
188}
189
190#content h1 {
191 color: #115098;
192 line-height: 1.2em;
193 margin-bottom: 0px;
194}
195
196#main {
197 width: 100%;
198 margin: 0;
199 min-height: 350px;
200}
201
202.rtl #main {
203 float: right;
204 margin: 0;
205}
206
207* html #main {
208 height: 350px;
209}
210
211/* Main Panel
212–––––––––––––––––––––––––––––––––––––––– */
213#acp {
214 margin: 4px 0;
215 padding: 3px 1px;
216 min-width: 550px;
217 background-color: #FFFFFF;
218 border: 1px #999999 solid;
219}
220
221.panel {
222 background: #F3F3F3 url(data:image/gif;base64,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) repeat-x top;
223 padding: 0;
224}
225
226span.corners-top, span.corners-bottom,
227span.corners-top span, span.corners-bottom span {
228 font-size: 1px;
229 line-height: 1px;
230 display: block;
231 height: 5px;
232 background-repeat: no-repeat;
233}
234
235span.corners-top, span.corners-bottom {
236 background-image: url(data:image/gif;base64,R0lGODlhiBMMAMQSAP///5mZmfPz89vX0cvIw9zc3PX19bKysqmopvb29pqamvn5+Z2dnLy6t62sqp+fnqCgn/T09P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABIALAAAAACIEwwAAAX/4DAQDhScaKqubOu+cCzPdG3feK7vfO//wKBwSCwaj8ikcslsOp/QqHRKrVqv2Kx2y+16v+CweEwum8/otHrNbrvf8Lh8Tq/b7/i8fs/v+/+AgYKDhIWGh4hSAw0HBREAkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PG7BAoCAAkCEvr7/P3+/wADChxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhT/6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdShJBAQBcw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIizJYYCCx48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6teHToAgHysY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkyuX4Br28ufQo0ufTr269evYs2vfzr279+/gw4sfT7704sbl06tfz769+/fw48ufT7++/fv48+vfzx+vV7D9BSjggAQWaOCBCCao4JmCDDbo4IMQRijhdfTYg8+EGGao4YYcdujhhyCGKOKIJJZo4oko5rVIIwbI4+KLMMYo44w01mjjjTjmqOOOPPbo449ABinkkEQWaeSRSCap5JJMNunkk1BGKeWUVFaZjQgkPJDIllx26eWXYIYp5phklmnmmWimqeaabLbp5ptwxinnnHTWaeedeOap55589unnn4AGKigcIQAAOw==);
237}
238
239span.corners-top span, span.corners-bottom span {
240 background-image: url(data:image/gif;base64,R0lGODlhBgAMAMQWAP///9vX0fPz85mZmdzc3Jqamtvb28vIw7y6t62sqsvIxPX19bKysqmop/T09Pb29pycnJ+fnp2dnKCgn/n5+fr6+v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABYALAAAAAAGAAwAAAUs4DAlRxAADsEggfAAQqFYNGA0tLVQUi4AAx8w56hAcraGCyYDLFSsQYRkCgEAOw==);
241}
242
243span.corners-top {
244 background-position: 0 0;
245 margin: -4px -2px 0;
246}
247
248span.corners-top span {
249 background-position: 100% 0;
250}
251
252span.corners-bottom {
253 background-position: 0 100%;
254 margin: 0 -2px -4px;
255 clear: both;
256}
257
258span.corners-bottom span {
259 background-position: 100% 100%;
260}
261
262/* General form styles
263––––––––––––––––––––––––––––––––––––––––*/
264fieldset {
265 margin: 15px 0;
266 padding: 1px;
267 border-top: 1px solid #D7D7D7;
268 border-right: 1px solid #CCCCCC;
269 border-bottom: 1px solid #CCCCCC;
270 border-left: 1px solid #D7D7D7;
271 background-color: #FFFFFF;
272 /*position: relative;*/
273}
274
275.rtl fieldset {
276 border-top: 1px solid #D7D7D7;
277 border-right: 1px solid #D7D7D7;
278 border-bottom: 1px solid #CCCCCC;
279 border-left: 1px solid #CCCCCC;
280}
281
282* html fieldset {
283 padding: 0 10px 5px 10px;
284}
285
286fieldset p {
287 font-size: 1.0em;
288}
289
290legend {
291 padding: 1px 3px;
292 font-family: Tahoma,arial,Verdana,Sans-serif;
293 font-size: 1.06em;
294 font-weight: bold;
295 color: #115098;
296/* position: relative;*/
297 text-transform: capitalize;
298 line-height: 1.00em;
299 top: 0em;
300 vertical-align: middle;
301
302
303}
304
305/* Hide from macIE \*/
306legend { top: -1.2em; }
307/* end */
308
309* html legend {
310 margin-bottom: -10px;
311 margin-left: -7px;
312}
313
314/* Holly hack, .rtl comes after html */
315* html .rtl legend {
316 margin: 0;
317 margin-right: -7px;
318}
319
320optgroup, select {
321 font-family: Verdana, Helvetica, Arial, sans-serif;
322 font-size: 0.85em;
323 font-weight: normal;
324 font-style: normal;
325 cursor: pointer;
326 vertical-align: middle;
327 width: auto;
328}
329
330optgroup {
331 font-size: 1.00em;
332 font-weight: bold;
333}
334
335option {
336 padding: 0 1em 0 0;
337}
338
339.rtl option {
340 padding: 0 0 0 1em;
341}
342
343fieldset.nobg {
344 margin: 15px 0 0 0;
345 padding: 0;
346 border: none;
347 background-color: transparent;
348}
349
350/* MOD-ABOUT STUFFS ~smithy_dll */
351
352.mod-about {
353 /*float: left;*/
354 background-color: #CADCEB;
355 /*width: 100%;*/
356}
357
358
359
360.mod-about span.corners-top, .mod-about span.corners-bottom,
361.mod-about span.corners-top span, .mod-about span.corners-bottom span {
362 font-size: 1px;
363 line-height: 1px;
364 display: block;
365 height: 5px;
366 background-repeat: no-repeat;
367}
368
369.mod-about span.corners-top, .mod-about span.corners-bottom {
370 background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAMCAYAAABBV8wuAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABVSURBVHjaYviPAD+BeDIQ2wMxGwNU8AkQGwAxAwwzQFXqIgvCJCajC8IkbLBJMIItYmD4xYAGmBhwAJCEMS6JcKxa8DkX5kFdbBKwIJkADRIGgAADAGtyotIvyqGpAAAAAElFTkSuQmCC);
371}
372
373.mod-about span.corners-top span, .mod-about span.corners-bottom span {
374 background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAMCAYAAABBV8wuAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAABbSURBVHjaYvr//z8bENsD8WQg/vkfChjQsAEQPwFJMDGgggtA7AnEv9AlQOAyEM/CJgECK3FJnMIlwYZLQheXRDg2CV0gzmTCIrgd2Q4bIJ4AxGeAWBokABBgAE4XMoXm9S+UAAAAAElFTkSuQmCC);
375}
376
377.mod-about span.corners-top {
378 background-position: 0 0;
379 margin: 0 0;
380}
381
382.mod-about span.corners-top span {
383 background-position: 100% 0;
384}
385
386.mod-about span.corners-bottom {
387 background-position: 0 100%;
388 margin: 0 0;
389 clear: both;
390}
391
392.mod-about span.corners-bottom span {
393 background-position: 100% 100%;
394}
395
396/* END PROSILVER ADMIN PANEL STYLESHEET */
397
398#language { width: 130px; }
399
400.mod-about-padding { 0px 8px; }
401.mod-about { margin: 10px 4px; }
402.mod-about dt { font-weight:bold; padding-right:4px; }
403.mod-about dl { margin: 0px 8px; }
404.mod-about div { margin: 3px 8px; }
405/*div.inner .mod-about dl { margin: 0px 0px; }*/
406/*.nopadding { margin: 0px 0px; }*/
407
408.mod-history {font-size: 82.5%; } /* Mod histories can get pretty long, so I'm making that font a bit smaller */
409
410#modDisclaimer .mod-about, #other-notes.mod-about { background-color: #EECCCC; }
411#other-notes.mod-about strong.red { color: #DD3333; }
412
413span.key { font-size: 10px; height: 16px; line-height: 14px; width: 18px; border: outset 2px #999999; background-color: #EEEECC; display: block; float: left; text-align: center; font-weight: bold; margin-right: 5px; }
414
415.mod-edit { background-color: #D6E6F6; border: solid 1px #336699; margin: 10px 0; padding: 0 10px; }
416.mod-inlineedit { background-color: #DDEEFF; border: solid 1px #6699CC; margin: 10px 0; padding: 0 10px; }
417
418dl.author-info dd { margin-left: 100px; margin-bottom: 8px; }
419
420ol#file-copy { padding: 5px; margin-left: 20px; margin-bottom: 10px; }
421ol#file-copy li { margin-left: 30px; }
422ol#file-copy span { font-weight: bold; }
423ol#file-copy dt {margin-right: 5px;
424float: none !important }
425ol#file-copy dl {width: 100%}
426
427
428h2#lang-fca { margin-left:5px; }
429h2#lang-edts { margin-left:5px; }
430h2#lang-diy { margin-left:5px; }
431h2#lang-sql { margin-left:5px; }
432
433
434/* Code block */
435div.codebox {
436 padding: 3px;
437 background-color: #FFFFFF;
438 border: 1px solid #d8d8d8;
439 font-size: 1em;
440}
441
442div.codebox div.codeHead {
443 text-transform: uppercase;
444 border-bottom: 1px solid #CCCCCC;
445 margin-bottom: 3px;
446 font-size: 0.8em;
447 font-weight: bold;
448 display: block;
449}
450
451div.codebox div.codeHead a.codeSelect {
452 padding-left: 4px;
453}
454
455blockquote div.codebox {
456 margin-left: 0;
457}
458
459div.codebox pre {
460 /* Also see tweaks.css */
461 width:100%;
462 overflow-x: scroll;
463 display: block;
464 height: auto;
465 max-height: 200px;
466 /*white-space: normal;*/
467 padding-top: 5px;
468 font: 0.9em Monaco, "Andale Mono","Courier New", Courier, mono;
469 line-height: 1.3em;
470 color: #606060;
471 margin: 2px 0;
472}
473
474dt {
475 float: left;
476 width: auto;
477}
478
479.rtl dt {
480 float: right;
481}
482
483dd { color: #666666;}
484dd + dd { padding-top: 5px;}
485dt span { padding: 0 5px 0 0;}
486.rtl dt span { padding: 0 0 0 5px;}
487div.endMOD { padding: 0 5px; }
488 </style>
489 <title>phpBB MOD &#187; <xsl:value-of select="$title" /></title>
490 <script type="text/javascript">
491 var i = 0;
492 var box = new Array();
493
494 /* passed from xslt */
495
496 <xsl:for-each select="mod:header">
497 var documentLanguages = new Array(<xsl:for-each select="mod:title">'<xsl:value-of select="@lang" />'<xsl:if test="position()!=last()">,</xsl:if></xsl:for-each>);
498 <xsl:for-each select="mod:author-group">
499 var authors = <xsl:value-of select="count(mod:author)"/>;
500 var authors_ll = new Array();
501 i = 0;
502 <xsl:for-each select="mod:author">
503 authors_ll[i] = '<xsl:value-of select="generate-id()"/>';
504 i += 1;
505 </xsl:for-each>
506 </xsl:for-each>
507
508 var mhes = 0;
509 var mhes_ll = new Array();
510 var mhcls = 0;
511 var mhcls_ll = new Array();
512 <xsl:for-each select="mod:history/mod:entry">
513 mhes_ll[mhes] = '<xsl:value-of select="generate-id()"/>';
514 mhes++;
515 <xsl:if test="count(mod:changelog) > 1">
516 mhcls_ll[mhes] = '<xsl:value-of select="generate-id()"/>';
517 mhcls++;
518 </xsl:if>
519 </xsl:for-each>
520 </xsl:for-each>
521
522 var opens = 0;
523 var opens_ll = new Array();
524 <xsl:for-each select="mod:action-group/mod:open">
525 opens_ll[opens] = '<xsl:value-of select="generate-id()"/>';
526 opens++;
527 </xsl:for-each>
528
529 var codes = 0;
530 var codes_ll = new Array();
531 <xsl:for-each select="mod:action-group/mod:sql">
532 box[codes] = '<xsl:value-of select="generate-id()"/>';
533 codes_ll[codes] = '<xsl:value-of select="generate-id()"/>';
534 codes++;
535 </xsl:for-each>
536
537 var finds = 0;
538 var finds_ll = new Array();
539 var regex = 0;
540 var regex_ll = new Array();
541 var ifinds = 0;
542 var ifinds_ll = new Array();
543 var iregex = 0;
544 var iregex_ll = new Array();
545 var addafters = 0;
546 var addafters_ll = new Array();
547 var iaddafters = 0;
548 var iaddafters_ll = new Array();
549 var addbefores = 0;
550 var addbefores_ll = new Array();
551 var iaddbefores = 0;
552 var iaddbefores_ll = new Array();
553 var replacewiths = 0;
554 var replacewiths_ll = new Array();
555 var ireplacewiths = 0;
556 var ireplacewiths_ll = new Array();
557 var increments = 0;
558 var increments_ll = new Array();
559 var iincrements = 0;
560 var iincrements_ll = new Array();
561
562 var comments = 0;
563 var comments_ll = new Array();
564 <xsl:for-each select="mod:action-group/mod:open/mod:edit">
565 <xsl:for-each select="mod:find">
566 finds_ll[finds] = '<xsl:value-of select="generate-id()"/>';
567 finds++;
568 </xsl:for-each>
569 <xsl:if test="count(mod:comment) > 0">
570 comments_ll[comments] = '<xsl:value-of select="generate-id()"/>';
571 comments++;
572 </xsl:if>
573 <xsl:for-each select="mod:find|mod:action">
574 box[codes] = '<xsl:value-of select="generate-id()"/>';
575 codes_ll[codes] = '<xsl:value-of select="generate-id()"/>';
576 codes++;
577
578 <xsl:if test="name() = 'action'">
579 <xsl:if test="@type = 'after-add'">
580 addafters_ll[addafters] = '<xsl:value-of select="generate-id()"/>';
581 addafters++;
582 </xsl:if>
583 <xsl:if test="@type = 'before-add'">
584 addbefores_ll[addbefores] = '<xsl:value-of select="generate-id()"/>';
585 addbefores++;
586 </xsl:if>
587 <xsl:if test="@type = 'replace-with'">
588 replacewiths_ll[replacewiths] = '<xsl:value-of select="generate-id()"/>';
589 replacewiths++;
590 </xsl:if>
591 <xsl:if test="@type = 'operation'">
592 increments_ll[increments] = '<xsl:value-of select="generate-id()"/>';
593 increments++;
594 </xsl:if>
595 </xsl:if>
596
597 </xsl:for-each>
598 <xsl:for-each select="mod:inline-edit">
599 <xsl:for-each select="mod:inline-find">
600 ifinds_ll[ifinds] = '<xsl:value-of select="generate-id()"/>';
601 ifinds++;
602 <xsl:if test="@type = 'regex'">
603 iregex_ll[iregex] = '<xsl:value-of select="generate-id()"/>';
604 iregex++;
605 </xsl:if>
606 </xsl:for-each>
607 <xsl:for-each select="mod:inline-find|mod:inline-action">
608 box[codes] = '<xsl:value-of select="generate-id()"/>';
609 codes_ll[codes] = '<xsl:value-of select="generate-id()"/>';
610 codes++;
611 <xsl:if test="name() = 'inline-action'">
612 <xsl:if test="@type = 'after-add'">
613 iaddafters_ll[iaddafters] = '<xsl:value-of select="generate-id()"/>';
614 iaddafters++;
615 </xsl:if>
616 <xsl:if test="@type = 'before-add'">
617 iaddbefores_ll[iaddbefores] = '<xsl:value-of select="generate-id()"/>';
618 iaddbefores++;
619 </xsl:if>
620 <xsl:if test="@type = 'replace-with'">
621 ireplacewiths_ll[ireplacewiths] = '<xsl:value-of select="generate-id()"/>';
622 ireplacewiths++;
623 </xsl:if>
624 <xsl:if test="@type = 'operation'">
625 iincrements_ll[iincrements] = '<xsl:value-of select="generate-id()"/>';
626 iincrements++;
627 </xsl:if>
628 </xsl:if>
629 </xsl:for-each>
630 </xsl:for-each>
631 </xsl:for-each>
632
633 <xsl:for-each select="mod:action-group/mod:diy-instructions">
634 box[codes] = '<xsl:value-of select="generate-id()" />';
635 codes_ll[codes] = '<xsl:value-of select="generate-id()"/>';
636 codes++;
637 </xsl:for-each>
638
639 var copies = 0;
640 var copies_ll = new Array();
641 <xsl:for-each select="mod:action-group/mod:copy/mod:file">
642 copies_ll[copies] = '<xsl:value-of select="generate-id()"/>';
643 copies++;
644 </xsl:for-each>
645
646 <xsl:text disable-output-escaping="yes">
647<![CDATA[
648// The following line from http://www.ryancooper.com/resources/keycode.asp
649document.onkeydown = mod_do_keypress;
650
651var host = "http://www.phpbb.com/mods/modx/i18n/";
652
653var enStrings = "h1=Installation Instructions for \n" +
654"V=Version \n" +
655"t=Title:\n" +
656"d=Description:\n" +
657"aV=Version:\n" +
658"mint=minutes\n" +
659"it=Installation Time:\n" +
660"il=Installation Level:\n" +
661"ile=Easy\n" +
662"ili=Intermediate\n" +
663"ila=Advanced\n" +
664"au=Author\n" +
665"aus=Authors\n" +
666"a-un=Username:\n" +
667"a-e=Email:\n" +
668"a-n=Name:\n" +
669"a-h=WWW:\n" +
670"fte=Files to Edit\n" +
671"icf=Included Files\n" +
672"icfn=No files have been included with this MOD.\n" +
673"dcl=Disclaimer\n" +
674"dclt=For security purposes, please check: <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a> for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a>\n" +
675"isp=English Support\n" +
676"ispt=English support can be obtained at <a href=\"http://www.phpbb.com/mods/\">http://www.phpbb.com/mods/</a> for released MODs.\n" +
677"ant=Author Notes\n" +
678"lic=License\n" +
679"lict=This MOD has been licensed under the following license:\n" +
680"ont=Other Notes\n" +
681"ontt1=Before adding this MOD to your forum, you should back up all files related to this MOD\n" +
682"ontt2=This MOD was designed for phpBB\n" +
683"ontt3= and may not function as stated on other phpBB versions. MODs for phpBB3.0 will <strong>not</strong> work on phpBB2.0 and vice versa.\n" +
684"onttq=This MOD is development quality. It is not recommended that you install it on a live forum.\n" +
685"sql=SQL\n" +
686"fca=File Copy\n" +
687"c-copy=Copy:\n" +
688"c-to=To:\n" +
689"cde-c=Code: \n" +
690"cde-sa=Select All\n" +
691"edts=Edits\n" +
692"edtt=Use your keyboard to navigate the code boxes. You may also hit '<em>s</em>' on your keyboard to go to the first code box.\n" +
693"opn=Open:\n" +
694"cm-cmt=Comments\n" +
695"fnd=Find\n" +
696"fndt=<strong>Tip:</strong> This may be a partial find and not the whole line.\n" +
697"rplw=Replace With\n" +
698"rplwt=<strong>Tip:</strong> Replace the preceding line(s) to find with the following lines.\n" +
699"aft=Add after\n" +
700"aftt=<strong>Tip:</strong> Add these lines on a new blank line after the preceding line(s) to find.\n" +
701"bef=Add before\n" +
702"beft=<strong>Tip:</strong> Add these lines on a new blank line before the preceding line(s) to find.\n" +
703"inc=Increment\n" +
704"inct=<strong>Tip:</strong> This allows you to alter integers. For help on what each operator means, click here.\n" +
705"ifnd=In-line Find\n" +
706"ifndt=<strong>Tip:</strong> This is a partial match of a line for in-line operations.\n" +
707"irplw=In-line Replace With\n" +
708"irplwt=\n" +
709"iaft=In-line Add after\n" +
710"iaftt=\n" +
711"ibef=In-line Add before\n" +
712"ibeft=\n" +
713"iinc=In-line Increment\n" +
714"iinct=<strong>Tip:</strong> This allows you to alter integers. For help on what each operator means, click here.\n" +
715"diy=DIY Instructions\n" +
716"diyt=These are manual instructions that cannot be performed automatically. You should follow these instructions carefully.\n" +
717"eom=Save all files. End of MOD.\n" +
718"eomt=You have finished the installation for this MOD. Upload all changed files to your website. If the installation went bad, simply restore your backed up files.\n" +
719"slg=Select Language : \n" +
720"dbms=Select Database Type : \n" +
721"foot=MOD UA XSLT File Copyright &#169; 2007 The phpBB Group, this MOD is copyright to the authors listed above.\n" +
722"regex=This find contains an advanced feature known as regular expressions, click here to learn more.\n" +
723"mhe-v= - Version \n" +
724"mh=MOD History\n" +
725"addtl-modx=Additional MODX Files\n" +
726"imn=This MOD has no additional MODX files.\n"+
727"atm=About this MOD";
728
729var currentLanguage = "en";
730var languagesLoaded = false;
731
732var arrClasCnt = new Array(
733 new Array('a-', authors, authors_ll),
734 new Array('c-', copies, copies_ll),
735 new Array('cm-', comments, comments_ll),
736 new Array('opn', opens, opens_ll),
737 new Array('cde-', codes, codes_ll),
738 new Array('fnd', finds, finds_ll),
739 new Array('regex', regex, regex_ll),
740 new Array('rplw', replacewiths, replacewiths_ll),
741 new Array('aft', addafters, addafters_ll),
742 new Array('bef', addbefores, addbefores_ll),
743 new Array('inc', increments, increments_ll),
744 new Array('ifnd', ifinds, ifinds_ll),
745 new Array('regex', iregex, iregex_ll),
746 new Array('irplw', ireplacewiths, ireplacewiths_ll),
747 new Array('iaft', iaddafters, iaddafters_ll),
748 new Array('ibef', iaddbefores, iaddbefores_ll),
749 new Array('iinc', iincrements, iincrements_ll),
750 new Array('mhe', mhes, mhes_ll));
751
752var languages = new Array('en');
753
754function startup()
755{
756 sql_dropdown();
757 change_dbms();
758 changeLanguage(currentLanguage);
759 document.getElementById('lang-selector').style.display = "block";
760}
761
762function changeLanguage(langCode)
763{
764 langCode = langCode.toLowerCase();
765 currentLanguage = langCode.split('-')[0];
766 if (currentLanguage.toLowerCase() != 'en') // if change, only include up to first dash
767 {
768 load_language();
769 xslLanguage(langCode);
770 return;
771 }
772 else
773 {
774 var texts = enStrings.split("\n");
775 applyLanguage(texts);
776 xslLanguage(langCode);
777 }
778}
779
780
781function load_languages()
782{
783 if (languagesLoaded)
784 {
785 return;
786 }
787 languagesLoaded = true;
788
789 $divname = document.getElementById('language');
790 var loadingItem = document.createElement('option');
791 $divname.appendChild(loadingItem);
792 loadingItem.innerHTML = 'Loading...';
793 $divname.remove(0);
794
795 $output = 'load_languages';
796 cachernd = parseInt(Math.random() * 99999999); // cache
797 send('', host + 'languages.txt?rnd=' + cachernd);
798}
799
800function load_language()
801{
802 $output = 'load_language';
803 cachernd = parseInt(Math.random() * 99999999); // cache
804 send('', host + currentLanguage + '.txt?rnd=' + cachernd);
805}
806
807/*****************
808* AJAX Functions *
809*****************/
810
811var $xmlhttp = http_object();
812var $finished = 0;
813var $send_queue = new Array();
814var $running = false;
815
816var $divname;
817var $newform;
818var $newurl;
819var $output;
820
821function http_object()
822{
823 if (window.XMLHttpRequest)
824 {
825 return new XMLHttpRequest();
826 }
827 else if (window.ActiveXObject)
828 {
829 return new ActiveXObject("Microsoft.XMLHTTP");
830 }
831}
832
833function send($action, $url, $form, $div, $clear)
834{
835 $newform = $form;
836 $newurl = $url;
837
838 $send_queue.push("handle_send($newurl, $newform)");
839
840 if (!$running)
841 {
842 run_ajax();
843 }
844
845 return;
846}
847
848function run_ajax()
849{
850 $running = true;
851 for ($i = 0; $i < $send_queue.length; $i++)
852 {
853 if ($xmlhttp.readyState == 4 || $xmlhttp.readyState == 0)
854 {
855 eval($send_queue[$i]);
856 }
857 else
858 {
859 $xmlhttp.onreadystatechange = check_state;
860 }
861 }
862}
863
864function check_state()
865{
866 if ($xmlhttp.readyState == 4 || $xmlhtt.readyState == 0)
867 {
868 eval($send_queue[$finished]);
869 }
870 else
871 {
872 $xmlhttp.onreadystatechange = check_state;
873 }
874}
875
876function handle_send($url, $f)
877{
878 if ($xmlhttp.readyState == 4 || $xmlhttp.readyState == 0)
879 {
880 $param = '';
881
882 try
883 {
884 netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
885 $allowed = true;
886 }
887 catch (e)
888 {}
889
890 try
891 {
892
893 $xmlhttp.open('POST', $url, true);
894 $xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
895 $xmlhttp.onreadystatechange = handle_return;
896 $xmlhttp.send($param);
897 }
898 catch (e)
899 {
900 $divname = document.getElementById('language');
901 var loadingItem = document.createElement('option');
902 $divname.appendChild(loadingItem);
903 loadingItem.innerHTML = 'Unavailable';
904 $divname.remove(0);
905 $divname.disabled = true;
906 }
907 }
908
909 return;
910}
911
912function handle_return()
913{
914 if ($xmlhttp.readyState == 4)
915 {
916 ajax_output($xmlhttp.responseText);
917
918 $finished++;
919
920 if ($send_queue[$finished])
921 {
922 check_state();
923 }
924 else
925 {
926 $send_queue = new Array();
927 $finished = 0;
928 $running = false;
929 }
930 }
931 return;
932}
933
934/*********************
935* END AJAX Functions *
936*********************/
937
938function ajax_output($response)
939{
940 switch ($output)
941 {
942 case 'load_language':
943 var texts = $response.replace("\r\n", "\n").split("\n");
944 applyLanguage(texts);
945 break;
946
947 case 'load_languages':
948 languages = $response.replace("\r", "").split("\n");
949
950 var i, l, s = 0;
951 documentLanguages.sort();
952 for (i in languages)
953 {
954 languages[i] = languages[i].replace("\r", "");
955 languages[i] = languages[i].split("=");
956
957 var langItem = document.createElement('option');
958 $divname.appendChild(langItem);
959 langItem.value = languages[i][0];
960 var iso = languages[i][0].split('-');
961 langItem.innerHTML = languages[i][1];
962 if (iso.length == 2)
963 {
964 langItem.innerHTML += ' [' + iso[1].toUpperCase() + ']';
965 }
966 if (languages[i][0] == currentLanguage)
967 {
968 $divname.selectedIndex = s;
969 $divname.text = languages[i][1];
970 }
971
972 s++;
973 }
974
975 $divname.focus();
976 $divname.onchange =
977 function()
978 {
979 changeLanguage(this.value.replace(" ", ""));
980 };
981 $divname.remove(0);
982 break;
983 }
984
985}
986
987function xslLangEl(langCode, element)
988{
989 var i;
990 var currentEl = document.getElementById(element);
991 try
992 {
993 for (i in currentEl.childNodes)
994 {
995 try
996 {
997 split = currentEl.childNodes[i].lang.toLowerCase().split('-')[0];
998 if (currentEl.childNodes[i].lang.toLowerCase() == langCode.toLowerCase() || split == langCode.toLowerCase())
999 {
1000 currentEl.childNodes[i].style.display = '';
1001 if (currentEl.childNodes[i].firstChild && currentEl.childNodes[i].firstChild.className == 'link-group-lang')
1002 {
1003 currentEl.childNodes[i].firstChild.style.display = 'none';
1004 }
1005 }
1006 else
1007 {
1008 currentEl.childNodes[i].style.display = 'none';
1009 }
1010 }
1011 catch (o) {}
1012 }
1013 } catch (o) {}
1014}
1015
1016function xslLanguage(langCode)
1017{
1018 i18nedEls = new Array('title','description','author-notes','diy','link-group');
1019 var c, h;
1020 for (c in comments_ll)
1021 {
1022 i18nedEls.push('mod-comment[' + comments_ll[c] + ']');
1023 }
1024
1025 for (h in mhcls_ll)
1026 {
1027 i18nedEls.push('mhcl[' + mhcls_ll[h] + ']');
1028 }
1029
1030 // force to english of MODX if the MOD doesn't have a translation of the selected language
1031 if (!in_array(documentLanguages, langCode))
1032 {
1033 langCode = 'en';
1034 }
1035
1036 var i;
1037 for (i in i18nedEls)
1038 {
1039 xslLangEl(langCode, i18nedEls[i]);
1040 }
1041}
1042
1043function in_array(array, value, position)
1044{
1045 var i;
1046 for (i = 0; i < array.length; i++)
1047 {
1048 // Matches identical (===), not just similar (==).
1049 if (array[i] === value)
1050 {
1051 if (position)
1052 {
1053 return i;
1054 }
1055 else
1056 {
1057 return true;
1058 }
1059 }
1060 }
1061 return false;
1062};
1063
1064function applyLanguage(texts)
1065{
1066 var i = 0;
1067 for (i in texts)
1068 {
1069 var lang = texts[i].split("=");
1070 if (lang.length < 2)
1071 {
1072 continue;
1073 }
1074 try
1075 {
1076 var j;
1077 var jflag = false;
1078 for (j = 0; j < arrClasCnt.length; j++)
1079 {
1080 var sw = '-' + lang[0];
1081 if (sw.match('-' + arrClasCnt[j][0]))
1082 {
1083 var k;
1084 for (k = 0; k < arrClasCnt[j][2].length; k++)
1085 {
1086 try
1087 {
1088 document.getElementById('lang-' + lang[0] + '[' + arrClasCnt[j][2][k] + ']').innerHTML = lang[1];
1089 }
1090 catch (e){}
1091 }
1092 jflag = true;
1093 }
1094 }
1095 if (!jflag)
1096 {
1097 var p;
1098 var append = '';
1099 for (p = 1; p < lang.length; p++)
1100 {
1101 if (p > 1)
1102 {
1103 lang[p] = '=' + lang[p];
1104 }
1105 append += lang[p];
1106 }
1107 document.getElementById('lang-' + lang[0]).innerHTML = append;
1108 }
1109 }
1110 catch (o){}
1111 }
1112}
1113
1114function select_code(a)
1115{
1116 // Get ID of code block
1117 var e = a.parentNode.parentNode.getElementsByTagName('PRE')[0];
1118
1119 select_text(e.id);
1120}
1121
1122/* prosilver */
1123
1124var selectedElement = -1;
1125var boxes = box.length;
1126var pre_count = 0;
1127
1128function select_text(id)
1129{
1130 var o = document.getElementById(id);
1131 if(!o)
1132 {
1133 return;
1134 }
1135
1136 // Not IE
1137 if (window.getSelection)
1138 {
1139 var s = window.getSelection();
1140 // Safari
1141 if (s.setBaseAndExtent)
1142 {
1143 s.setBaseAndExtent(o, 0, o, o.innerText.length - 1);
1144 }
1145 // Firefox and Opera
1146 else
1147 {
1148 var r = document.createRange();
1149 r.selectNodeContents(o);
1150 s.removeAllRanges();
1151 s.addRange(r);
1152 }
1153 }
1154 // Some older browsers
1155 else if (document.getSelection)
1156 {
1157 var s = document.getSelection();
1158 var r = document.createRange();
1159 r.selectNodeContents(o);
1160 s.removeAllRanges();
1161 s.addRange(r);
1162 }
1163 // IE
1164 else if (document.selection)
1165 {
1166 var r = document.body.createTextRange();
1167 r.moveToElementText(o);
1168 r.select();
1169 }
1170
1171 for(x = 0; x < box.length; x++)
1172 {
1173 if (box[x] == id)
1174 {
1175 selectedElement = x;
1176 }
1177 }
1178
1179 return o;
1180}
1181
1182// function findPosY taken from http://www.quirksmode.org/js/findpos.html
1183function findPosY(obj)
1184{
1185 var curtop = 0;
1186 if (obj.offsetParent)
1187 {
1188 while (obj.offsetParent)
1189 {
1190 curtop += obj.offsetTop
1191 obj = obj.offsetParent;
1192 }
1193 }
1194 else if (obj.y)
1195 {
1196 curtop += obj.y;
1197 }
1198 return curtop;
1199}
1200
1201function selectNextBox()
1202{
1203 selectedElement += 1;
1204 if (selectedElement >= boxes)
1205 {
1206 selectedElement = 0;
1207 }
1208 obj = select_text(box[selectedElement]);
1209 window.scrollTo(0, findPosY(obj) - 100);
1210}
1211
1212function selectPrevBox()
1213{
1214 selectedElement -= 1;
1215 if (selectedElement < 0)
1216 {
1217 selectedElement = boxes - 1;
1218 }
1219 obj = select_text(box[selectedElement]);
1220 window.scrollTo(0, findPosY(obj) - 100);
1221}
1222
1223function selectFirstBox()
1224{
1225 selectedElement = 0;
1226 obj = select_text(box[selectedElement]);
1227 window.scrollTo(0, findPosY(obj) - 100);
1228}
1229
1230function mod_do_keypress(e)
1231{
1232 /* section from w3 schools starts here http://www.w3schools.com/jsref/jsref_onkeypress.asp */
1233 var keynum;
1234 /* section from w3 schools ends here */
1235
1236 // The following line from http://www.ryancooper.com/resources/keycode.asp
1237 if (window.event)
1238 {
1239 keynum = window.event.keyCode;
1240 }
1241 else if (e)
1242 {
1243 keynum = e.which;
1244 }
1245
1246 switch (keynum)
1247 {
1248 // t / down keys
1249 case 84:
1250 case 40:
1251 selectNextBox();
1252 return false;
1253 break;
1254 //up key
1255 case 38:
1256 selectPrevBox();
1257 return false;
1258 break;
1259 case 83:
1260 case 37:
1261 selectFirstBox();
1262 return false;
1263 break;
1264 }
1265 return true; // true allows browser to take care of any further key press combinations such as (ctrl|cmd) + c
1266}
1267
1268/**
1269 * Update the MODX with the selected dbms
1270 *
1271 */
1272function change_dbms($form)
1273{
1274 $type = new Array();
1275 $type[0] = '';
1276 $type[1] = 'mysql';
1277 $type[2] = 'mysql_41';
1278 $type[3] = 'mysql_40';
1279 $type[4] = 'firebird';
1280 $type[5] = 'mssql';
1281 $type[6] = 'oracle';
1282 $type[7] = 'postgres';
1283 $type[8] = 'sqllite';
1284
1285 $exists = 0;
1286 $tags = document.getElementsByTagName('dbms');
1287
1288 if ($form)
1289 {
1290 sql_display($form.value);
1291 }
1292 else
1293 {
1294 if ($tags.length > 0)
1295 {
1296 for ($i = 0; $i < $tags.length; $i++)
1297 {
1298 $dbms = $tags[$i].attributes['type'].nodeValue;
1299
1300 if (!$dbms)
1301 {
1302 continue;
1303 }
1304
1305 $position = in_array($type, $dbms, true);
1306 if ($position !== false)
1307 {
1308 if ($exists > 0 && $position < $exists)
1309 {
1310 $exists = $position;
1311 }
1312 else if ($exists == 0)
1313 {
1314 $exists = $position;
1315 }
1316 }
1317 }
1318
1319 if ($exists > 0)
1320 {
1321 sql_display($type[$exists]);
1322 }
1323 }
1324 }
1325
1326 return;
1327}
1328
1329/**
1330 * display the dbms specific sql data with the dbms we have selected
1331 *
1332 */
1333function sql_display($value)
1334{
1335 $tags = document.getElementsByTagName('dbms');
1336
1337 // show the dbms of type we have selected, hide all others except for non dbms specific
1338 for ($i = 0; $i < $tags.length; $i++)
1339 {
1340 $dbms = $tags[$i].attributes['type'].nodeValue;
1341
1342 if (!$dbms)
1343 {
1344 continue;
1345 }
1346
1347 if ($dbms == $value)
1348 {
1349 $tags[$i].style.display = '';
1350 }
1351 else
1352 {
1353 $tags[$i].style.display = 'none';
1354 }
1355 }
1356}
1357
1358/**
1359 * load the sql dropdown with all the database types supported by this MODX file
1360 *
1361 */
1362function sql_dropdown()
1363{
1364 var $dbms_element = document.getElementById('dbms');
1365 var $dbms_selector = document.getElementById('dbms-selector');
1366 if (!$dbms_element || !$dbms_selector)
1367 {
1368 return;
1369 }
1370
1371 $type = new Array();
1372 $type[0] = 'mysql';
1373 $type[1] = 'mysql_41';
1374 $type[2] = 'mysql_40';
1375 $type[3] = 'firebird';
1376 $type[4] = 'mssql';
1377 $type[5] = 'oracle';
1378 $type[6] = 'postgres';
1379 $type[7] = 'sqllite';
1380
1381 $options = new Array();
1382 $tags = document.getElementsByTagName('dbms');
1383
1384 // show the dbms of type we have selected, hide all others except for non dbms specific
1385 for ($i = 0; $i < $tags.length; $i++)
1386 {
1387 $dbms = $tags[$i].attributes['type'].nodeValue;
1388 $position = in_array($type, $dbms, true);
1389
1390 if (!$dbms)
1391 {
1392 continue;
1393 }
1394 else if ($position !== false)
1395 {
1396 $options[$position] = '<option value=' + $dbms + '>' + $dbms + '</option>';
1397 }
1398 }
1399
1400 if ($options.length > 0)
1401 {
1402 $selects = '';
1403
1404 // sort options and output in the correct order
1405 for ($i = 0; $i < $type.length; $i++)
1406 {
1407 if ($options[$i])
1408 {
1409 $selects += $options[$i];
1410 }
1411 }
1412 $dbms_element.innerHTML = $selects;
1413 }
1414 else
1415 {
1416 $dbms_selector.style.display = 'none';
1417 }
1418}
1419 //-->]]>
1420 </xsl:text>
1421 </script>
1422 </head>
1423 <body class="ltr" onload="startup()">
1424 <div id="debug"></div>
1425 <div id="wrap">
1426 <div id="page-header">
1427 <h1><span id="lang-h1">Installation Instructions for </span>'<xsl:value-of select="$title" />' <span id="lang-V">Version </span><xsl:value-of select="$version" /></h1>
1428 <form method="post" action="" id="lang-selector" style="display: none;">
1429 <fieldset class="nobg">
1430 <label for="language"> <span id="lang-slg">Select Language:</span> </label>
1431 <select id="language" name="language" onclick="load_languages()">
1432 <option value="en" selected="selected">English</option>
1433 </select>
1434 </fieldset>
1435 </form>
1436 </div>
1437 <div id="page-body">
1438 <div id="acp">
1439 <div class="panel"> <span class="corners-top"> <span></span> </span>
1440 <div id="content">
1441 <div id="main">
1442 <xsl:for-each select="mod:header">
1443 <xsl:call-template name="give-header">
1444 </xsl:call-template>
1445 </xsl:for-each>
1446 <hr />
1447 <fieldset class="permissions" id="Fieldset1">
1448 <xsl:for-each select="mod:action-group">
1449 <xsl:call-template name="give-actions">
1450 </xsl:call-template>
1451 </xsl:for-each>
1452 <hr />
1453 <div class="endMOD">
1454 <h2 id="lang-eom">Save all files. End of MOD.</h2>
1455 <p id="lang-eomt">You have finished the installation for this MOD. Upload all changed files to your website. If the installation went bad, simply restore your backed up files.</p>
1456 </div>
1457 </fieldset>
1458 </div>
1459 </div>
1460 <span class="corners-bottom"> <span></span> </span> </div>
1461 </div>
1462 </div>
1463 <div id="page-footer">
1464 <p class="copyright" style="text-align: center; font-size: 10px;" id="lang-foot">MOD UA XSLT File Copyright &#169; 2008 The phpBB Group. This MOD is copyright to the authors listed above.</p>
1465 </div>
1466 </div>
1467 </body>
1468 </html>
1469 </xsl:template>
1470 <xsl:template name="give-header">
1471 <fieldset>
1472 <legend id="lang-atm">About this MOD</legend>
1473 <div class="mod-about">
1474 <span class="corners-top"><span></span></span>
1475 <dl>
1476 <dt id="lang-t">Title:</dt>
1477 <dd>
1478 <xsl:if test="count(mod:title) > 1">
1479 <dl id="title" class="nopadding">
1480 <xsl:for-each select="mod:title">
1481 <dt><xsl:value-of select="@lang" /></dt>
1482 <dd style='white-space:pre;' lang="{@lang}">
1483 <p><xsl:value-of select="current()" /></p>
1484 </dd>
1485 </xsl:for-each>
1486 </dl>
1487 </xsl:if>
1488 <xsl:if test="count(mod:title) = 1">
1489 <p lang="{@lang}" style='white-space:pre;'><xsl:value-of select="mod:title" /></p>
1490 </xsl:if>
1491 </dd>
1492 <dt id="lang-d">Description:</dt>
1493 <dd>
1494 <xsl:if test="count(mod:description) > 1">
1495 <dl id="description" class="nopadding">
1496 <xsl:for-each select="mod:description">
1497 <dt><xsl:value-of select="@lang" /></dt>
1498 <dd lang="{@lang}">
1499 <p>
1500 <xsl:call-template name="add-line-breaks">
1501 <xsl:with-param name="string">
1502 <xsl:value-of select="current()" />
1503 </xsl:with-param>
1504 </xsl:call-template>
1505 </p>
1506 </dd>
1507 </xsl:for-each>
1508 </dl>
1509 </xsl:if>
1510 <xsl:if test="count(mod:description) = 1">
1511 <p lang="{@lang}">
1512 <xsl:call-template name="add-line-breaks">
1513 <xsl:with-param name="string">
1514 <xsl:value-of select="mod:description" />
1515 </xsl:with-param>
1516 </xsl:call-template>
1517 </p>
1518 </xsl:if>
1519 </dd>
1520 <dt id="lang-aV">Version:</dt>
1521 <dd class="mod-about">
1522 <p>
1523 <xsl:for-each select="mod:mod-version">
1524 <xsl:value-of select="$version" />
1525 </xsl:for-each>
1526 </p>
1527 </dd>
1528 <xsl:for-each select="mod:installation">
1529 <xsl:call-template name="give-installation"></xsl:call-template>
1530 </xsl:for-each>
1531 </dl>
1532 <span class="corners-bottom"><span></span></span>
1533 </div>
1534 </fieldset>
1535 <fieldset>
1536 <xsl:for-each select="mod:author-group">
1537 <xsl:if test="count(mod:author) > 1">
1538 <legend id="lang-aus">Authors</legend>
1539 </xsl:if>
1540 <xsl:if test="count(mod:author) = 1">
1541 <legend id="lang-au">Author</legend>
1542 </xsl:if>
1543 <xsl:call-template name="give-authors"></xsl:call-template>
1544 </xsl:for-each>
1545 </fieldset>
1546 <h3 id="lang-fte">Files to Edit</h3>
1547 <xsl:for-each select="../mod:action-group">
1548 <xsl:call-template name="give-files-to-edit"></xsl:call-template>
1549 </xsl:for-each>
1550 <h3 id="lang-icf">Included Files</h3>
1551 <xsl:if test="count(../mod:action-group/mod:copy/mod:file) = 0">
1552 <p id="lang-icfn">No files have been included with this MOD.</p>
1553 </xsl:if>
1554 <xsl:for-each select="../mod:action-group">
1555 <xsl:call-template name="give-files-included"></xsl:call-template>
1556 </xsl:for-each>
1557 <h3 id="lang-addtl-modx">Additional MODX Files</h3>
1558 <xsl:if test="count(mod:link-group/mod:link) = 0">
1559 <p id="lang-imn">This MOD has no additional MODX files.</p>
1560 </xsl:if>
1561 <ul class="link-group" id="link-group">
1562 <xsl:for-each select="mod:link-group/mod:link">
1563 <li lang="{@lang}"><span class="link-group-lang"><xsl:value-of select="@lang" />&nbsp;</span><strong style="text-transform: capitalize;"><xsl:value-of select="@type" />:</strong>&nbsp;<a href="{@href}"><xsl:value-of select="current()" /></a></li>
1564 </xsl:for-each>
1565 </ul>
1566 <hr />
1567 <div id="modDisclaimer">
1568 <h3 id="lang-dcl">Disclaimer</h3>
1569 <div class="mod-about">
1570 <span class="corners-top"><span></span></span>
1571 <div class="mod-about-padding">
1572 <p><span id="lang-dclt">For security purposes, please check: <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a>for the latest version of this MOD. Downloading this MOD from other sites could cause malicious code to enter into your phpBB Forum. As such, phpBB will not offer support for MODs not offered in our MODs database, located at: <a href="http://www.phpbb.com/mods/">http://www.phpbb.com/mods/</a></span></p>
1573 </div>
1574 <span class="corners-bottom"><span></span></span>
1575 </div>
1576 </div>
1577 <h3 id="lang-ant">Author Notes</h3>
1578 <div class="mod-about">
1579 <span class="corners-top"><span></span></span>
1580 <xsl:if test="count(mod:author-notes) > 1">
1581 <dl id="author-notes">
1582 <xsl:for-each select="mod:author-notes">
1583 <dt><xsl:value-of select="@lang" /></dt>
1584 <dd lang="{@lang}">
1585 <xsl:call-template name="add-line-breaks">
1586 <xsl:with-param name="string">
1587 <xsl:value-of select="current()" />
1588 </xsl:with-param>
1589 </xsl:call-template>
1590 </dd>
1591 </xsl:for-each>
1592 </dl>
1593 </xsl:if>
1594 <xsl:if test="count(mod:author-notes) = 1">
1595 <div class="mod-about-padding">
1596 <xsl:call-template name="add-line-breaks">
1597 <xsl:with-param name="string">
1598 <xsl:value-of select="mod:author-notes" />
1599 </xsl:with-param>
1600 </xsl:call-template>
1601 </div>
1602 </xsl:if>
1603 <span class="corners-bottom"><span></span></span>
1604 </div>
1605 <div>
1606 <xsl:for-each select="mod:history">
1607 <xsl:call-template name="give-mod-history"></xsl:call-template>
1608 </xsl:for-each>
1609 <h3 id="lang-lic">License</h3>
1610 <div class="mod-about">
1611 <span class="corners-top"><span></span></span>
1612 <div class="mod-about-padding">
1613 <p><span id="lang-lict">This MOD has been licensed under the following license:</span></p>
1614 <p style='white-space:pre;'><a href="license.txt"><xsl:value-of select="mod:license" /></a></p>
1615 </div>
1616 <span class="corners-bottom"><span></span></span>
1617 </div>
1618 <h3 id="lang-ont">Other Notes</h3>
1619 <div class="mod-about" id="other-notes">
1620 <span class="corners-top"><span></span></span>
1621 <div class="mod-about-padding">
1622 <p><span id="lang-ontt1">Before adding this MOD to your forum, you should back up all files related to this MOD</span></p>
1623 <p><span id="lang-ontt2">This MOD was designed for phpBB</span>&nbsp;<xsl:value-of select="mod:installation/mod:target-version/mod:target-primary" /><span id="lang-ontt3"> and may not function as stated on other phpBB versions. MODs for phpBB3.0 will <strong>not</strong> work on phpBB2.0 and vice versa.</span></p>
1624 <xsl:for-each select="./mod:mod-version">
1625 <xsl:if test="substring(current(), 3, 1) mod 2 != 0 or substring(current(), 0, 1) = 0">
1626 <p><strong class="red"><span id="lang-onttq">This MOD is development quality. It is not recommended that you install it on a live forum.</span></strong></p>
1627 </xsl:if>
1628 </xsl:for-each>
1629 </div>
1630 <span class="corners-bottom"><span></span></span>
1631 </div>
1632 <div id="mod-support">
1633 <h4><span id="lang-isp"></span></h4>
1634 <div class="mod-about">
1635 <span class="corners-top"><span></span></span>
1636 <div class="mod-about-padding">
1637 <p><span id="lang-ispt"></span></p>
1638 </div>
1639 <span class="corners-bottom"><span></span></span>
1640 </div>
1641 </div>
1642 </div>
1643 </xsl:template>
1644 <xsl:template name="give-authors">
1645 <xsl:for-each select="mod:author">
1646 <div class="mod-about">
1647 <span class="corners-top"><span></span></span>
1648 <xsl:call-template name="give-author"></xsl:call-template>
1649 <span class="corners-bottom"><span></span></span>
1650 </div>
1651 </xsl:for-each>
1652 </xsl:template>
1653 <xsl:template name="give-author">
1654 <dl class="author-info">
1655 <dt id="lang-a-un[{generate-id()}]">Username:</dt>
1656 <dd><a href="http://www.phpbb.com/phpBB/profile.php?mode=viewprofile&amp;un={translate(mod:username, ' ', '+')}"><xsl:value-of select="mod:username" /></a></dd>
1657 <xsl:if test="mod:email != 'N/A' and mod:email != 'n/a' and mod:email != ''">
1658 <dt id="lang-a-e[{generate-id()}]">Email:</dt>
1659 <dd><a href="mailto:{mod:email}"><xsl:value-of select="mod:email" /></a></dd>
1660 </xsl:if>
1661 <dt id="lang-a-n[{generate-id()}]">Name:</dt>
1662 <dd><xsl:value-of select="mod:realname" /></dd>
1663 <xsl:if test="mod:homepage != 'N/A' and mod:homepage != 'n/a' and mod:homepage!=''">
1664 <dt id="lang-a-h[{generate-id()}]">WWW:</dt>
1665 <dd><a href="{mod:homepage}"><xsl:value-of select="mod:homepage" /></a></dd>
1666 </xsl:if>
1667 <xsl:if test="count(mod:contributions) > 0 and count(mod:contributions/mod:status) > 0">
1668 <dt id="lang-a-c[{generate-id()}]">Contributions:</dt>
1669 <dd>
1670 <xsl:if test="count(mod:contributions/mod:status) > 0">
1671 <xsl:value-of select="mod:contributions/mod:status" /><br />
1672 From:<xsl:value-of select="mod:contributions/mod:from" /><br />
1673 To:<xsl:value-of select="mod:contributions/mod:to" />
1674 </xsl:if>
1675 </dd>
1676 </xsl:if>
1677 </dl>
1678 <br />
1679 </xsl:template>
1680 <xsl:template name="give-installation">
1681 <dt id="lang-il">Installation Level:</dt>
1682 <dd class="mod-about">
1683 <div class="inner">
1684 <xsl:if test="mod:level='easy'">
1685 <p id="lang-ile">Easy</p>
1686 </xsl:if>
1687 <xsl:if test="mod:level='intermediate'">
1688 <p id="lang-ili">Intermediate</p>
1689 </xsl:if>
1690 <xsl:if test="mod:level='advanced'">
1691 <p id="lang-ila">Advanced</p>
1692 </xsl:if>
1693 </div>
1694 </dd>
1695 <dt id="lang-it">Installation Time:</dt>
1696 <dd class="mod-about">
1697 <div class="inner">
1698 <p>~<xsl:value-of select="floor(mod:time div 60)" /><span id="lang-mint">minutes</span></p>
1699 </div>
1700 </dd>
1701 </xsl:template>
1702 <xsl:template name="give-mod-history">
1703 <xsl:if test="count(mod:entry) > 0">
1704 <fieldset>
1705 <legend id="lang-mh">MOD History</legend>
1706 <xsl:for-each select="mod:entry">
1707 <xsl:call-template name="give-history-entry"></xsl:call-template>
1708 </xsl:for-each>
1709 </fieldset>
1710 </xsl:if>
1711 </xsl:template>
1712 <xsl:template name="give-history-entry">
1713 <div class="mod-about">
1714 <span class="corners-top"><span></span></span>
1715 <dl class="mod-history">
1716 <dt>
1717 <p><strong><xsl:value-of select="substring(mod:date,1,10)" /><span id="lang-mhe-v[{generate-id()}]"> - Version</span>
1718 <xsl:for-each select="mod:rev-version">
1719 <xsl:value-of select="current()" />
1720 </xsl:for-each>
1721 </strong></p>
1722 </dt>
1723 <dd><br clear="all" />
1724 <xsl:if test="count(mod:changelog) > 1">
1725 <dl id="mhcl[{generate-id()}]">
1726 <xsl:for-each select="mod:changelog">
1727 <xsl:call-template name="give-history-entry-changelog"></xsl:call-template>
1728 </xsl:for-each>
1729 </dl>
1730 </xsl:if>
1731 <xsl:if test="count(mod:changelog) = 1">
1732 <xsl:for-each select="mod:changelog">
1733 <xsl:call-template name="give-history-entry-changelog-single"></xsl:call-template>
1734 </xsl:for-each>
1735 </xsl:if>
1736 </dd>
1737 </dl>
1738 <span class="corners-bottom"><span></span></span>
1739 </div>
1740 </xsl:template>
1741 <xsl:template name="give-history-entry-changelog">
1742 <dt><xsl:value-of select="@lang" /></dt>
1743 <dd lang="{@lang}">
1744 <ul>
1745 <xsl:for-each select="mod:change">
1746 <li>
1747 <p><xsl:value-of select="current()" /></p>
1748 </li>
1749 </xsl:for-each>
1750 </ul>
1751 </dd>
1752 </xsl:template>
1753 <xsl:template name="give-history-entry-changelog-single">
1754 <ul>
1755 <xsl:for-each select="mod:change">
1756 <li>
1757 <p><xsl:value-of select="current()" /></p>
1758 </li>
1759 </xsl:for-each>
1760 </ul>
1761 </xsl:template>
1762 <xsl:template name="give-files-to-edit">
1763 <ul>
1764 <xsl:for-each select="mod:open">
1765 <xsl:call-template name="give-file"></xsl:call-template>
1766 </xsl:for-each>
1767 </ul>
1768 </xsl:template>
1769 <xsl:template name="give-files-included">
1770 <ul>
1771 <xsl:for-each select="mod:copy">
1772 <xsl:call-template name="give-file-copy"></xsl:call-template>
1773 </xsl:for-each>
1774 </ul>
1775 </xsl:template>
1776 <xsl:template name="give-file">
1777 <li><xsl:value-of select="@src" /><xsl:if test="position()!=last()">,</xsl:if></li>
1778 </xsl:template>
1779 <xsl:template name="give-file-copy">
1780 <xsl:for-each select="mod:file">
1781 <li><xsl:value-of select="@from" />
1782 <xsl:if test="position()!=last()">,
1783 </xsl:if>
1784 </li>
1785 </xsl:for-each>
1786 </xsl:template>
1787
1788 <xsl:template name="give-actions">
1789 <xsl:if test="count(mod:sql) > 0">
1790 <form method="post" action="" id="dbms-selector">
1791 <fieldset class="nobg">
1792 <label for="dbms"> <span id="lang-dbms">Select Database Type:</span> </label>
1793 <select id="dbms" name="dbms" onchange="change_dbms(this)">
1794 <option value="mysql_41" selected="selected">MySQL 41</option>
1795 <option value="mysql_40">MySQL 40</option>
1796 <option value="firebird">Firebird</option>
1797 <option value="mssql">MSSQL</option>
1798 <option value="oracle">Oracle</option>
1799 <option value="postgres">Postgres</option>
1800 <option value="sqllite">SQLLite</option>
1801 </select>
1802 </fieldset>
1803 </form>
1804 <h2 id="lang-sql">SQL</h2>
1805 <div id="sql" class="mod-about">
1806 <span class="corners-top"><span></span></span>
1807 <xsl:for-each select="mod:sql">
1808 <xsl:call-template name="give-sql"></xsl:call-template>
1809 </xsl:for-each>
1810 <span class="corners-bottom"><span></span></span></div>
1811 </xsl:if>
1812 <xsl:if test="count(mod:copy) > 0">
1813 <xsl:for-each select="mod:copy">
1814 <xsl:call-template name="give-filez"></xsl:call-template>
1815 </xsl:for-each>
1816 </xsl:if>
1817 <xsl:if test="count(mod:open) > 0">
1818 <h2 id="lang-edts">Edits</h2>
1819 <p><span class="key">s</span><span class="key">↑</span><span class="key">↓</span></p>
1820 <p><span id="lang-edtt">Use your keyboard to navigate the code boxes. You may also hit '<em>s</em>' on your keyboard to go to the first code box.</span></p>
1821 <div id="edits">
1822 <div class="inner">
1823 <xsl:for-each select="mod:open">
1824 <xsl:call-template name="give-fileo"></xsl:call-template>
1825 </xsl:for-each>
1826 </div>
1827 </div>
1828 </xsl:if>
1829 <xsl:call-template name="give-manual"></xsl:call-template>
1830 </xsl:template>
1831 <xsl:template name="give-sql">
1832 <dbms type="{@dbms}">
1833 <div class="content">
1834 <xsl:if test="@dbms != ''">
1835 <xsl:value-of select="@dbms" />:
1836 </xsl:if>
1837 <div class="codebox">
1838 <div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select All</span></a></div>
1839 <div class="codePre">
1840 <pre id="{generate-id()}"><xsl:value-of select="current()" /></pre>
1841 </div>
1842 </div>
1843 </div>
1844 </dbms>
1845 </xsl:template>
1846 <xsl:template name="give-manual">
1847 <xsl:if test="count(mod:diy-instructions) > 0">
1848 <h2 id="lang-diy">DIY Instructions</h2>
1849 <div class="mod-about">
1850 <span class="corners-top"><span></span></span>
1851 <div class="mod-about-padding">
1852 <p><span id="lang-diyt">These are manual instructions that cannot be performed automatically. You should follow these instructions carefully.</span></p>
1853 </div>
1854 <div id="diy">
1855 <xsl:for-each select="mod:diy-instructions">
1856 <div lang="{@lang}" style="margin:0;">
1857 <div class="content">
1858 <div class="codebox">
1859 <div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select All</span></a></div>
1860 <div class="codePre">
1861 <pre id="{generate-id()}"><xsl:value-of select="current()" /></pre>
1862 </div>
1863 </div>
1864 </div>
1865 </div>
1866 </xsl:for-each>
1867 </div>
1868 <span class="corners-bottom"><span></span></span>
1869 </div>
1870 </xsl:if>
1871 </xsl:template>
1872 <xsl:template name="give-fileo">
1873 <div class="mod-about"><span class="corners-top"><span></span></span>
1874 <div class="editFile">
1875 <h3><span id="lang-opn[{generate-id()}]">Open:</span>&nbsp;<xsl:value-of select="@src" /></h3>
1876 <xsl:for-each select="mod:edit">
1877 <div class="mod-edit">
1878 <xsl:if test="count(mod:comment) > 0">
1879 <div class="mod-comment">
1880 <h4 id="lang-cm-cmt[{generate-id()}]">Comments</h4>
1881 <dl id="mod-comment[{generate-id()}]">
1882 <xsl:for-each select="mod:comment">
1883 <dt><span>
1884 <xsl:if test="count(../mod:comment) > 1">
1885 <xsl:value-of select="@lang" />
1886 </xsl:if>
1887 </span></dt>
1888 <dd lang="{@lang}"><xsl:value-of select="current()" /></dd>
1889 </xsl:for-each>
1890 </dl>
1891 </div>
1892 </xsl:if>
1893 <xsl:for-each select="mod:find|mod:action|mod:inline-edit">
1894 <xsl:if test="name() = 'find'">
1895 <h4 id="lang-fnd[{generate-id()}]">Find</h4>
1896 <p><span id="lang-fndt[{generate-id()}]"><strong>Tip:</strong>This may be a partial find and not the whole line.</span>
1897 <xsl:if test="@type = 'regex'">
1898 <br />
1899 <em id="lang-regex[{generate-id()}]">This find contains an advanced feature known as regular expressions, click here to learn more.</em>
1900 </xsl:if>
1901 </p>
1902 <div class="codebox">
1903 <div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select All</span></a></div>
1904 <div class="codePre">
1905 <pre id="{generate-id()}"><xsl:value-of select="current()" /></pre>
1906 </div>
1907 </div>
1908 </xsl:if>
1909 <xsl:if test="name() = 'action'">
1910 <xsl:if test="@type = 'after-add'">
1911 <h4 id="lang-aft[{generate-id()}]">Add after</h4>
1912 <p><span id="lang-aftt[{generate-id()}]"><strong>Tip:</strong>Add these lines on a new blank line after the preceding line(s) to find.</span></p>
1913 </xsl:if>
1914 <xsl:if test="@type = 'before-add'">
1915 <h4 id="lang-bef[{generate-id()}]">Add before</h4>
1916 <p><span id="lang-beft[{generate-id()}]"><strong>Tip:</strong>Add these lines on a new blank line before the preceding line(s) to find.</span></p>
1917 </xsl:if>
1918 <xsl:if test="@type = 'replace-with'">
1919 <h4 id="lang-rplw[{generate-id()}]">Replace With</h4>
1920 <p><span id="lang-rplwt[{generate-id()}]"><strong>Tip:</strong>Replace the preceding line(s) to find with the following lines.</span></p>
1921 </xsl:if>
1922 <xsl:if test="@type = 'operation'">
1923 <h4 id="lang-inc[{generate-id()}]">Increment</h4>
1924 <p><span id="lang-inct[{generate-id()}]"><strong>Tip:</strong>This allows you to alter integers. For help on what each operator means, click here.</span></p>
1925 </xsl:if>
1926 <div class="codebox">
1927 <div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select All</span></a></div>
1928 <div class="codePre">
1929 <pre id="{generate-id()}"><xsl:value-of select="current()" /></pre>
1930 </div>
1931 </div>
1932 </xsl:if>
1933 <xsl:if test="name() = 'inline-edit'">
1934 <div class="mod-inlineedit">
1935 <xsl:for-each select="mod:inline-find|mod:inline-action|mod:inline-comment">
1936 <xsl:if test="name() = 'inline-find'">
1937 <h5 id="lang-ifnd[{generate-id()}]">In-line Find</h5>
1938 <p><span id="lang-ifndt[{generate-id()}]"><strong>Tip:</strong>This is a partial match of a line for in-line operations.</span>
1939 <xsl:if test="@type = 'regex'">
1940 <br />
1941 <em id="lang-regex[{generate-id()}]">This find contains an advanced feature known as regular expressions, click here to learn more.</em>
1942 </xsl:if>
1943 </p>
1944 <div class="codebox">
1945 <div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select All</span></a></div>
1946 <div class="codePre">
1947 <pre id="{generate-id()}"><xsl:value-of select="current()" /></pre>
1948 </div>
1949 </div>
1950 </xsl:if>
1951 <xsl:if test="name() = 'inline-action'">
1952 <xsl:if test="@type = 'after-add'">
1953 <h5 id="lang-iaft[{generate-id()}]">In-line Add after</h5>
1954 <p><span id="lang-iaftt[{generate-id()}]"></span></p>
1955 </xsl:if>
1956 <xsl:if test="@type = 'before-add'">
1957 <h5 id="lang-ibef[{generate-id()}]">In-line Add before</h5>
1958 <p><span id="lang-ibeft[{generate-id()}]"></span></p>
1959 </xsl:if>
1960 <xsl:if test="@type = 'replace-with'">
1961 <h5 id="lang-irplw[{generate-id()}]">In-line Replace With</h5>
1962 <p><span id="lang-irplwt[{generate-id()}]"></span></p>
1963 </xsl:if>
1964 <xsl:if test="@type = 'operation'">
1965 <h5 id="lang-iinc[{generate-id()}]">In-line Increment</h5>
1966 <p><span id="lang-iinct[{generate-id()}]"><strong>Tip:</strong>This allows you to alter integers. For help on what each operator means, click here.</span></p>
1967 </xsl:if>
1968 <div class="codebox">
1969 <div class="codeHead"><span id="lang-cde-c[{generate-id()}]">Code:</span><a href="#" onclick="select_code(this); return false;" class="codeSelect"><span id="lang-cde-sa[{generate-id()}]">Select All</span></a></div>
1970 <div class="codePre">
1971 <pre id="{generate-id()}"><xsl:value-of select="current()" /></pre>
1972 </div>
1973 </div>
1974 </xsl:if>
1975 <xsl:if test="name() = 'inline-comment'">
1976 <dl id="comment[{generate-id()}]">
1977 <dt><span id="lang-cm-cmt[{generate-id()}]">Comments</span>&nbsp;<span><xsl:value-of select="@lang" /></span></dt>
1978 <dd lang="{@lang}"><xsl:value-of select="current()" /></dd>
1979 </dl>
1980 </xsl:if>
1981 </xsl:for-each>
1982 </div>
1983 </xsl:if>
1984 </xsl:for-each>
1985 </div>
1986 </xsl:for-each>
1987 </div>
1988 <span class="corners-bottom"><span></span></span></div>
1989 </xsl:template>
1990 <xsl:template name="give-filez">
1991 <h2 id="lang-fca">File Copy</h2>
1992 <ol id="file-copy">
1993 <xsl:for-each select="mod:file">
1994 <li><dl>
1995 <dt><span id="lang-c-copy[{generate-id()}]">Copy:</span>&nbsp;<xsl:value-of select="@from" /></dt>
1996 <dd><span id="lang-c-to[{generate-id()}]">To:</span>&nbsp;<xsl:value-of select="@to" /></dd>
1997 </dl>
1998 </li>
1999 </xsl:for-each>
2000 </ol>
2001 </xsl:template>
2002 <!-- add-line-breaks borrowed from http://www.stylusstudio.com/xsllist/200103/post40180.html -->
2003 <xsl:template name="add-line-breaks">
2004 <xsl:param name="string" select="." />
2005 <xsl:choose>
2006 <xsl:when test="contains($string, '&#xA;')">
2007 <xsl:value-of select="substring-before($string, '&#xA;')" /><br />
2008 <xsl:call-template name="add-line-breaks">
2009 <xsl:with-param name="string" select="substring-after($string, '&#xA;')" /></xsl:call-template>
2010 </xsl:when>
2011 <xsl:otherwise>
2012 <xsl:value-of select="$string" />
2013 </xsl:otherwise>
2014 </xsl:choose>
2015 </xsl:template>
2016</xsl:stylesheet> \ No newline at end of file