summary refs log tree commit diff stats
path: root/theme/admin
diff options
context:
space:
mode:
authorStarla Insigna <hatkirby@fourisland.com>2009-08-13 17:46:09 -0400
committerStarla Insigna <hatkirby@fourisland.com>2009-08-13 17:46:09 -0400
commitb5736e3ad3830fa732dcbd1a518ec3dd6ea7b98a (patch)
tree0449277e94a42aa155995a90fd8a89cb3309e7ab /theme/admin
parent6a1d5b60e6ec541a36727b84b71168f62221f7d7 (diff)
downloadfourisland-b5736e3ad3830fa732dcbd1a518ec3dd6ea7b98a.tar.gz
fourisland-b5736e3ad3830fa732dcbd1a518ec3dd6ea7b98a.tar.bz2
fourisland-b5736e3ad3830fa732dcbd1a518ec3dd6ea7b98a.zip
Rewrote Admin panel
The following database changes must be made:

* A TEXT column called "text" must be added to the end of "polloftheweek"
* The transferPollRss.php script must be run
* The "pollrss" table must be dropped

Closes #113
Diffstat (limited to 'theme/admin')
-rw-r--r--theme/admin/comments.tpl107
-rw-r--r--theme/admin/css/hack.css81
-rw-r--r--theme/admin/css/ie6.css23
-rw-r--r--theme/admin/css/ie7.css9
-rw-r--r--theme/admin/css/layout.css280
-rw-r--r--theme/admin/css/reset.css50
-rw-r--r--theme/admin/css/transdmin.css15
-rwxr-xr-xtheme/admin/css/uni-form-generic.css136
-rwxr-xr-xtheme/admin/css/uni-form.css118
-rwxr-xr-xtheme/admin/deleteDraft.tpl6
-rwxr-xr-xtheme/admin/deletePending.tpl6
-rwxr-xr-xtheme/admin/deletePost.tpl6
-rwxr-xr-xtheme/admin/deletedDraft.tpl6
-rwxr-xr-xtheme/admin/deletedPending.tpl6
-rwxr-xr-xtheme/admin/deletedPost.tpl6
-rwxr-xr-xtheme/admin/draftSuccess.tpl8
-rw-r--r--theme/admin/drafts.tpl98
-rwxr-xr-xtheme/admin/editDraft.tpl14
-rwxr-xr-xtheme/admin/editPending.tpl8
-rwxr-xr-xtheme/admin/editPost.tpl8
-rw-r--r--theme/admin/footer.tpl8
-rw-r--r--theme/admin/header.tpl57
-rw-r--r--theme/admin/hgupdate.tpl10
-rw-r--r--theme/admin/img/btn_left.gifbin0 -> 346 bytes
-rw-r--r--theme/admin/img/btn_right.gifbin0 -> 617 bytes
-rw-r--r--theme/admin/img/button-submit.gifbin0 -> 580 bytes
-rw-r--r--theme/admin/img/content.gifbin0 -> 53 bytes
-rw-r--r--theme/admin/img/input-shaddow-hover.gifbin0 -> 1231 bytes
-rw-r--r--theme/admin/img/input-shaddow.gifbin0 -> 1342 bytes
-rw-r--r--theme/admin/img/left-menu-bg.gifbin0 -> 46 bytes
-rw-r--r--theme/admin/img/select_left.gifbin0 -> 257 bytes
-rw-r--r--theme/admin/img/select_right.gifbin0 -> 310 bytes
-rw-r--r--theme/admin/img/top-menu-bg.gifbin0 -> 602 bytes
-rw-r--r--theme/admin/img/top-menu-item-bg.gifbin0 -> 158 bytes
-rw-r--r--theme/admin/img/transdmin-light.gifbin0 -> 1493 bytes
-rwxr-xr-xtheme/admin/index.tpl32
-rwxr-xr-xtheme/admin/js/jquery.js1
-rwxr-xr-xtheme/admin/js/uni-form.jquery.js41
-rw-r--r--theme/admin/maintenance.tpl17
-rw-r--r--theme/admin/maintenanceMode.tpl15
-rwxr-xr-xtheme/admin/manageDrafts.tpl24
-rwxr-xr-xtheme/admin/managePending.tpl26
-rwxr-xr-xtheme/admin/managePendingQuotes.tpl21
-rwxr-xr-xtheme/admin/managePosts.tpl24
-rwxr-xr-xtheme/admin/moderateComments.tpl24
-rw-r--r--theme/admin/modquotes.tpl105
-rwxr-xr-xtheme/admin/newPoll.tpl10
-rw-r--r--theme/admin/pending.tpl108
-rwxr-xr-xtheme/admin/pendingSuccess.tpl8
-rwxr-xr-xtheme/admin/pollrss.tpl6
-rw-r--r--theme/admin/polls.tpl94
-rwxr-xr-xtheme/admin/postSuccess.tpl8
-rw-r--r--theme/admin/posts.tpl96
-rw-r--r--theme/admin/quotes.tpl94
-rwxr-xr-xtheme/admin/viewComment.tpl12
-rw-r--r--theme/admin/welcome.tpl17
-rwxr-xr-xtheme/admin/write.tpl14
-rw-r--r--theme/admin/writePoll.tpl76
-rw-r--r--theme/admin/writePost.tpl68
-rw-r--r--theme/admin/writeQuote.tpl34
60 files changed, 1743 insertions, 298 deletions
diff --git a/theme/admin/comments.tpl b/theme/admin/comments.tpl new file mode 100644 index 0000000..6d9f815 --- /dev/null +++ b/theme/admin/comments.tpl
@@ -0,0 +1,107 @@
1<h2>Moderate Comments</h2>
2
3<div class="clear"></div>
4
5<script type="text/javascript">
6function denyComment(id)
7{
8 if (confirm("Are you sure you would like to deny this comment?"))
9 {
10 postwith("/admin/comments.php?pageID=<!--PAGEID-->&amp;action=deny",{id:id});
11 }
12}
13
14function approveComment(id)
15{
16 postwith("/admin/comments.php?pageID=<!--PAGEID-->&amp;action=approve",{id:id});
17}
18
19// following function taken from http://mentaljetsam.wordpress.com/2008/06/02/using-javascript-to-post-data-between-pages/
20function postwith (to,p) {
21 var myForm = document.createElement("form");
22 myForm.method="post" ;
23 myForm.action = to ;
24 for (var k in p) {
25 var myInput = document.createElement("input") ;
26 myInput.setAttribute("name", k) ;
27 myInput.setAttribute("value", p[k]);
28 myForm.appendChild(myInput) ;
29 }
30 document.body.appendChild(myForm) ;
31 myForm.submit() ;
32 document.body.removeChild(myForm) ;
33}
34
35function bulkAction()
36{
37 var bulk=new Array();
38 $(".the-check:checked").each(function() {
39 bulk.push($(this).val());
40 });
41 var ids = bulk.join(",")
42
43 if (ids != "")
44 {
45 if ($('#manage-bulk select').val() == "deny")
46 {
47 if (confirm("Are you sure you would like to deny the selected comments?"))
48 {
49 postwith("/admin/comments.php?pageID=<!--PAGEID-->&amp;action=denys",{ids:ids});
50 }
51 } else if ($('#manage-bulk select').val() == "approve")
52 {
53 if (confirm("Are you sure you would like to approve the selected comments?"))
54 {
55 postwith("/admin/comments.php?pageID=<!--PAGEID-->&amp;action=approves",{ids:ids});
56 }
57 }
58 }
59}
60
61$(document).ready(function() {
62 $("input#all-check").click(function() {
63 var what = this.checked;
64 $("input.the-check").each(function() {
65 this.checked = what;
66 });
67 });
68});
69</script>
70
71<!--BEGIN AVAIL-->
72<div id="manage-options">
73 <div id="manage-bulk">
74 <select name="bulk-type">
75 <option value="approve">Approve</option>
76 <option value="deny">Deny</option>
77 </select>
78
79 <button id="bulk" type="button" onclick="bulkAction()">Bulk</button>
80 </div>
81</div>
82
83<div class="manage-pagination"><!--PAGINATION--></div>
84
85<table>
86 <tr class="table-header">
87 <td class="table-checkbox"><input type="checkbox" id="all-check" /></td>
88 <td>Comment</td>
89 <td>Author</td>
90 <td colspan="2">Actions</td>
91 </tr>
92 <!--BEGIN COMMENT-->
93 <tr<!--COMMENT.ODD-->>
94 <td class="table-checkbox"><input class="the-check" type="checkbox" name="bulk" value="<!--COMMENT.ID-->" /></td>
95 <td style="line-height: 1.5em;"><!--COMMENT.TEXT--></td>
96 <td class="table-author"><!--COMMENT.AUTHOR--></td>
97 <td class="table-img"><a href="#" onclick="approveComment(<!--COMMENT.ID-->)"><img src="/theme/images/icons/thumb_up.png" alt="Approve" /></a></td>
98 <td class="table-img"><a href="#" onclick="denyComment(<!--COMMENT.ID-->)"><img src="/theme/images/icons/thumb_down.png" alt="Delete" /></a></td>
99 </tr>
100 <!--END COMMENT-->
101</table>
102
103<div class="manage-pagination"><!--PAGINATION--></div>
104<!--END AVAIL-->
105<!--BEGIN NOTAVAIL-->
106<div class="manage-pagination">There are no comments to moderate.</div>
107<!--END NOTAVAIL-->
diff --git a/theme/admin/css/hack.css b/theme/admin/css/hack.css new file mode 100644 index 0000000..ca78b58 --- /dev/null +++ b/theme/admin/css/hack.css
@@ -0,0 +1,81 @@
1p {
2 margin: 1em 0;
3}
4
5div#flash {
6 position: fixed;
7 left: 0;
8 top: 0;
9 width: 100%;
10 background-color: yellow;
11 padding: 10px 0;
12 text-align: center;
13 border-bottom: 1px solid black;
14 z-index: 9999;
15}
16
17body {
18 background: url(/theme/images/backgrounds/island6.PNG) aqua repeat-x bottom left fixed;
19}
20
21h1 {
22 background: url(/theme/images/header.png);
23 margin: 0 auto;
24}
25
26h1, h1 a {
27 width: 800px;
28 height: 200px;
29}
30
31div#header {
32 background: url(/theme/images/header-repeat.png);
33}
34
35div#manage-options {
36 margin: .5em 0;
37 padding: .5em;
38 background-color: gray;
39 -moz-border-radius: 10px;
40 -webkit-border-radius: 10px;
41 -khtml-border-radius: 10px;
42 border-radius: 10px;
43}
44
45h2 {
46 float: none;
47}
48
49div.manage-pagination {
50 margin: .5em 0;
51 padding: .5em;
52 text-align: center;
53}
54
55.uniForm { background: #F2FAFF; }
56.uniForm fieldset{ margin: 0 0 1.5em 0; }
57.uniForm .inlineLabel em{ left: 10px !important; }
58.uniForm .inlineLabels .ctrlHolder .multiField.phoneNum .blockLabel{ width: auto; }
59.uniForm .inlineLabels .ctrlHolder .multiField .blockLabel #phone_ccode.textInput,
60.uniForm .inlineLabels .ctrlHolder .multiField .blockLabel #phone_area.textInput{ width: 4em; }
61.uniForm .blockLabels .ctrlHolder textarea { width: 99%; }
62
63td.table-img {
64 width: 17px;
65 padding: 0 5px !important;
66}
67
68td.table-author {
69 text-align: right;
70 padding-right: 20px;
71}
72
73td.table-checkbox {
74 width: 17px;
75 padding: 0 5px;
76}
77
78tr.table-header td {
79 font-weight: bold;
80 text-align: center;
81}
diff --git a/theme/admin/css/ie6.css b/theme/admin/css/ie6.css new file mode 100644 index 0000000..de5f9c7 --- /dev/null +++ b/theme/admin/css/ie6.css
@@ -0,0 +1,23 @@
1#main table tr .action a { margin: 0 0 0 10px; text-decoration: none; color: #9b9b9b; }
2#main table tr .action .edit { color: #c5a059; }
3#main table tr .action .delete { color: #a02b2b; }
4#main table tr .action .view { color: #55a34a; }
5#main table tr .action a:hover { text-decoration: underline; }
6
7#main fieldset p { margin: 0 0 7px 0; } /* half of the normal bottom margin */
8
9.jNiceSelectWrapper ul {
10 height: 99px;
11}
12
13.jNiceSelectWrapper div span {
14 padding: 9px 7px 0;
15}
16
17button {
18 width: 85px;
19}
20
21.uniForm, .uniForm fieldset, .uniForm .ctrlHolder, .uniForm .formHint, .uniForm .buttonHolder, .uniForm .ctrlHolder .multiField, .uniForm .inlineLabel{ zoom:1; }
22.uniForm .inlineLabels label, .uniForm .inlineLabels .label, .uniForm .blockLabels label, .uniForm .blockLabels .label, .uniForm .inlineLabel span{ padding-bottom: .2em; }
23.uniForm .inlineLabel input, .uniForm .inlineLabels .inlineLabel input, .uniForm .blockLabels .inlineLabel input{ margin-top: -.3em; }
diff --git a/theme/admin/css/ie7.css b/theme/admin/css/ie7.css new file mode 100644 index 0000000..c67e008 --- /dev/null +++ b/theme/admin/css/ie7.css
@@ -0,0 +1,9 @@
1#main fieldset p { margin: 0 0 7px 0; } /* half of the normal bottom margin */
2
3.jNiceSelectWrapper div span {
4 padding: 9px 7px 0;
5}
6
7.uniForm, .uniForm fieldset, .uniForm .ctrlHolder, .uniForm .formHint, .uniForm .buttonHolder, .uniForm .ctrlHolder .multiField, .uniForm .inlineLabel{ zoom:1; }
8.uniForm .inlineLabels label, .uniForm .inlineLabels .label, .uniForm .blockLabels label, .uniForm .blockLabels .label, .uniForm .inlineLabel span{ padding-bottom: .2em; }
9.uniForm .inlineLabel input, .uniForm .inlineLabels .inlineLabel input, .uniForm .blockLabels .inlineLabel input{ margin-top: -.3em; }
diff --git a/theme/admin/css/layout.css b/theme/admin/css/layout.css new file mode 100644 index 0000000..06aa372 --- /dev/null +++ b/theme/admin/css/layout.css
@@ -0,0 +1,280 @@
1/* Basic ---------------------------------------- */
2
3.clear { clear: both; }
4
5body {
6 background: white;
7 font-family: Arial, Helvetica, sans-serif;
8 font-size: 12px;
9 color: #646464;
10 text-align: center;
11}
12
13#wrapper {
14 text-align: left;
15 width: 930px;
16 margin: 0 auto;
17}
18
19/* Logo ---------------------------------------- */
20
21h1 {
22 margin: 15px 0 10px 5px;
23 width: 225px;
24 height: 28px;
25 background: url(../img/transdmin-light.gif) no-repeat left top;
26}
27
28h1 a {
29 display: block;
30 width: 225px;
31 height: 28px;
32}
33
34h1 span { display: none; }
35
36/* Main Navigation ---------------------------------------- */
37
38#mainNav {
39 width: 918px;
40 height: 37px;
41 padding: 6px;
42 margin: 0 0 30px 0;
43 background: url(../img/top-menu-bg.gif) no-repeat left top;
44 /* We used a background image making the thick border and the thin one to keep the html structure simple */
45}
46
47#mainNav li {
48 float: left;
49 height: 37px;
50 border-right: 1px solid #ddd;
51}
52
53#mainNav li a {
54 display: block;
55 float: left;
56 height: 37px;
57 font-weight: bold;
58 line-height: 37px;
59 text-decoration: none;
60 color: #646464;
61 padding: 0 20px;
62}
63
64#mainNav li.logout {
65 float: right;
66 border-left: 1px solid #ddd;
67 border-right: none;
68}
69
70#mainNav li a:hover { background: #fdfcf6; }
71
72#mainNav li a.active, #mainNav li a.active {
73 background: #f0f0f0 url(../img/top-menu-item-bg.gif) repeat-x left top;
74 color: #454545;
75}
76
77/* Container ---------------------------------------- */
78
79#containerHolder {
80 background: #eee;
81 padding: 5px;
82}
83
84
85#container {
86 background: #fff url(../img/content.gif) repeat-y left top;
87 border: 1px solid #ddd;
88 width: 918px;
89}
90
91/* Sidebar ---------------------------------------- */
92
93#sidebar {
94 width: 179px;
95 float: left;
96}
97
98#sidebar .sideNav { width: 179px; }
99
100#sidebar .sideNav li { border-bottom: 1px solid #ddd; width: 179px; }
101
102#sidebar .sideNav li a {
103 display: block;
104 color: #646464;
105 background: #f6f6f6;
106 text-decoration: none;
107 height: 29px;
108 line-height: 29px;
109 padding: 0 19px;
110 width: 141px;
111}
112
113#sidebar .sideNav li a:hover { background: #fdfcf6; }
114
115#sidebar .sideNav li a.active, #sidebar .sideNav li a.active:hover {
116 background: #f0f7fa;
117 color: #c66653;
118}
119
120/* Breadcrumb ---------------------------------------- */
121
122h2 {
123 width: 718px;
124 float: right;
125 color: #646464;
126 font-size: 16px;
127 line-height: 16px;
128 font-weight: bold;
129 margin: 20px 0 0 0;
130 padding: 0 0 10px 0;
131 border-bottom: 1px solid #ddd;
132}
133
134h2 a {
135 color: #646464;
136 text-decoration: none;
137}
138
139h2 a.active { color: #c66653; }
140
141h2 a:hover { text-decoration: underline; }
142
143/* Content ---------------------------------------- */
144
145#main {
146 width: 700px;
147 float: right;
148 padding: 0 19px 0 0;
149}
150
151h3 {
152 font-size: 14px;
153 line-height: 14px;
154 font-weight: bold;
155 color: #5494af;
156 padding: 0 0 0 10px;
157 margin: 20px 0 10px;
158}
159
160#main table {
161 border-top: 1px solid #ddd;
162 width: 700px;
163}
164
165#main table tr td {
166 background: #f6f6f6;
167 padding: 0px 20px;
168 height: 29px;
169 line-height: 29px;
170 border-bottom: 1px solid #ddd;
171}
172
173#main table tr.odd td {
174 background: #fbfbfb;
175}
176
177#main table tr:hover td { background: #fdfcf6; }
178
179#main table .action {
180 text-align: right;
181 padding: 0 20px 0 10px;
182}
183
184#main table tr .action a { margin: 0 0 0 10px; text-decoration: none; color: #9b9b9b; }
185#main table tr:hover .action .edit { color: #c5a059; }
186#main table tr:hover .action .delete { color: #a02b2b; }
187#main table tr:hover .action .view { color: #55a34a; }
188
189#main table tr:hover .action a:hover { text-decoration: underline; }
190
191/*#main fieldset {
192 border: 1px solid #ddd;
193 padding: 19px;
194 margin: 0 0 20px 0;
195 background: #fbfbfb;
196}
197
198#main fieldset p { margin: 0 0 14px 0; float: left; width: 100%; }
199
200#main fieldset label {
201 display: block;
202 width: 100%;
203 margin: 0 0 7px 0;
204 line-height: 12px;
205}
206
207#main fieldset .text-long {
208 border: 1px solid #ddd;
209 background: #fff url(../img/input-shaddow.gif) no-repeat left top;
210 font: 11px Arial, Helvetica, sans-serif;
211 color: #646464;
212 padding: 5px 7px;
213 width: 264px;
214 float: left;
215 margin: 0 10px 0 0;
216}
217
218#main fieldset .text-medium {
219 border: 1px solid #ddd;
220 background: #fff url(../img/input-shaddow.gif) no-repeat left top;
221 font: 11px Arial, Helvetica, sans-serif;
222 color: #646464;
223 padding: 5px 7px;
224 width: 124px;
225 float: left;
226 margin: 0 10px 0 0;
227}
228
229#main fieldset .text-small {
230 border: 1px solid #ddd;
231 background: #fff url(../img/input-shaddow.gif) no-repeat left top;
232 font: 11px Arial, Helvetica, sans-serif;
233 color: #646464;
234 padding: 5px 7px;
235 width: 44px;
236 float: left;
237 margin: 0 10px 0 0;
238}
239
240#main fieldset .text-long:focus,
241#main fieldset .text-medium:focus,
242#main fieldset .text-small:focus,
243#main fieldset textarea:focus { background: #fdfcf6 url(../img/input-shaddow-hover.gif) no-repeat left top; }
244
245#main fieldset textarea {
246 border: 1px solid #ddd;
247 background: #fff url(../img/input-shaddow.gif) no-repeat left top;
248 font: 11px Arial, Helvetica, sans-serif;
249 color: #646464;
250 padding: 5px 7px;
251 width: 364px;
252 float: left;
253 margin: 0 10px 0 0;
254 height: 148px;
255 overflow: hidden;
256}*/
257
258.button-submit {
259 font: 11px Arial, Helvetica, sans-serif;
260 color: #646464;
261 width: 94px;
262 height: 29px;
263 cursor: pointer;
264 border: none;
265 background: url(../img/button-submit.gif) no-repeat left top;
266}
267
268/* Footer ---------------------------------------- */
269
270#footer {
271 margin: 10px 0 30px 0;
272 font-size: 11px;
273 line-height: 11px;
274 color: #9B9B9B;
275 padding: 0 0 0 5px;
276}
277
278#footer a { color: #9B9B9B; }
279
280#footer a:hover { text-decoration: none; }
diff --git a/theme/admin/css/reset.css b/theme/admin/css/reset.css new file mode 100644 index 0000000..08ec888 --- /dev/null +++ b/theme/admin/css/reset.css
@@ -0,0 +1,50 @@
1html, body, div, span, applet, object, iframe,
2h1, h2, h3, h4, h5, h6, p, blockquote, pre,
3a, abbr, acronym, address, big, cite, code,
4del, dfn, em, font, img, ins, kbd, q, s, samp,
5small, strike, strong, sub, sup, tt, var,
6b, u, i, center,
7dl, dt, dd, ol, ul, li,
8fieldset, form, label, legend,
9table, caption, tbody, tfoot, thead, tr, th, td {
10 margin: 0;
11 padding: 0;
12 border: 0;
13 outline: 0;
14 font-size: 100%;
15 vertical-align: baseline;
16 background: transparent;
17}
18body {
19 line-height: 1;
20}
21ol, ul {
22 list-style: none;
23}
24blockquote, q {
25 quotes: none;
26}
27
28/* remember to define focus styles! */
29:focus {
30 outline: 0;
31}
32
33/* remove textarea resize at Safari */
34textarea {
35 resize: none;
36}
37
38/* remember to highlight inserts somehow! */
39ins {
40 text-decoration: none;
41}
42del {
43 text-decoration: line-through;
44}
45
46/* tables still need 'cellspacing="0"' in the markup */
47table {
48 border-collapse: collapse;
49 border-spacing: 0;
50}
diff --git a/theme/admin/css/transdmin.css b/theme/admin/css/transdmin.css new file mode 100644 index 0000000..5c03204 --- /dev/null +++ b/theme/admin/css/transdmin.css
@@ -0,0 +1,15 @@
1/* -----------------------------------------------
2
3 * Screen Style Sheet
4
5 * Name: Transdmin Light
6
7 * Coded by: Perspectived
8 http://www.perspectived.com
9
10----------------------------------------------- */
11
12/* CSS reset by Eric Meyer */
13@import url("reset.css");
14@import url("layout.css");
15@import url("hack.css");
diff --git a/theme/admin/css/uni-form-generic.css b/theme/admin/css/uni-form-generic.css new file mode 100755 index 0000000..f9e0f39 --- /dev/null +++ b/theme/admin/css/uni-form-generic.css
@@ -0,0 +1,136 @@
1/* Uni-Form by Dragan Babic [Superawesome Industries] - http: //sprawsm.com/uni-form/ */
2/* Some rights reserved - http: //creativecommons.org/licenses/by-sa/2.5/ */
3/* Do not edit this file directly, make your changes to uni-form.css in the same folder */
4
5/* ------------------------------------------------------------------------------ */
6
7.uniForm{ margin: 0; padding: 0; position: relative; z-index: 1; } /* reset stuff */
8
9 /* Some generals and more resets */
10 .uniForm fieldset{ border: none; margin: 0; padding: 0; }
11 .uniForm fieldset legend{ margin: 0; padding: 0; }
12
13 /* This is the main unit that contains our form elements */
14 .uniForm .ctrlHolder,
15 .uniForm .buttonHolder{ margin: 0; padding: 0; clear: both; }
16
17 /* Clear all floats */
18 .uniForm:after,
19 .uniForm .buttonHolder:after,
20 .uniForm .ctrlHolder:after,
21 .uniForm .ctrlHolder .multiField:after,
22 .uniForm .inlineLabel:after{ content: "."; display: block; height: 0; line-height: 0; font-size: 0; clear: both; min-height: 0; visibility: hidden; }
23
24 /* A class to be used on a label that contains a checkbox or a radio button */
25 .uniForm .inlineLabel,
26 .uniForm .inlineLabels .inlineLabel,
27 .uniForm .blockLabels .inlineLabel{ width: auto; float: none; margin: 0; display: block; }
28 /* IE shows borders & padding on checkboxes and radio buttons if they are declared on an input element, remove them */
29 /* Legacy/Inheritance fix */
30 .uniForm .inlineLabel input,
31 .uniForm .inlineLabels .inlineLabel input,
32 .uniForm .blockLabels .inlineLabel input{ border: none; padding: 0; margin: 0; }
33
34/* ------------------------------------------------------------------------------ */
35
36 /* Styles for form controls where labels are above the input elements */
37 /* Set the class of the parent (preferably to a fieldset) to .blockLabels */
38
39 .uniForm label,
40 .uniForm .label,
41 .uniForm .blockLabels label,
42 .uniForm .blockLabels .label{ display: block; float: none; padding: 0; line-height: 100%; width: auto; }
43
44 /* Float the input elements */
45 .uniForm .textInput,
46 .uniForm .blockLabels .textInput,
47 .uniForm .blockLabels .fileUpload,
48 .uniForm .selectInput,
49 .uniForm .blockLabels .selectInput,
50 .uniForm .blockLabels select,
51 .uniForm textarea,
52 .uniForm .blockLabels textarea{ float: left; }
53
54 /* Postition the hints */
55 .uniForm .formHint,
56 .uniForm .blockLabels .formHint{ float: right; margin: 0; clear: none; }
57
58 /* Position the elements inside combo boxes (multiple selects/checkboxes/radio buttons per unit) */
59 .uniForm .multiField,
60 .uniForm .blockLabels .multiField{ width: auto; float: left; }
61 .uniForm .multiField .inlineLabel,
62 .uniForm .blockLabels .multiField .inlineLabel{ display: block; margin: 0 0 .5em 0; }
63 .uniForm .multiField .blockLabel,
64 .uniForm .blockLabels .multiField .blockLabel{ float: left; width: auto; margin: 0; }
65 .uniForm .multiField .blockLabel .textInput,
66 .uniForm .multiField .blockLabel .selectInput,
67 .uniForm .multiField .blockLabel select,
68 .uniForm .blockLabels .multiField .blockLabel .textInput,
69 .uniForm .blockLabels .multiField .blockLabel .selectInput,
70 .uniForm .blockLabels .multiField .blockLabel select{ width: 100%; margin: 0; }
71
72/* ------------------------------------------------------------------------------ */
73
74 /* Styles for form controls where labels are in line with the input elements */
75 /* Set the class of the parent (preferably to a fieldset) to .inlineLabels */
76 .uniForm .inlineLabels label,
77 .uniForm .inlineLabels .label{ float: left; margin: 0; padding: 0; line-height: 100%; position: relative; }
78
79 /* Float the input elements */
80 .uniForm .inlineLabels .textInput,
81 .uniForm .inlineLabels .fileUpload,
82 .uniForm .inlineLabels .selectInput,
83 .uniForm .inlineLabels select,
84 .uniForm .inlineLabels textarea{ float: left; }
85
86 /* Postition the hints */
87 .uniForm .inlineLabels .formHint{ clear: both; float: none; }
88 .uniForm .inlineLabels .multiField{ float: left; }
89 .uniForm .inlineLabels .multiField .inlineLabel{}
90 .uniForm .inlineLabels .multiField .blockLabel{}
91 .uniForm .inlineLabels .multiField .blockLabel .textInput,
92 .uniForm .inlineLabels .multiField .blockLabel .selectInput,
93 .uniForm .inlineLabels .multiField .blockLabel select{ display: block; width: 100%; float: none; }
94 .uniForm .inlineLabels .multiField select{ float: left; }
95
96/* ------------------------------------------------------------------------------ */
97
98 /* Required fields asterisk styling for .blockLabels */
99 .uniForm label em,
100 .uniForm .label em,
101 .uniForm .blockLabels label em,
102 .uniForm .blockLabels .label em{ position: absolute; left: -7px; }
103
104 /* Required fields asterisk styling for .inlineLabels */
105 .uniForm .inlineLabels label em,
106 .uniForm .inlineLabels .label em{ display: block; position: absolute; left: auto; right: 0; font-style: normal; font-weight: bold; }
107 .uniForm .inlineLabel em{ position: absolute; left: 7px; }
108
109/* ------------------------------------------------------------------------------ */
110
111 /* Messages */
112 .uniForm #errorMsg,
113 .uniForm .error{
114 }
115 .uniForm #errorMsg dt,
116 .uniForm #errorMsg h3{
117 }
118 .uniForm #errorMsg dd{
119 }
120 .uniForm #errorMsg ol{
121 }
122 .uniForm #errorMsg ol li{
123 }
124 .uniForm .errorField{
125 }
126
127 .uniForm #OKMsg{
128 }
129
130/* ------------------------------------------------------------------------------ */
131
132 /* Columns */
133
134 .uniForm .col{ float: left; }
135 .uniForm .col.first{}
136 .uniForm .col.last{} \ No newline at end of file
diff --git a/theme/admin/css/uni-form.css b/theme/admin/css/uni-form.css new file mode 100755 index 0000000..53520ba --- /dev/null +++ b/theme/admin/css/uni-form.css
@@ -0,0 +1,118 @@
1@import "uni-form-generic.css";
2/* Keep in mind that wherever you see 'Required property' it means that the property must exist */
3
4/* ------------------------------------------------------------------------------ */
5
6 /* Generals */
7 .uniForm fieldset{}
8 .uniForm fieldset legend{ color: #333; font-weight: bold; font-size: 100%; margin: 0; padding: 1.5em 0; }
9
10 /* This is the main unit that contains our form elements */
11 .uniForm .ctrlHolder{ padding: 7px; border-bottom: 1px solid #dfdfdf; }
12
13 .uniForm .buttonHolder{ text-align: right; }
14 .uniForm .resetButton{ float: left; }
15 .uniForm .primaryAction{ font-weight: bold; }
16
17 /* This class gets added to div.ctrlHolder to highlight the row */
18 .uniForm .focused{ background: #fffcdf; }
19
20 /* .inlineLabel is used for inputs within labels - checkboxes and radio buttons */
21 .uniForm .inlineLabel input,
22 .uniForm .inlineLabels .inlineLabel input,
23 .uniForm .blockLabels .inlineLabel input{ float: left; margin: 0 .4em 0 0; }
24 .uniForm .inlineLabel span{ float: left; width: 90%; }
25
26/* ------------------------------------------------------------------------------ */
27
28 /* .blockLabels (default style, will be applied even if you don't class the parent element) */
29 .uniForm .blockLabels .ctrlHolder{}
30
31 .uniForm label,
32 .uniForm .blockLabels label,
33 .uniForm .blockLabels .label{ margin: 0 0 .5em 0; }
34
35 .uniForm .textInput,
36 .uniForm .blockLabels .textInput,
37 .uniForm .blockLabels .fileUpload{ width: 53%; /* <- Required property */ }
38
39 .uniForm .selectInput,
40 .uniForm select,
41 .uniForm .blockLabels .selectInput,
42 .uniForm .blockLabels select{ width: 53.5%; /* <- Required property */ }
43 .uniForm textarea,
44 .uniForm .blockLabels textarea{ width: 53%; /* <- Required property */ height: 12em; }
45
46 .uniForm .formHint,
47 .uniForm .blockLabels .formHint{ width: 45%; /* <- Required property */ font-size: .9em; color: #777; position: relative; top: -.5em; }
48
49 .uniForm .multiField,
50 .uniForm .blockLabels .multiField{ width: 53%; }
51 .uniForm .multiField .inlineLabel,
52 .uniForm .blockLabels .multiField .inlineLabel{ display: block; margin: 0 0 .5em 0; }
53 .uniForm .multiField .blockLabel,
54 .uniForm .blockLabels .multiField .blockLabel{ width: 30%; margin: 0 10px 0 0; }
55 .uniForm .multiField .blockLabel .textInput,
56 .uniForm .multiField .blockLabel .selectInput,
57 .uniForm .multiField .blockLabel select,
58 .uniForm .blockLabels .multiField .blockLabel .textInput,
59 .uniForm .blockLabels .multiField .blockLabel .selectInput,
60 .uniForm .blockLabels .multiField .blockLabel select{ width: 100%; margin: .3em 0 0 0; }
61
62/* ------------------------------------------------------------------------------ */
63
64 /* .inlineLabels */
65 .uniForm .inlineLabels .ctrlHolder{}
66
67 .uniForm .inlineLabels label,
68 .uniForm .inlineLabels .label{ width: 45%; /* <- Required property */ margin: .3em 2% 0 0; /* <- Required property */ }
69
70 .uniForm .inlineLabels .textInput,
71 .uniForm .inlineLabels .fileUpload{ width: 45%; /* <- Required property */ }
72
73 .uniForm .inlineLabels .selectInput,
74 .uniForm .inlineLabels select{ width: 45%; /* <- Required property */ }
75
76 .uniForm .inlineLabels textarea{ width: 45%; /* <- Required property */ height: 12em; }
77
78 .uniForm .inlineLabels .formHint{ margin-top: 0; margin-left: 47%; font-size: .9em; color: #777; position: static; }
79
80 .uniForm .inlineLabels .multiField{ width: 45%; /* <- Required property */ margin: 0 0 .3em 0; }
81 .uniForm .inlineLabels .multiField .inlineLabel{ display: block; margin: 0 0 .5em 0; }
82 .uniForm .inlineLabels .multiField .blockLabel{ float: left; width: 26%; margin: 0 3% 0 0; }
83 .uniForm .inlineLabels .multiField .blockLabel .textInput,
84 .uniForm .inlineLabels .multiField .blockLabel .selectInput,
85 .uniForm .inlineLabels .multiField .blockLabel select{ width: 100%; margin: .3em 0 0 0; }
86
87/* Focus pseudoclasses */
88.uniForm .ctrlHolder .textInput:focus{ outline: none; /* Get rid of the 'glow' effect in WebKit, optional */ }
89.uniForm .ctrlHolder textarea:focus{ outline: none; /* Get rid of the 'glow' effect in WebKit, optional */ }
90.uniForm div.focused .formHint{ color: #333; }
91
92/* Columns (they are floated left by default) */
93.uniForm .col{ width: 47.9%; /* <- Required property */ margin: 0 2% 20px 0; }
94/* Use .first and .last classes to control the layout/spacing of your columns */
95.uniForm .col.first{ width: 49%; /* <- Required property */ float: left; clear: none; }
96.uniForm .col.last{ width: 49%; /* <- Required property */ float: right; clear: none; margin-right: 0; }
97
98/* Messages */
99.uniForm #errorMsg{ background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 0 0 1.5em 0; padding: 7px; }
100.uniForm .error{ background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; }
101
102 .uniForm #errorMsg dt, .uniForm #errorMsg h3{ margin: 0 0 .5em 0; font-size: 100%; line-height: 100%; font-weight: bold; }
103 .uniForm #errorMsg dd{ margin: 0; padding: 0; }
104 .uniForm #errorMsg ol{ margin: 0; padding: 0; }
105 .uniForm #errorMsg ol li{ margin: 0; padding: 2px; list-style-position: inside; border-bottom: 1px dotted #df7d7d; position: relative; }
106 .uniForm .errorField{ color: #af4c4c; margin: 0 0 6px 0; padding: 4px; background: #ffbfbf; }
107
108.uniForm #OKMsg{ background: #C8FFBF; border: 1px solid #A2EF95; border-width: 1px 0; margin: 0 0 1.5em 0; padding: 7px; }
109 .uniForm #OKMsg p{ margin: 0; }
110
111/*
112IT IS STRONGLY ADVISED TO MAKE YOUR CHANGES AFTER THIS COMMENT BY REPEATING (COPYING) THE SELECTOR FROM ABOVE,
113AND MODIFYING IT WITH YOUR OWN PROPERTIES/VALUES. THIS IS RECOMMENDED BECAUSE IF YOU HAPPEN TO RUN INTO TROUBLE,
114YOU CAN VERY EASILY REVERT TO A GENERIC STYLE OF UNI-FORM. BEST OF LUCK...
115*/
116
117/* ------------------------------------------------------------------------------ */
118
diff --git a/theme/admin/deleteDraft.tpl b/theme/admin/deleteDraft.tpl deleted file mode 100755 index 0b37a97..0000000 --- a/theme/admin/deleteDraft.tpl +++ /dev/null
@@ -1,6 +0,0 @@
1<h2>Delete a Draft</h2>
2
3<p>Are you ABSOLUTELY SURE that you want to delete this draft?</p>
4
5<p><a href="/admin/deleteDraft.php?id=<!--ID-->&amp;submit=">Yes</a><br />
6<a href="javascript:history.back();window.refresh();">Ummm.... actually I'd rather not</a></p>
diff --git a/theme/admin/deletePending.tpl b/theme/admin/deletePending.tpl deleted file mode 100755 index 6a365c1..0000000 --- a/theme/admin/deletePending.tpl +++ /dev/null
@@ -1,6 +0,0 @@
1<h2>Delete a Pending Post</h2>
2
3<p>Are you ABSOLUTELY SURE that you want to delete this pending post?</p>
4
5<p><a href="/admin/deletePending.php?id=<!--ID-->&amp;submit=">Yes</a><br />
6<a href="javascript:history.back();window.refresh();">Ummm.... actually I'd rather not</a></p>
diff --git a/theme/admin/deletePost.tpl b/theme/admin/deletePost.tpl deleted file mode 100755 index c3ef82b..0000000 --- a/theme/admin/deletePost.tpl +++ /dev/null
@@ -1,6 +0,0 @@
1<h2>Delete a Post</h2>
2
3<p>Are you ABSOLUTELY SURE that you want to delete this post?</p>
4
5<p><a href="/admin/deletePost.php?id=<!--ID-->&amp;submit=">Yes</a><br />
6<a href="javascript:history.back();window.refresh();">Ummm.... actually I'd rather not</a></p>
diff --git a/theme/admin/deletedDraft.tpl b/theme/admin/deletedDraft.tpl deleted file mode 100755 index edd0b55..0000000 --- a/theme/admin/deletedDraft.tpl +++ /dev/null
@@ -1,6 +0,0 @@
1You've just deleted a draft!
2
3<ul>
4 <li><a href="/admin/manageDrafts.php">Manage Drafts</a></li>
5 <li><a href="/admin/">Return to the Admin Panel</a></li>
6</ul>
diff --git a/theme/admin/deletedPending.tpl b/theme/admin/deletedPending.tpl deleted file mode 100755 index 71100d6..0000000 --- a/theme/admin/deletedPending.tpl +++ /dev/null
@@ -1,6 +0,0 @@
1You've just deleted a pending post!
2
3<ul>
4 <li><a href="/admin/managePending.php">Manage Pending Posts</a></li>
5 <li><a href="/admin/">Return to the Admin Panel</a></li>
6</ul>
diff --git a/theme/admin/deletedPost.tpl b/theme/admin/deletedPost.tpl deleted file mode 100755 index a1e77ef..0000000 --- a/theme/admin/deletedPost.tpl +++ /dev/null
@@ -1,6 +0,0 @@
1You've just deleted a post!
2
3<ul>
4 <li><a href="/admin/managePosts.php">Manage Posts</a></li>
5 <li><a href="/admin/">Return to the Admin Panel</a></li>
6</ul>
diff --git a/theme/admin/draftSuccess.tpl b/theme/admin/draftSuccess.tpl deleted file mode 100755 index aa0616e..0000000 --- a/theme/admin/draftSuccess.tpl +++ /dev/null
@@ -1,8 +0,0 @@
1Congradulations, you've just made/edited a draft!
2
3<ul>
4 <li><a href="/admin/editDraft.php?id=<!--ID-->">Edit this draft</a></li>
5 <li><a href="/admin/viewDraft.php?id=<!--ID-->">View this draft</a></li>
6 <li><a href="/admin/manageDrafts.php">Manage Drafts</a></li>
7 <li><a href="/admin/">Return to the Admin Panel</a></li>
8</ul>
diff --git a/theme/admin/drafts.tpl b/theme/admin/drafts.tpl new file mode 100644 index 0000000..17757ba --- /dev/null +++ b/theme/admin/drafts.tpl
@@ -0,0 +1,98 @@
1<h2>Manage Drafts</h2>
2
3<div class="clear"></div>
4
5<script type="text/javascript">
6function deletePost(id)
7{
8 if (confirm("Are you sure you would like to delete this draft?"))
9 {
10 postwith("/admin/drafts.php?pageID=<!--PAGEID-->&amp;action=delete",{id:id});
11 }
12}
13
14// following function taken from http://mentaljetsam.wordpress.com/2008/06/02/using-javascript-to-post-data-between-pages/
15function postwith (to,p) {
16 var myForm = document.createElement("form");
17 myForm.method="post" ;
18 myForm.action = to ;
19 for (var k in p) {
20 var myInput = document.createElement("input") ;
21 myInput.setAttribute("name", k) ;
22 myInput.setAttribute("value", p[k]);
23 myForm.appendChild(myInput) ;
24 }
25 document.body.appendChild(myForm) ;
26 myForm.submit() ;
27 document.body.removeChild(myForm) ;
28}
29
30function bulkAction()
31{
32 var bulk=new Array();
33 $(".the-check:checked").each(function() {
34 bulk.push($(this).val());
35 });
36 var ids = bulk.join(",")
37
38 if (ids != "")
39 {
40 if ($('#manage-bulk select').val() == "delete")
41 {
42 if (confirm("Are you sure you would like to delete the selected drafts?"))
43 {
44 postwith("/admin/drafts.php?pageID=<!--PAGEID-->&amp;action=deletes",{ids:ids});
45 }
46 }
47 }
48}
49
50$(document).ready(function() {
51 $("input#all-check").click(function() {
52 var what = this.checked;
53 $("input.the-check").each(function() {
54 this.checked = what;
55 });
56 });
57});
58</script>
59
60<!--BEGIN AVAIL-->
61<form action="javascript:alert('Not yet implemented');" method="get">
62 <div id="manage-options">
63 <div id="manage-bulk">
64 <select name="bulk-type">
65 <option value="delete">Delete</option>
66 </select>
67
68 <button id="bulk" type="button" onclick="bulkAction()">Bulk</button>
69 </div>
70 </div>
71
72 <div class="manage-pagination"><!--PAGINATION--></div>
73
74 <table>
75 <tr class="table-header">
76 <td class="table-checkbox"><input type="checkbox" id="all-check" /></td>
77 <td>Post Name</td>
78 <td>Author</td>
79 <td colspan="3">Actions</td>
80 </tr>
81 <!--BEGIN POST-->
82 <tr<!--POST.ODD-->>
83 <td class="table-checkbox"><input class="the-check" type="checkbox" name="bulk" value="<!--POST.ID-->" /></td>
84 <td><!--POST.TITLE--></td>
85 <td class="table-author"><!--POST.AUTHOR--></td>
86 <td class="table-img"><a href="/admin/editPost.php?type=drafts&amp;id=<!--POST.ID-->"><img src="/theme/images/icons/page_edit.png" alt="Edit" /></a></td>
87 <td class="table-img"><a href="#" onclick="deletePost(<!--POST.ID-->);"><img src="/theme/images/icons/page_delete.png" alt="Delete" /></a></td>
88 <td class="table-img"><a href="/viewPost.php?type=drafts&amp;id=<!--POST.ID-->"><img src="/theme/images/icons/page_go.png" alt="View" /></a></td>
89 </tr>
90 <!--END POST-->
91 </table>
92
93 <div class="manage-pagination"><!--PAGINATION--></div>
94</form>
95<!--END AVAIL-->
96<!--BEGIN NOTAVAIL-->
97<div class="manage-pagination">There are no drafts.</div>
98<!--END NOTAVAIL-->
diff --git a/theme/admin/editDraft.tpl b/theme/admin/editDraft.tpl deleted file mode 100755 index 1431e79..0000000 --- a/theme/admin/editDraft.tpl +++ /dev/null
@@ -1,14 +0,0 @@
1<h2>Edit a draft</h2>
2
3<p><form action="/admin/editDraft.php?id=<!--ID-->&amp;submit=" method="post">
4 Draft Title: <input type="text" name="title" value="<!--TITLE-->" /><br />
5 <textarea name="text" cols="80" rows="20"><!--TEXT--></textarea><br />
6 Tags (comma-seperated): <input type="text" name="tags" value="<!--TAGS-->" /><br />
7 Post Type: <select name="type" size="4">
8 <option value="draft" selected="selected">Draft</option>
9 <option value="normal">Normal (Article-style) Post</option>
10 <option value="priority">High-Priority Post</option>
11 <option value="instant">Instant Post</option>
12 </select><br />
13 <input type="submit" value="Edit draft" />
14</form></p>
diff --git a/theme/admin/editPending.tpl b/theme/admin/editPending.tpl deleted file mode 100755 index 47859a5..0000000 --- a/theme/admin/editPending.tpl +++ /dev/null
@@ -1,8 +0,0 @@
1<h2>Edit a pending post</h2>
2
3<form action="/admin/editPending.php?id=<!--ID-->&amp;submit=" method="post">
4 Post Title: <input type="text" name="title" value="<!--TITLE-->" /><br />
5 <textarea name="text" cols="80" rows="20"><!--TEXT--></textarea><br />
6 Tags (comma-seperated): <input type="text" name="tags" value="<!--TAGS-->" /><br />
7 <input type="submit" value="Edit post" />
8</form>
diff --git a/theme/admin/editPost.tpl b/theme/admin/editPost.tpl deleted file mode 100755 index 99e90a4..0000000 --- a/theme/admin/editPost.tpl +++ /dev/null
@@ -1,8 +0,0 @@
1<h2>Edit a post</h2>
2
3<form action="/admin/editPost.php?id=<!--ID-->&amp;submit=" method="post">
4 Post Title: <input type="text" name="title" value="<!--TITLE-->" /><br />
5 <textarea name="text" cols="80" rows="20"><!--TEXT--></textarea><br />
6 Tags (comma-seperated): <input type="text" name="tags" value="<!--TAGS-->" /><br />
7 <input type="submit" value="Edit post" />
8</form>
diff --git a/theme/admin/footer.tpl b/theme/admin/footer.tpl new file mode 100644 index 0000000..1cc1c4e --- /dev/null +++ b/theme/admin/footer.tpl
@@ -0,0 +1,8 @@
1 </div>
2
3 <div class="clear"></div>
4 </div>
5 </div>
6 </div>
7 </body>
8</html>
diff --git a/theme/admin/header.tpl b/theme/admin/header.tpl new file mode 100644 index 0000000..bfc1dd4 --- /dev/null +++ b/theme/admin/header.tpl
@@ -0,0 +1,57 @@
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4 <head>
5 <title>Four Island Admin</title>
6
7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8 <link href="/theme/admin/css/transdmin.css" rel="stylesheet" type="text/css" media="screen" />
9 <link href="/theme/admin/css/uni-form.css" rel="stylesheet" type="text/css" media="screen" />
10 <!--[if IE 6]><link rel="stylesheet" type="text/css" media="screen" href="/theme/admin/css/ie6.css" /><![endif]-->
11 <!--[if IE 7]><link rel="stylesheet" type="text/css" media="screen" href="/theme/admin/css/ie7.css" /><![endif]-->
12 <script src="/theme/admin/js/jquery.js" type="text/javascript"></script>
13 <script src="/theme/admin/js/uni-form.jquery.js" type="text/javascript"></script>
14 </head>
15
16 <body>
17 <div id="flash"<!--HIDEFLASH-->><!--FLASH--></div>
18
19 <div id="wrapper">
20 <div id="header"><h1><a href="/admin/"><span>Four Island</span></a></h1></div>
21
22 <ul id="mainNav">
23 <li><a href="/admin/"<!--HOMEACTIVECAT-->>DASHBOARD</a></li>
24 <li><a href="/admin/posts.php"<!--POSTSACTIVECAT-->>POSTS</a></li>
25 <li><a href="/admin/polls.php"<!--POLLSACTIVECAT-->>POLLS</a></li>
26 <li><a href="/admin/quotes.php"<!--QUOTESACTIVECAT-->>QUOTES</a></li>
27 <li class="logout"><a href="/">FOUR ISLAND</a></li>
28 </ul>
29
30 <div id="containerHolder">
31 <div id="container">
32 <div id="sidebar">
33 <ul class="sideNav">
34 <!--BEGIN HOMEISACTIVECAT-->
35 <li><a href="/admin/update.php"<!--UPDATEACTIVE-->>HG Update</a></li>
36 <li><a href="/admin/maintenance.php"<!--MAINTENANCEACTIVE-->>Maintenance Mode</a></li>
37 <!--END HOMEISACTIVECAT-->
38 <!--BEGIN POSTSISACTIVECAT-->
39 <li><a href="/admin/newPost.php"<!--NEWPOSTACTIVE-->>Write a new post</a></li>
40 <li><a href="/admin/posts.php"<!--POSTSACTIVE-->>Manage Posts</a></li>
41 <li><a href="/admin/drafts.php"<!--DRAFTSACTIVE-->>Manage Drafts</a></li>
42 <li><a href="/admin/pending.php"<!--PENDINGACTIVE-->>Manage Pending Posts</a></li>
43 <li><a href="/admin/comments.php"<!--COMMENTSACTIVE-->>Moderate Comments</a></li>
44 <!--END POSTSISACTIVECAT-->
45 <!--BEGIN POLLSISACTIVECAT-->
46 <li><a href="/admin/newPoll.php"<!--NEWPOLLACTIVE-->>Write a new poll</a></li>
47 <li><a href="/admin/polls.php"<!--POLLSACTIVE-->>Manage Polls</a></li>
48 <!--END POLLSISACTIVECAT-->
49 <!--BEGIN QUOTESISACTIVECAT-->
50 <li><a href="/admin/quotes.php"<!--QUOTESACTIVE-->>Manage Quotes</a></li>
51 <li><a href="/admin/modquotes.php"<!--MODQUOTESACTIVE-->>Moderate Quotes</a></li>
52 <li><a href="/admin/quotes.php?flagged="<!--FLAGGEDACTIVE-->>Manage Flagged Quotes</a></li>
53 <!--END QUOTESISACTIVECAT-->
54 </ul>
55 </div>
56
57 <div id="main">
diff --git a/theme/admin/hgupdate.tpl b/theme/admin/hgupdate.tpl new file mode 100644 index 0000000..bfe2065 --- /dev/null +++ b/theme/admin/hgupdate.tpl
@@ -0,0 +1,10 @@
1<h2>HG Update</h2>
2
3<p>
4 If you make changes to the Four Island source code and push them to the repository, the changes won't affect production.
5 To update the production server, click the button below.
6</p>
7
8<p>
9 <button type="button" onclick="javascript:location='/admin/update.php?submit=';">Update</button>
10</p>
diff --git a/theme/admin/img/btn_left.gif b/theme/admin/img/btn_left.gif new file mode 100644 index 0000000..71652c6 --- /dev/null +++ b/theme/admin/img/btn_left.gif
Binary files differ
diff --git a/theme/admin/img/btn_right.gif b/theme/admin/img/btn_right.gif new file mode 100644 index 0000000..f8c3068 --- /dev/null +++ b/theme/admin/img/btn_right.gif
Binary files differ
diff --git a/theme/admin/img/button-submit.gif b/theme/admin/img/button-submit.gif new file mode 100644 index 0000000..102b277 --- /dev/null +++ b/theme/admin/img/button-submit.gif
Binary files differ
diff --git a/theme/admin/img/content.gif b/theme/admin/img/content.gif new file mode 100644 index 0000000..5ef7ca7 --- /dev/null +++ b/theme/admin/img/content.gif
Binary files differ
diff --git a/theme/admin/img/input-shaddow-hover.gif b/theme/admin/img/input-shaddow-hover.gif new file mode 100644 index 0000000..0dd3bab --- /dev/null +++ b/theme/admin/img/input-shaddow-hover.gif
Binary files differ
diff --git a/theme/admin/img/input-shaddow.gif b/theme/admin/img/input-shaddow.gif new file mode 100644 index 0000000..e3c8777 --- /dev/null +++ b/theme/admin/img/input-shaddow.gif
Binary files differ
diff --git a/theme/admin/img/left-menu-bg.gif b/theme/admin/img/left-menu-bg.gif new file mode 100644 index 0000000..2016cfb --- /dev/null +++ b/theme/admin/img/left-menu-bg.gif
Binary files differ
diff --git a/theme/admin/img/select_left.gif b/theme/admin/img/select_left.gif new file mode 100644 index 0000000..37dd0c4 --- /dev/null +++ b/theme/admin/img/select_left.gif
Binary files differ
diff --git a/theme/admin/img/select_right.gif b/theme/admin/img/select_right.gif new file mode 100644 index 0000000..6cdf5e3 --- /dev/null +++ b/theme/admin/img/select_right.gif
Binary files differ
diff --git a/theme/admin/img/top-menu-bg.gif b/theme/admin/img/top-menu-bg.gif new file mode 100644 index 0000000..b768caf --- /dev/null +++ b/theme/admin/img/top-menu-bg.gif
Binary files differ
diff --git a/theme/admin/img/top-menu-item-bg.gif b/theme/admin/img/top-menu-item-bg.gif new file mode 100644 index 0000000..6563276 --- /dev/null +++ b/theme/admin/img/top-menu-item-bg.gif
Binary files differ
diff --git a/theme/admin/img/transdmin-light.gif b/theme/admin/img/transdmin-light.gif new file mode 100644 index 0000000..a52ee6c --- /dev/null +++ b/theme/admin/img/transdmin-light.gif
Binary files differ
diff --git a/theme/admin/index.tpl b/theme/admin/index.tpl deleted file mode 100755 index 4e57dd9..0000000 --- a/theme/admin/index.tpl +++ /dev/null
@@ -1,32 +0,0 @@
1<h2>Admin Panel</h2><p>
2
3Welcome to the ubiquitous administration panel!</p>
4
5<h3>Blog</h3>
6
7<ul>
8 <li><a href="/admin/writePost.php">Write a post</a></li>
9 <li><a href="/admin/manageDrafts.php">Manage Drafts</a></li>
10 <li><a href="/admin/managePending.php">Manage Pending Posts</a></li>
11 <li><a href="/admin/managePosts.php">Manage Published Posts</a></li>
12 <li><a href="/admin/moderateComments.php">Moderate Comments</a></li>
13</ul>
14
15<h3>Poll</h3>
16
17<ul>
18 <li><a href="/admin/pollProcess.php">Weekly Poll Process</a></li>
19</ul>
20
21<h3>Quotes</h3>
22
23<ul>
24 <li><a href="/admin/managePendingQuotes.php">Manage Pending Quotes</a></li>
25</ul>
26
27<h3>Administration</h3>
28
29<ul>
30 <li><a href="/admin/hgUpdate.php">HG Update</a></li>
31 <li><a href="/admin/maintenanceMode.php">Maintenance Mode</a></li>
32</ul>
diff --git a/theme/admin/js/jquery.js b/theme/admin/js/jquery.js new file mode 100755 index 0000000..f954b6b --- /dev/null +++ b/theme/admin/js/jquery.js
@@ -0,0 +1 @@
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('7(1C 1w.6=="T"){1w.T=1w.T;B 6=u(a,c){7(1w==q)v 1p 6(a,c);a=a||17;7(6.1t(a))v 1p 6(17)[6.E.27?"27":"2O"](a);7(1C a=="23"){B m=/^[^<]*(<(.|\\s)+>)[^>]*$/.2Q(a);7(m)a=6.3k([m[1]]);J v 1p 6(c).2o(a)}v q.6r(a.1l==2y&&a||(a.3Y||a.I&&a!=1w&&!a.24&&a[0]!=T&&a[0].24)&&6.3M(a)||[a])};7(1C $!="T")6.2S$=$;B $=6;6.E=6.8p={3Y:"1.1.2",8q:u(){v q.I},I:0,2b:u(1T){v 1T==T?6.3M(q):q[1T]},2r:u(a){B L=6(a);L.6p=q;v L},6r:u(a){q.I=0;[].1g.14(q,a);v q},K:u(E,1E){v 6.K(q,E,1E)},2h:u(1c){B 4c=-1;q.K(u(i){7(q==1c)4c=i});v 4c},1I:u(1Y,O,C){B 1c=1Y;7(1Y.1l==3t)7(O==T)v q.I&&6[C||"1I"](q[0],1Y)||T;J{1c={};1c[1Y]=O}v q.K(u(2h){P(B H 1x 1c)6.1I(C?q.1q:q,H,6.H(q,1c[H],C,2h,H))})},1m:u(1Y,O){v q.1I(1Y,O,"30")},2L:u(e){7(1C e=="23")v q.3u().3r(17.8t(e));B t="";6.K(e||q,u(){6.K(q.2I,u(){7(q.24!=8)t+=q.24!=1?q.60:6.E.2L([q])})});v t},2K:u(){B a=6.3k(1A);v q.K(u(){B b=a[0].3l(U);q.11.2X(b,q);22(b.1b)b=b.1b;b.4C(q)})},3r:u(){v q.3j(1A,U,1,u(a){q.4C(a)})},5i:u(){v q.3j(1A,U,-1,u(a){q.2X(a,q.1b)})},5j:u(){v q.3j(1A,12,1,u(a){q.11.2X(a,q)})},5t:u(){v q.3j(1A,12,-1,u(a){q.11.2X(a,q.2e)})},4g:u(){v q.6p||6([])},2o:u(t){v q.2r(6.31(q,u(a){v 6.2o(t,a)}),t)},4Y:u(4N){v q.2r(6.31(q,u(a){B a=a.3l(4N!=T?4N:U);a.$1H=16;v a}))},1D:u(t){v q.2r(6.1t(t)&&6.2q(q,u(2z,2h){v t.14(2z,[2h])})||6.3z(t,q))},2g:u(t){v q.2r(t.1l==3t&&6.3z(t,q,U)||6.2q(q,u(a){v(t.1l==2y||t.3Y)?6.3y(a,t)<0:a!=t}))},1M:u(t){v q.2r(6.2k(q.2b(),t.1l==3t?6(t).2b():t.I!=T&&(!t.1f||t.1f=="8v")?t:[t]))},4l:u(1s){v 1s?6.1D(1s,q).r.I>0:12},1a:u(1a){v 1a==T?(q.I?q[0].O:16):q.1I("O",1a)},4U:u(1a){v 1a==T?(q.I?q[0].2t:16):q.3u().3r(1a)},3j:u(1E,1P,3Z,E){B 4Y=q.I>1;B a=6.3k(1E);7(3Z<0)a.8w();v q.K(u(){B 1c=q;7(1P&&6.1f(q,"1P")&&6.1f(a[0],"3m"))1c=q.5J("20")[0]||q.4C(17.6n("20"));6.K(a,u(){E.14(1c,[4Y?q.3l(U):q])})})}};6.1z=6.E.1z=u(){B 1O=1A[0],a=1;7(1A.I==1){1O=q;a=0}B H;22(H=1A[a++])P(B i 1x H)1O[i]=H[i];v 1O};6.1z({8x:u(){7(6.2S$)$=6.2S$;v 6},1t:u(E){v!!E&&1C E!="23"&&!E.1f&&1C E[0]=="T"&&/u/i.1n(E+"")},4B:u(D){v D.66&&D.5I&&!D.5I.64},1f:u(D,Y){v D.1f&&D.1f.3K()==Y.3K()},K:u(1c,E,1E){7(1c.I==T)P(B i 1x 1c)E.14(1c[i],1E||[i,1c[i]]);J P(B i=0,6q=1c.I;i<6q;i++)7(E.14(1c[i],1E||[i,1c[i]])===12)3O;v 1c},H:u(D,O,C,2h,H){7(6.1t(O))O=O.3n(D,[2h]);B 6s=/z-?2h|7P-?8A|1d|58|8B-?28/i;v O&&O.1l==3Q&&C=="30"&&!6s.1n(H)?O+"4S":O},19:{1M:u(D,c){6.K(c.3o(/\\s+/),u(i,Q){7(!6.19.2V(D.19,Q))D.19+=(D.19?" ":"")+Q})},2f:u(D,c){D.19=c?6.2q(D.19.3o(/\\s+/),u(Q){v!6.19.2V(c,Q)}).6t(" "):""},2V:u(t,c){t=t.19||t;c=c.1R(/([\\.\\\\\\+\\*\\?\\[\\^\\]\\$\\(\\)\\{\\}\\=\\!\\<\\>\\|\\:])/g,"\\\\$1");v t&&1p 4v("(^|\\\\s)"+c+"(\\\\s|$)").1n(t)}},4d:u(e,o,f){P(B i 1x o){e.1q["1N"+i]=e.1q[i];e.1q[i]=o[i]}f.14(e,[]);P(B i 1x o)e.1q[i]=e.1q["1N"+i]},1m:u(e,p){7(p=="28"||p=="3V"){B 1N={},46,3P,d=["7d","8C","8D","8E"];6.K(d,u(){1N["8F"+q]=0;1N["8G"+q+"8H"]=0});6.4d(e,1N,u(){7(6.1m(e,"1h")!="1Z"){46=e.8I;3P=e.8J}J{e=6(e.3l(U)).2o(":4j").5l("2Z").4g().1m({4n:"1G",45:"8K",1h:"2D",7I:"0",8M:"0"}).5z(e.11)[0];B 3d=6.1m(e.11,"45");7(3d==""||3d=="4b")e.11.1q.45="6x";46=e.6y;3P=e.6z;7(3d==""||3d=="4b")e.11.1q.45="4b";e.11.33(e)}});v p=="28"?46:3P}v 6.30(e,p)},30:u(D,H,53){B L;7(H=="1d"&&6.W.1j)v 6.1I(D.1q,"1d");7(H=="4h"||H=="2v")H=6.W.1j?"3T":"2v";7(!53&&D.1q[H])L=D.1q[H];J 7(17.44&&17.44.4W){7(H=="2v"||H=="3T")H="4h";H=H.1R(/([A-Z])/g,"-$1").4m();B Q=17.44.4W(D,16);7(Q)L=Q.55(H);J 7(H=="1h")L="1Z";J 6.4d(D,{1h:"2D"},u(){B c=17.44.4W(q,"");L=c&&c.55(H)||""})}J 7(D.51){B 56=H.1R(/\\-(\\w)/g,u(m,c){v c.3K()});L=D.51[H]||D.51[56]}v L},3k:u(a){B r=[];6.K(a,u(i,1r){7(!1r)v;7(1r.1l==3Q)1r=1r.6C();7(1C 1r=="23"){B s=6.35(1r),1V=17.6n("1V"),2i=[];B 2K=!s.18("<1u")&&[1,"<42>","</42>"]||(!s.18("<6D")||!s.18("<20")||!s.18("<6E"))&&[1,"<1P>","</1P>"]||!s.18("<3m")&&[2,"<1P><20>","</20></1P>"]||(!s.18("<6F")||!s.18("<6G"))&&[3,"<1P><20><3m>","</3m></20></1P>"]||[0,"",""];1V.2t=2K[1]+s+2K[2];22(2K[0]--)1V=1V.1b;7(6.W.1j){7(!s.18("<1P")&&s.18("<20")<0)2i=1V.1b&&1V.1b.2I;J 7(2K[1]=="<1P>"&&s.18("<20")<0)2i=1V.2I;P(B n=2i.I-1;n>=0;--n)7(6.1f(2i[n],"20")&&!2i[n].2I.I)2i[n].11.33(2i[n])}1r=[];P(B i=0,l=1V.2I.I;i<l;i++)1r.1g(1V.2I[i])}7(1r.I===0&&!6.1f(1r,"3w"))v;7(1r[0]==T||6.1f(1r,"3w"))r.1g(1r);J r=6.2k(r,1r)});v r},1I:u(D,Y,O){B 2j=6.4B(D)?{}:{"P":"6J","6L":"19","4h":6.W.1j?"3T":"2v",2v:6.W.1j?"3T":"2v",2t:"2t",19:"19",O:"O",2W:"2W",2Z:"2Z",89:"6N",2Y:"2Y"};7(Y=="1d"&&6.W.1j&&O!=T){D.58=1;v D.1D=D.1D.1R(/4i\\([^\\)]*\\)/6O,"")+(O==1?"":"4i(1d="+O*6g+")")}J 7(Y=="1d"&&6.W.1j)v D.1D?4T(D.1D.6P(/4i\\(1d=(.*)\\)/)[1])/6g:1;7(Y=="1d"&&6.W.3h&&O==1)O=0.6R;7(2j[Y]){7(O!=T)D[2j[Y]]=O;v D[2j[Y]]}J 7(O==T&&6.W.1j&&6.1f(D,"3w")&&(Y=="81"||Y=="80"))v D.6T(Y).60;J 7(D.66){7(O!=T)D.6V(Y,O);7(6.W.1j&&/5E|3e/.1n(Y)&&!6.4B(D))v D.36(Y,2);v D.36(Y)}J{Y=Y.1R(/-([a-z])/6W,u(z,b){v b.3K()});7(O!=T)D[Y]=O;v D[Y]}},35:u(t){v t.1R(/^\\s+|\\s+$/g,"")},3M:u(a){B r=[];7(a.1l!=2y)P(B i=0,2R=a.I;i<2R;i++)r.1g(a[i]);J r=a.3N(0);v r},3y:u(b,a){P(B i=0,2R=a.I;i<2R;i++)7(a[i]==b)v i;v-1},2k:u(2u,3H){B r=[].3N.3n(2u,0);P(B i=0,5b=3H.I;i<5b;i++)7(6.3y(3H[i],r)==-1)2u.1g(3H[i]);v 2u},2q:u(1U,E,4k){7(1C E=="23")E=1p 4w("a","i","v "+E);B 1i=[];P(B i=0,2z=1U.I;i<2z;i++)7(!4k&&E(1U[i],i)||4k&&!E(1U[i],i))1i.1g(1U[i]);v 1i},31:u(1U,E){7(1C E=="23")E=1p 4w("a","v "+E);B 1i=[],r=[];P(B i=0,2z=1U.I;i<2z;i++){B 1a=E(1U[i],i);7(1a!==16&&1a!=T){7(1a.1l!=2y)1a=[1a];1i=1i.6Z(1a)}}B r=1i.I?[1i[0]]:[];5f:P(B i=1,5e=1i.I;i<5e;i++){P(B j=0;j<i;j++)7(1i[i]==r[j])5F 5f;r.1g(1i[i])}v r}});1p u(){B b=7L.71.4m();6.W={2N:/5D/.1n(b),3f:/3f/.1n(b),1j:/1j/.1n(b)&&!/3f/.1n(b),3h:/3h/.1n(b)&&!/(72|5D)/.1n(b)};6.7H=!6.W.1j||17.74=="75"};6.K({5u:"a.11",4z:"6.4z(a)",76:"6.2a(a,2,\'2e\')",7D:"6.2a(a,2,\'5s\')",78:"6.2B(a.11.1b,a)",79:"6.2B(a.1b)"},u(i,n){6.E[i]=u(a){B L=6.31(q,n);7(a&&1C a=="23")L=6.3z(a,L);v q.2r(L)}});6.K({5z:"3r",7b:"5i",2X:"5j",7e:"5t"},u(i,n){6.E[i]=u(){B a=1A;v q.K(u(){P(B j=0,2R=a.I;j<2R;j++)6(a[j])[n](q)})}});6.K({5l:u(1Y){6.1I(q,1Y,"");q.7g(1Y)},7h:u(c){6.19.1M(q,c)},7i:u(c){6.19.2f(q,c)},7k:u(c){6.19[6.19.2V(q,c)?"2f":"1M"](q,c)},2f:u(a){7(!a||6.1D(a,[q]).r.I)q.11.33(q)},3u:u(){22(q.1b)q.33(q.1b)}},u(i,n){6.E[i]=u(){v q.K(n,1A)}});6.K(["5q","5n","5p","5v"],u(i,n){6.E[n]=u(1T,E){v q.1D(":"+n+"("+1T+")",E)}});6.K(["28","3V"],u(i,n){6.E[n]=u(h){v h==T?(q.I?6.1m(q[0],n):16):q.1m(n,h.1l==3t?h:h+"4S")}});6.1z({1s:{"":"m[2]==\'*\'||6.1f(a,m[2])","#":"a.36(\'2J\')==m[2]",":":{5n:"i<m[3]-0",5p:"i>m[3]-0",2a:"m[3]-0==i",5q:"m[3]-0==i",2u:"i==0",2T:"i==r.I-1",5R:"i%2==0",5S:"i%2","2a-3s":"6.2a(a.11.1b,m[3],\'2e\',a)==a","2u-3s":"6.2a(a.11.1b,1,\'2e\')==a","2T-3s":"6.2a(a.11.7n,1,\'5s\')==a","7p-3s":"6.2B(a.11.1b).I==1",5u:"a.1b",3u:"!a.1b",5v:"6.E.2L.14([a]).18(m[3])>=0",3i:\'a.C!="1G"&&6.1m(a,"1h")!="1Z"&&6.1m(a,"4n")!="1G"\',1G:\'a.C=="1G"||6.1m(a,"1h")=="1Z"||6.1m(a,"4n")=="1G"\',7v:"!a.2W",2W:"a.2W",2Z:"a.2Z",2Y:"a.2Y||6.1I(a,\'2Y\')",2L:"a.C==\'2L\'",4j:"a.C==\'4j\'",5x:"a.C==\'5x\'",4G:"a.C==\'4G\'",5y:"a.C==\'5y\'",4R:"a.C==\'4R\'",5A:"a.C==\'5A\'",5B:"a.C==\'5B\'",3x:\'a.C=="3x"||6.1f(a,"3x")\',5C:"/5C|42|7A|3x/i.1n(a.1f)"},".":"6.19.2V(a,m[2])","@":{"=":"z==m[4]","!=":"z!=m[4]","^=":"z&&!z.18(m[4])","$=":"z&&z.2U(z.I - m[4].I,m[4].I)==m[4]","*=":"z&&z.18(m[4])>=0","":"z",4u:u(m){v["",m[1],m[3],m[2],m[5]]},5P:"z=a[m[3]];7(!z||/5E|3e/.1n(m[3]))z=6.1I(a,m[3]);"},"[":"6.2o(m[2],a).I"},5M:[/^\\[ *(@)([a-2m-3C-]*) *([!*$^=]*) *(\'?"?)(.*?)\\4 *\\]/i,/^(\\[)\\s*(.*?(\\[.*?\\])?[^[]*?)\\s*\\]/,/^(:)([a-2m-3C-]*)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/i,/^([:.#]*)([a-2m-3C*-]*)/i],1Q:[/^(\\/?\\.\\.)/,"a.11",/^(>|\\/)/,"6.2B(a.1b)",/^(\\+)/,"6.2a(a,2,\'2e\')",/^(~)/,u(a){B s=6.2B(a.11.1b);v s.3N(6.3y(a,s)+1)}],3z:u(1s,1U,2g){B 1N,Q=[];22(1s&&1s!=1N){1N=1s;B f=6.1D(1s,1U,2g);1s=f.t.1R(/^\\s*,\\s*/,"");Q=2g?1U=f.r:6.2k(Q,f.r)}v Q},2o:u(t,1B){7(1C t!="23")v[t];7(1B&&!1B.24)1B=16;1B=1B||17;7(!t.18("//")){1B=1B.4H;t=t.2U(2,t.I)}J 7(!t.18("/")){1B=1B.4H;t=t.2U(1,t.I);7(t.18("/")>=1)t=t.2U(t.18("/"),t.I)}B L=[1B],2c=[],2T=16;22(t&&2T!=t){B r=[];2T=t;t=6.35(t).1R(/^\\/\\//i,"");B 3B=12;B 1J=/^[\\/>]\\s*([a-2m-9*-]+)/i;B m=1J.2Q(t);7(m){6.K(L,u(){P(B c=q.1b;c;c=c.2e)7(c.24==1&&(6.1f(c,m[1])||m[1]=="*"))r.1g(c)});L=r;t=t.1R(1J,"");7(t.18(" ")==0)5F;3B=U}J{P(B i=0;i<6.1Q.I;i+=2){B 1J=6.1Q[i];B m=1J.2Q(t);7(m){r=L=6.31(L,6.1t(6.1Q[i+1])?6.1Q[i+1]:u(a){v 40(6.1Q[i+1])});t=6.35(t.1R(1J,""));3B=U;3O}}}7(t&&!3B){7(!t.18(",")){7(L[0]==1B)L.4L();6.2k(2c,L);r=L=[1B];t=" "+t.2U(1,t.I)}J{B 34=/^([a-2m-3C-]+)(#)([a-2m-9\\\\*2S-]*)/i;B m=34.2Q(t);7(m){m=[0,m[2],m[3],m[1]]}J{34=/^([#.]?)([a-2m-9\\\\*2S-]*)/i;m=34.2Q(t)}7(m[1]=="#"&&L[L.I-1].4X){B 2l=L[L.I-1].4X(m[2]);7(6.W.1j&&2l&&2l.2J!=m[2])2l=6(\'[@2J="\'+m[2]+\'"]\',L[L.I-1])[0];L=r=2l&&(!m[3]||6.1f(2l,m[3]))?[2l]:[]}J{7(m[1]==".")B 4r=1p 4v("(^|\\\\s)"+m[2]+"(\\\\s|$)");6.K(L,u(){B 3E=m[1]!=""||m[0]==""?"*":m[2];7(6.1f(q,"7J")&&3E=="*")3E="3g";6.2k(r,m[1]!=""&&L.I!=1?6.4x(q,[],m[1],m[2],4r):q.5J(3E))});7(m[1]=="."&&L.I==1)r=6.2q(r,u(e){v 4r.1n(e.19)});7(m[1]=="#"&&L.I==1){B 5K=r;r=[];6.K(5K,u(){7(q.36("2J")==m[2]){r=[q];v 12}})}L=r}t=t.1R(34,"")}}7(t){B 1a=6.1D(t,r);L=r=1a.r;t=6.35(1a.t)}}7(L&&L[0]==1B)L.4L();6.2k(2c,L);v 2c},1D:u(t,r,2g){22(t&&/^[a-z[({<*:.#]/i.1n(t)){B p=6.5M,m;6.K(p,u(i,1J){m=1J.2Q(t);7(m){t=t.7M(m[0].I);7(6.1s[m[1]].4u)m=6.1s[m[1]].4u(m);v 12}});7(m[1]==":"&&m[2]=="2g")r=6.1D(m[3],r,U).r;J 7(m[1]=="."){B 1J=1p 4v("(^|\\\\s)"+m[2]+"(\\\\s|$)");r=6.2q(r,u(e){v 1J.1n(e.19||"")},2g)}J{B f=6.1s[m[1]];7(1C f!="23")f=6.1s[m[1]][m[2]];40("f = u(a,i){"+(6.1s[m[1]].5P||"")+"v "+f+"}");r=6.2q(r,f,2g)}}v{r:r,t:t}},4x:u(o,r,1Q,Y,1J){P(B s=o.1b;s;s=s.2e)7(s.24==1){B 1M=U;7(1Q==".")1M=s.19&&1J.1n(s.19);J 7(1Q=="#")1M=s.36("2J")==Y;7(1M)r.1g(s);7(1Q=="#"&&r.I)3O;7(s.1b)6.4x(s,r,1Q,Y,1J)}v r},4z:u(D){B 4A=[];B Q=D.11;22(Q&&Q!=17){4A.1g(Q);Q=Q.11}v 4A},2a:u(Q,1i,3Z,D){1i=1i||1;B 1T=0;P(;Q;Q=Q[3Z]){7(Q.24==1)1T++;7(1T==1i||1i=="5R"&&1T%2==0&&1T>1&&Q==D||1i=="5S"&&1T%2==1&&Q==D)v Q}},2B:u(n,D){B r=[];P(;n;n=n.2e){7(n.24==1&&(!D||n!=D))r.1g(n)}v r}});6.G={1M:u(S,C,1o,F){7(6.W.1j&&S.3L!=T)S=1w;7(F)1o.F=F;7(!1o.2A)1o.2A=q.2A++;7(!S.$1H)S.$1H={};B 38=S.$1H[C];7(!38){38=S.$1H[C]={};7(S["39"+C])38[0]=S["39"+C]}38[1o.2A]=1o;S["39"+C]=q.5Y;7(!q.1k[C])q.1k[C]=[];q.1k[C].1g(S)},2A:1,1k:{},2f:u(S,C,1o){7(S.$1H){B i,j,k;7(C&&C.C){1o=C.1o;C=C.C}7(C&&S.$1H[C])7(1o)5U S.$1H[C][1o.2A];J P(i 1x S.$1H[C])5U S.$1H[C][i];J P(j 1x S.$1H)q.2f(S,j);P(k 1x S.$1H[C])7(k){k=U;3O}7(!k)S["39"+C]=16}},1S:u(C,F,S){F=6.3M(F||[]);7(!S)6.K(q.1k[C]||[],u(){6.G.1S(C,F,q)});J{B 1o=S["39"+C],1a,E=6.1t(S[C]);7(1o){F.61(q.2j({C:C,1O:S}));7((1a=1o.14(S,F))!==12)q.4F=U}7(E&&1a!==12)S[C]();q.4F=12}},5Y:u(G){7(1C 6=="T"||6.G.4F)v;G=6.G.2j(G||1w.G||{});B 3R;B c=q.$1H[G.C];B 1E=[].3N.3n(1A,1);1E.61(G);P(B j 1x c){1E[0].1o=c[j];1E[0].F=c[j].F;7(c[j].14(q,1E)===12){G.2n();G.2H();3R=12}}7(6.W.1j)G.1O=G.2n=G.2H=G.1o=G.F=16;v 3R},2j:u(G){7(!G.1O&&G.63)G.1O=G.63;7(G.65==T&&G.67!=T){B e=17.4H,b=17.64;G.65=G.67+(e.68||b.68);G.7Y=G.7Z+(e.6c||b.6c)}7(6.W.2N&&G.1O.24==3){B 3a=G;G=6.1z({},3a);G.1O=3a.1O.11;G.2n=u(){v 3a.2n()};G.2H=u(){v 3a.2H()}}7(!G.2n)G.2n=u(){q.3R=12};7(!G.2H)G.2H=u(){q.82=U};v G}};6.E.1z({3U:u(C,F,E){v q.K(u(){6.G.1M(q,C,E||F,F)})},6u:u(C,F,E){v q.K(u(){6.G.1M(q,C,u(G){6(q).6f(G);v(E||F).14(q,1A)},F)})},6f:u(C,E){v q.K(u(){6.G.2f(q,C,E)})},1S:u(C,F){v q.K(u(){6.G.1S(C,F,q)})},3X:u(){B a=1A;v q.6j(u(e){q.4M=q.4M==0?1:0;e.2n();v a[q.4M].14(q,[e])||12})},83:u(f,g){u 4O(e){B p=(e.C=="41"?e.84:e.85)||e.86;22(p&&p!=q)2G{p=p.11}2w(e){p=q};7(p==q)v 12;v(e.C=="41"?f:g).14(q,[e])}v q.41(4O).6k(4O)},27:u(f){7(6.3W)f.14(17,[6]);J{6.3c.1g(u(){v f.14(q,[6])})}v q}});6.1z({3W:12,3c:[],27:u(){7(!6.3W){6.3W=U;7(6.3c){6.K(6.3c,u(){q.14(17)});6.3c=16}7(6.W.3h||6.W.3f)17.87("6o",6.27,12)}}});1p u(){6.K(("88,8a,2O,8b,8d,52,6j,8e,"+"8f,8g,8h,41,6k,8j,42,"+"4R,8k,8l,8m,2C").3o(","),u(i,o){6.E[o]=u(f){v f?q.3U(o,f):q.1S(o)}});7(6.W.3h||6.W.3f)17.8n("6o",6.27,12);J 7(6.W.1j){17.8o("<8r"+"8s 2J=62 8u=U "+"3e=//:><\\/2d>");B 2d=17.4X("62");7(2d)2d.37=u(){7(q.3D!="1X")v;q.11.33(q);6.27()};2d=16}J 7(6.W.2N)6.50=3L(u(){7(17.3D=="8y"||17.3D=="1X"){4p(6.50);6.50=16;6.27()}},10);6.G.1M(1w,"2O",6.27)};7(6.W.1j)6(1w).6u("52",u(){B 1k=6.G.1k;P(B C 1x 1k){B 4Z=1k[C],i=4Z.I;7(i&&C!=\'52\')6w 6.G.2f(4Z[i-1],C);22(--i)}});6.E.1z({6A:u(V,21,M){q.2O(V,21,M,1)},2O:u(V,21,M,1W){7(6.1t(V))v q.3U("2O",V);M=M||u(){};B C="5d";7(21)7(6.1t(21)){M=21;21=16}J{21=6.3g(21);C="5V"}B 4e=q;6.3v({V:V,C:C,F:21,1W:1W,1X:u(2P,15){7(15=="2M"||!1W&&15=="5L")4e.1I("2t",2P.3G).4V().K(M,[2P.3G,15,2P]);J M.14(4e,[2P.3G,15,2P])}});v q},6B:u(){v 6.3g(q)},4V:u(){v q.2o("2d").K(u(){7(q.3e)6.59(q.3e);J 6.4a(q.2L||q.6H||q.2t||"")}).4g()}});7(!1w.3p)3p=u(){v 1p 6I("6K.6M")};6.K("5m,5Q,5O,5W,5N,5H".3o(","),u(i,o){6.E[o]=u(f){v q.3U(o,f)}});6.1z({2b:u(V,F,M,C,1W){7(6.1t(F)){M=F;F=16}v 6.3v({V:V,F:F,2M:M,4t:C,1W:1W})},6Q:u(V,F,M,C){v 6.2b(V,F,M,C,1)},59:u(V,M){v 6.2b(V,16,M,"2d")},6S:u(V,F,M){v 6.2b(V,F,M,"6m")},6U:u(V,F,M,C){7(6.1t(F)){M=F;F={}}v 6.3v({C:"5V",V:V,F:F,2M:M,4t:C})},6X:u(29){6.3q.29=29},6Y:u(5c){6.1z(6.3q,5c)},3q:{1k:U,C:"5d",29:0,5r:"70/x-73-3w-77",5h:U,48:U,F:16},3S:{},3v:u(s){s=6.1z({},6.3q,s);7(s.F){7(s.5h&&1C s.F!="23")s.F=6.3g(s.F);7(s.C.4m()=="2b"){s.V+=((s.V.18("?")>-1)?"&":"?")+s.F;s.F=16}}7(s.1k&&!6.4E++)6.G.1S("5m");B 4y=12;B N=1p 3p();N.7j(s.C,s.V,s.48);7(s.F)N.3A("7l-7m",s.5r);7(s.1W)N.3A("7o-4K-7q",6.3S[s.V]||"7s, 7t 7w 7x 4o:4o:4o 7z");N.3A("X-7B-7C","3p");7(N.7E)N.3A("7F","7G");7(s.5G)s.5G(N);7(s.1k)6.G.1S("5H",[N,s]);B 37=u(4s){7(N&&(N.3D==4||4s=="29")){4y=U;7(3I){4p(3I);3I=16}B 15;2G{15=6.5Z(N)&&4s!="29"?s.1W&&6.69(N,s.V)?"5L":"2M":"2C";7(15!="2C"){B 3F;2G{3F=N.4P("6b-4K")}2w(e){}7(s.1W&&3F)6.3S[s.V]=3F;B F=6.6i(N,s.4t);7(s.2M)s.2M(F,15);7(s.1k)6.G.1S("5N",[N,s])}J 6.3J(s,N,15)}2w(e){15="2C";6.3J(s,N,15,e)}7(s.1k)6.G.1S("5O",[N,s]);7(s.1k&&!--6.4E)6.G.1S("5Q");7(s.1X)s.1X(N,15);7(s.48)N=16}};B 3I=3L(37,13);7(s.29>0)57(u(){7(N){N.7N();7(!4y)37("29")}},s.29);2G{N.7Q(s.F)}2w(e){6.3J(s,N,16,e)}7(!s.48)37();v N},3J:u(s,N,15,e){7(s.2C)s.2C(N,15,e);7(s.1k)6.G.1S("5W",[N,s,e])},4E:0,5Z:u(r){2G{v!r.15&&7V.7W=="4G:"||(r.15>=5X&&r.15<7X)||r.15==6d||6.W.2N&&r.15==T}2w(e){}v 12},69:u(N,V){2G{B 6e=N.4P("6b-4K");v N.15==6d||6e==6.3S[V]||6.W.2N&&N.15==T}2w(e){}v 12},6i:u(r,C){B 4Q=r.4P("8c-C");B F=!C&&4Q&&4Q.18("N")>=0;F=C=="N"||F?r.8i:r.3G;7(C=="2d")6.4a(F);7(C=="6m")40("F = "+F);7(C=="4U")6("<1V>").4U(F).4V();v F},3g:u(a){B s=[];7(a.1l==2y||a.3Y)6.K(a,u(){s.1g(2x(q.Y)+"="+2x(q.O))});J P(B j 1x a)7(a[j]&&a[j].1l==2y)6.K(a[j],u(){s.1g(2x(j)+"="+2x(q))});J s.1g(2x(j)+"="+2x(a[j]));v s.6t("&")},4a:u(F){7(1w.54)1w.54(F);J 7(6.W.2N)1w.57(F,0);J 40.3n(1w,F)}});6.E.1z({1L:u(R,M){B 1G=q.1D(":1G");R?1G.26({28:"1L",3V:"1L",1d:"1L"},R,M):1G.K(u(){q.1q.1h=q.2E?q.2E:"";7(6.1m(q,"1h")=="1Z")q.1q.1h="2D"});v q},1K:u(R,M){B 3i=q.1D(":3i");R?3i.26({28:"1K",3V:"1K",1d:"1K"},R,M):3i.K(u(){q.2E=q.2E||6.1m(q,"1h");7(q.2E=="1Z")q.2E="2D";q.1q.1h="1Z"});v q},5g:6.E.3X,3X:u(E,4I){B 1E=1A;v 6.1t(E)&&6.1t(4I)?q.5g(E,4I):q.K(u(){6(q)[6(q).4l(":1G")?"1L":"1K"].14(6(q),1E)})},7a:u(R,M){v q.26({28:"1L"},R,M)},7c:u(R,M){v q.26({28:"1K"},R,M)},7f:u(R,M){v q.K(u(){B 5k=6(q).4l(":1G")?"1L":"1K";6(q).26({28:5k},R,M)})},7r:u(R,M){v q.26({1d:"1L"},R,M)},7u:u(R,M){v q.26({1d:"1K"},R,M)},7y:u(R,43,M){v q.26({1d:43},R,M)},26:u(H,R,1v,M){v q.1F(u(){q.2F=6.1z({},H);B 1u=6.R(R,1v,M);P(B p 1x H){B e=1p 6.3b(q,1u,p);7(H[p].1l==3Q)e.2s(e.Q(),H[p]);J e[H[p]](H)}})},1F:u(C,E){7(!E){E=C;C="3b"}v q.K(u(){7(!q.1F)q.1F={};7(!q.1F[C])q.1F[C]=[];q.1F[C].1g(E);7(q.1F[C].I==1)E.14(q)})}});6.1z({R:u(R,1v,E){B 1u=R&&R.1l==7K?R:{1X:E||!E&&1v||6.1t(R)&&R,25:R,1v:E&&1v||1v&&1v.1l!=4w&&1v};1u.25=(1u.25&&1u.25.1l==3Q?1u.25:{7R:7S,7T:5X}[1u.25])||7U;1u.1N=1u.1X;1u.1X=u(){6.6a(q,"3b");7(6.1t(1u.1N))1u.1N.14(q)};v 1u},1v:{},1F:{},6a:u(D,C){C=C||"3b";7(D.1F&&D.1F[C]){D.1F[C].4L();B f=D.1F[C][0];7(f)f.14(D)}},3b:u(D,1e,H){B z=q;B y=D.1q;B 4D=6.1m(D,"1h");y.5T="1G";z.a=u(){7(1e.49)1e.49.14(D,[z.2p]);7(H=="1d")6.1I(y,"1d",z.2p);J 7(6l(z.2p))y[H]=6l(z.2p)+"4S";y.1h="2D"};z.6v=u(){v 4T(6.1m(D,H))};z.Q=u(){B r=4T(6.30(D,H));v r&&r>-8z?r:z.6v()};z.2s=u(4f,43){z.4J=(1p 5o()).5w();z.2p=4f;z.a();z.4q=3L(u(){z.49(4f,43)},13)};z.1L=u(){7(!D.1y)D.1y={};D.1y[H]=q.Q();1e.1L=U;z.2s(0,D.1y[H]);7(H!="1d")y[H]="5a"};z.1K=u(){7(!D.1y)D.1y={};D.1y[H]=q.Q();1e.1K=U;z.2s(D.1y[H],0)};z.3X=u(){7(!D.1y)D.1y={};D.1y[H]=q.Q();7(4D=="1Z"){1e.1L=U;7(H!="1d")y[H]="5a";z.2s(0,D.1y[H])}J{1e.1K=U;z.2s(D.1y[H],0)}};z.49=u(32,47){B t=(1p 5o()).5w();7(t>1e.25+z.4J){4p(z.4q);z.4q=16;z.2p=47;z.a();7(D.2F)D.2F[H]=U;B 2c=U;P(B i 1x D.2F)7(D.2F[i]!==U)2c=12;7(2c){y.5T="";y.1h=4D;7(6.1m(D,"1h")=="1Z")y.1h="2D";7(1e.1K)y.1h="1Z";7(1e.1K||1e.1L)P(B p 1x D.2F)7(p=="1d")6.1I(y,p,D.1y[p]);J y[p]=""}7(2c&&6.1t(1e.1X))1e.1X.14(D)}J{B n=t-q.4J;B p=n/1e.25;z.2p=1e.1v&&6.1v[1e.1v]?6.1v[1e.1v](p,n,32,(47-32),1e.25):((-6h.7O(p*6h.8L)/2)+0.5)*(47-32)+32;z.a()}}}})}',62,545,'||||||jQuery|if|||||||||||||||||||this||||function|return||||||var|type|elem|fn|data|event|prop|length|else|each|ret|callback|xml|value|for|cur|speed|element|undefined|true|url|browser||name|||parentNode|false||apply|status|null|document|indexOf|className|val|firstChild|obj|opacity|options|nodeName|push|display|result|msie|global|constructor|css|test|handler|new|style|arg|expr|isFunction|opt|easing|window|in|orig|extend|arguments|context|typeof|filter|args|queue|hidden|events|attr|re|hide|show|add|old|target|table|token|replace|trigger|num|elems|div|ifModified|complete|key|none|tbody|params|while|string|nodeType|duration|animate|ready|height|timeout|nth|get|done|script|nextSibling|remove|not|index|tb|fix|merge|oid|z0|preventDefault|find|now|grep|pushStack|custom|innerHTML|first|cssFloat|catch|encodeURIComponent|Array|el|guid|sibling|error|block|oldblock|curAnim|try|stopPropagation|childNodes|id|wrap|text|success|safari|load|res|exec|al|_|last|substr|has|disabled|insertBefore|selected|checked|curCSS|map|firstNum|removeChild|re2|trim|getAttribute|onreadystatechange|handlers|on|originalEvent|fx|readyList|parPos|src|opera|param|mozilla|visible|domManip|clean|cloneNode|tr|call|split|XMLHttpRequest|ajaxSettings|append|child|String|empty|ajax|form|button|inArray|multiFilter|setRequestHeader|foundToken|9_|readyState|tag|modRes|responseText|second|ival|handleError|toUpperCase|setInterval|makeArray|slice|break|oWidth|Number|returnValue|lastModified|styleFloat|bind|width|isReady|toggle|jquery|dir|eval|mouseover|select|to|defaultView|position|oHeight|lastNum|async|step|globalEval|static|pos|swap|self|from|end|float|alpha|radio|inv|is|toLowerCase|visibility|00|clearInterval|timer|rec|isTimeout|dataType|_resort|RegExp|Function|getAll|requestDone|parents|matched|isXMLDoc|appendChild|oldDisplay|active|triggered|file|documentElement|fn2|startTime|Modified|shift|lastToggle|deep|handleHover|getResponseHeader|ct|submit|px|parseFloat|html|evalScripts|getComputedStyle|getElementById|clone|els|safariTimer|currentStyle|unload|force|execScript|getPropertyValue|newProp|setTimeout|zoom|getScript|1px|sl|settings|GET|rl|check|_toggle|processData|prepend|before|state|removeAttr|ajaxStart|lt|Date|gt|eq|contentType|previousSibling|after|parent|contains|getTime|checkbox|password|appendTo|image|reset|input|webkit|href|continue|beforeSend|ajaxSend|ownerDocument|getElementsByTagName|tmp|notmodified|parse|ajaxSuccess|ajaxComplete|_prefix|ajaxStop|even|odd|overflow|delete|POST|ajaxError|200|handle|httpSuccess|nodeValue|unshift|__ie_init|srcElement|body|pageX|tagName|clientX|scrollLeft|httpNotModified|dequeue|Last|scrollTop|304|xmlRes|unbind|100|Math|httpData|click|mouseout|parseInt|json|createElement|DOMContentLoaded|prevObject|ol|setArray|exclude|join|one|max|do|relative|clientHeight|clientWidth|loadIfModified|serialize|toString|thead|tfoot|td|th|textContent|ActiveXObject|htmlFor|Microsoft|class|XMLHTTP|readOnly|gi|match|getIfModified|9999|getJSON|getAttributeNode|post|setAttribute|ig|ajaxTimeout|ajaxSetup|concat|application|userAgent|compatible|www|compatMode|CSS1Compat|next|urlencoded|siblings|children|slideDown|prependTo|slideUp|Top|insertAfter|slideToggle|removeAttribute|addClass|removeClass|open|toggleClass|Content|Type|lastChild|If|only|Since|fadeIn|Thu|01|fadeOut|enabled|Jan|1970|fadeTo|GMT|textarea|Requested|With|prev|overrideMimeType|Connection|close|boxModel|right|object|Object|navigator|substring|abort|cos|font|send|slow|600|fast|400|location|protocol|300|pageY|clientY|method|action|cancelBubble|hover|fromElement|toElement|relatedTarget|removeEventListener|blur|readonly|focus|resize|content|scroll|dblclick|mousedown|mouseup|mousemove|responseXML|change|keydown|keypress|keyup|addEventListener|write|prototype|size|scr|ipt|createTextNode|defer|FORM|reverse|noConflict|loaded|10000|weight|line|Bottom|Right|Left|padding|border|Width|offsetHeight|offsetWidth|absolute|PI|left'.split('|'),0,{}))
diff --git a/theme/admin/js/uni-form.jquery.js b/theme/admin/js/uni-form.jquery.js new file mode 100755 index 0000000..9786dde --- /dev/null +++ b/theme/admin/js/uni-form.jquery.js
@@ -0,0 +1,41 @@
1jQuery.fn.uniform = function(settings) {
2 settings = jQuery.extend({
3 valid_class : 'valid',
4 invalid_class : 'invalid',
5 focused_class : 'focused',
6 holder_class : 'ctrlHolder',
7 field_selector : 'input, select, textarea'
8 }, settings);
9
10 return this.each(function() {
11 var form = jQuery(this);
12
13 // Focus specific control holder
14 var focusControlHolder = function(element) {
15 var parent = element.parent();
16
17 while(typeof(parent) == 'object') {
18 if(parent) {
19 if(parent[0] && (parent[0].className.indexOf(settings.holder_class) >= 0)) {
20 parent.addClass(settings.focused_class);
21 return;
22 } // if
23 } // if
24 parent = jQuery(parent.parent());
25 } // while
26 };
27
28 // Select form fields and attach them higlighter functionality
29 form.find(settings.field_selector).focus(function() {
30 form.find('.' + settings.focused_class).removeClass(settings.focused_class);
31 focusControlHolder(jQuery(this));
32 }).blur(function() {
33 form.find('.' + settings.focused_class).removeClass(settings.focused_class);
34 });
35 });
36};
37
38// Auto set on page load...
39$(document).ready(function() {
40 jQuery('form.uniForm').uniform();
41}); \ No newline at end of file
diff --git a/theme/admin/maintenance.tpl b/theme/admin/maintenance.tpl new file mode 100644 index 0000000..0f01110 --- /dev/null +++ b/theme/admin/maintenance.tpl
@@ -0,0 +1,17 @@
1<h2>Maintenance Mode</h2>
2
3<p>Here you can enable/disable Maintenance Mode. When Maintenance Mode is enabled, no one can access Four Island except localhost and a logged in administrator.</p>
4
5<form action="/admin/maintenance.php?submit=" method="post">
6 <p>
7 Maintenance Mode:
8 <select name="mode">
9 <option value="on"<!--ON-->>On</option>
10 <option value="off"<!--OFF-->>Off</option>
11 </select>
12 </p>
13
14 <p>
15 <button type="submit">Submit</button>
16 </p>
17</form>
diff --git a/theme/admin/maintenanceMode.tpl b/theme/admin/maintenanceMode.tpl deleted file mode 100644 index 4247a62..0000000 --- a/theme/admin/maintenanceMode.tpl +++ /dev/null
@@ -1,15 +0,0 @@
1<h2>Maintenance Mode</h2>
2
3<p>Here you can enable/disable Maintenance Mode. When Maintenance Mode is enabled, no one can access Four Island except localhost.</p>
4
5<form action="/admin/maintenanceMode.php?submit=" method="post">
6 <center>
7 <input type="radio" name="mode" value="on"<!--ON--> />On<br />
8 <input type="radio" name="mode" value="off"<!--OFF--> />Off<br />
9 <input type="submit" />
10 </center>
11</form>
12
13<p>
14 <a href="/admin/">Back to Admin Panel</a>
15</p>
diff --git a/theme/admin/manageDrafts.tpl b/theme/admin/manageDrafts.tpl deleted file mode 100755 index 142033a..0000000 --- a/theme/admin/manageDrafts.tpl +++ /dev/null
@@ -1,24 +0,0 @@
1<h2>Manage Drafts</h2>
2
3<table width="100%" class="webmail">
4 <tr>
5 <th>Draft Title</th>
6 <th>Draft Author</th>
7 <th>Actions</th>
8 </tr>
9
10 <!--BEGIN DRAFT-->
11 <tr>
12 <td><!--DRAFT.TITLE--></td>
13 <td><!--DRAFT.AUTHOR--></td>
14
15 <td>
16 <a href="/admin/editDraft.php?id=<!--DRAFT.ID-->"><img src="/theme/images/icons/page_edit.png" alt="Edit" /></a>
17 <a href="/admin/deleteDraft.php?id=<!--DRAFT.ID-->"><img src="/theme/images/icons/page_delete.png" alt="Delete" /></a>
18 <a href="/admin/viewDraft.php?id=<!--DRAFT.ID-->"><img src="/theme/images/icons/page_go.png" alt="View" /></a>
19 </td>
20 </tr>
21 <!--END DRAFT-->
22</table>
23
24<a href="/admin/">Back to Admin Panel</a>
diff --git a/theme/admin/managePending.tpl b/theme/admin/managePending.tpl deleted file mode 100755 index 6c98bf8..0000000 --- a/theme/admin/managePending.tpl +++ /dev/null
@@ -1,26 +0,0 @@
1<h2>Manage Pending</h2>
2
3<table width="100%" class="webmail">
4 <tr>
5 <th>Pending Post Title</th>
6 <th>Pending Post Author</th>
7 <th>Actions</th>
8 </tr>
9
10 <!--BEGIN PENDING-->
11 <tr>
12 <td><!--PENDING.TITLE--></td>
13 <td><!--PENDING.AUTHOR--></td>
14
15 <td>
16 <a href="/admin/editPending.php?id=<!--PENDING.ID-->"><img src="/theme/images/icons/page_edit.png" alt="Edit" /></a>
17 <a href="/admin/deletePending.php?id=<!--PENDING.ID-->"><img src="/theme/images/icons/page_delete.png" alt="Delete" /></a>
18 <a href="/admin/viewPending.php?id=<!--PENDING.ID-->"><img src="/theme/images/icons/page_go.png" alt="View" /></a>
19 <a href="/admin/movePending.php?id=<!--PENDING.ID-->&amp;dir=up"><img src="/theme/images/icons/thumb_up.png" alt="Move Up" /></a>
20 <a href="/admin/movePending.php?id=<!--PENDING.ID-->&amp;dir=down"><img src="/theme/images/icons/thumb_down.png" alt="Move Down" /></a>
21 </td>
22 </tr>
23 <!--END PENDING-->
24</table>
25
26<a href="/admin/">Back to Admin Panel</a>
diff --git a/theme/admin/managePendingQuotes.tpl b/theme/admin/managePendingQuotes.tpl deleted file mode 100755 index e993aae..0000000 --- a/theme/admin/managePendingQuotes.tpl +++ /dev/null
@@ -1,21 +0,0 @@
1<h2>Manage Pending Quotes</h2>
2
3<table width="100%" class="webmail">
4 <tr>
5 <th>Quote</th>
6 <th>Actions</th>
7 </tr>
8
9 <!--BEGIN QUOTE-->
10 <tr class="<!--QUOTE.EVEN-->">
11 <td><!--QUOTE.TEXT--></td>
12
13 <td>
14 <a href="/admin/actionPendingQuotes.php?id=<!--QUOTE.ID-->&amp;approve"><img src="/theme/images/icons/page_attach.png" alt="Approve" /></a>
15 <a href="/admin/actionPendingQuotes.php?id=<!--QUOTE.ID-->&amp;deny"><img src="/theme/images/icons/page_delete.png" alt="Deny" /></a>
16 </td>
17 </tr>
18 <!--END QUOTE-->
19</table>
20
21<a href="/admin/">Back to Admin Panel</a>
diff --git a/theme/admin/managePosts.tpl b/theme/admin/managePosts.tpl deleted file mode 100755 index 41a2456..0000000 --- a/theme/admin/managePosts.tpl +++ /dev/null
@@ -1,24 +0,0 @@
1<h2>Manage Posts</h2>
2
3<table width="100%" class="webmail">
4 <tr>
5 <th>Post Title</th>
6 <th>Post Author</th>
7 <th>Actions</th>
8 </tr>
9
10 <!--BEGIN POST-->
11 <tr>
12 <td><!--POST.TITLE--></td>
13 <td><!--POST.AUTHOR--></td>
14
15 <td>
16 <a href="/admin/editPost.php?id=<!--POST.ID-->"><img src="/theme/images/icons/page_edit.png" alt="Edit" /></a>
17 <a href="/admin/deletePost.php?id=<!--POST.ID-->"><img src="/theme/images/icons/page_delete.png" alt="Delete" /></a>
18 <a href="/blog/<!--POST.CODED-->/"><img src="/theme/images/icons/page_go.png" alt="View" /></a>
19 </td>
20 </tr>
21 <!--END POST-->
22</table>
23
24<a href="/admin/">Back to Admin Panel</a>
diff --git a/theme/admin/moderateComments.tpl b/theme/admin/moderateComments.tpl deleted file mode 100755 index 7b41016..0000000 --- a/theme/admin/moderateComments.tpl +++ /dev/null
@@ -1,24 +0,0 @@
1<h2>Moderate Comments</h2>
2
3<table width="100%" class="webmail">
4 <tr>
5 <th>Title of Article Commented Upon</th>
6 <th>Comment Author</th>
7 <th>Actions</th>
8 </tr>
9
10 <!--BEGIN COMMENT-->
11 <tr>
12 <td><!--COMMENT.TITLE--></td>
13 <td><!--COMMENT.AUTHOR--></td>
14
15 <td>
16 <a href="/admin/viewComment.php?id=<!--COMMENT.ID-->"><img src="/theme/images/icons/page_go.png" alt="View" /></a>
17 <a href="/admin/actionComment.php?id=<!--COMMENT.ID-->&amp;approve"><img src="/theme/images/icons/page_attach.png" alt="Approve" /></a>
18 <a href="/admin/actionComment.php?id=<!--COMMENT.ID-->&amp;deny"><img src="/theme/images/icons/page_delete.png" alt="Deny" /></a>
19 </td>
20 </tr>
21 <!--END COMMENT-->
22</table>
23
24<a href="/admin/">Back to Admin Panel</a>
diff --git a/theme/admin/modquotes.tpl b/theme/admin/modquotes.tpl new file mode 100644 index 0000000..545a171 --- /dev/null +++ b/theme/admin/modquotes.tpl
@@ -0,0 +1,105 @@
1<h2>Moderate Quotes</h2>
2
3<div class="clear"></div>
4
5<script type="text/javascript">
6function denyQuote(id)
7{
8 if (confirm("Are you sure you would like to deny this quote?"))
9 {
10 postwith("/admin/modquotes.php?pageID=<!--PAGEID-->&amp;action=deny",{id:id});
11 }
12}
13
14function approveQuote(id)
15{
16 postwith("/admin/modquotes.php?pageID=<!--PAGEID-->&amp;action=approve",{id:id});
17}
18
19// following function taken from http://mentaljetsam.wordpress.com/2008/06/02/using-javascript-to-post-data-between-pages/
20function postwith (to,p) {
21 var myForm = document.createElement("form");
22 myForm.method="post" ;
23 myForm.action = to ;
24 for (var k in p) {
25 var myInput = document.createElement("input") ;
26 myInput.setAttribute("name", k) ;
27 myInput.setAttribute("value", p[k]);
28 myForm.appendChild(myInput) ;
29 }
30 document.body.appendChild(myForm) ;
31 myForm.submit() ;
32 document.body.removeChild(myForm) ;
33}
34
35function bulkAction()
36{
37 var bulk=new Array();
38 $(".the-check:checked").each(function() {
39 bulk.push($(this).val());
40 });
41 var ids = bulk.join(",")
42
43 if (ids != "")
44 {
45 if ($('#manage-bulk select').val() == "deny")
46 {
47 if (confirm("Are you sure you would like to deny the selected quotes?"))
48 {
49 postwith("/admin/modquotes.php?pageID=<!--PAGEID-->&amp;action=denys",{ids:ids});
50 }
51 } else if ($('#manage-bulk select').val() == "approve")
52 {
53 if (confirm("Are you sure you would like to approve the selected quotes?"))
54 {
55 postwith("/admin/modquotes.php?pageID=<!--PAGEID-->&amp;action=approves",{ids:ids});
56 }
57 }
58 }
59}
60
61$(document).ready(function() {
62 $("input#all-check").click(function() {
63 var what = this.checked;
64 $("input.the-check").each(function() {
65 this.checked = what;
66 });
67 });
68});
69</script>
70
71<!--BEGIN AVAIL-->
72<div id="manage-options">
73 <div id="manage-bulk">
74 <select name="bulk-type">
75 <option value="approve">Approve</option>
76 <option value="deny">Deny</option>
77 </select>
78
79 <button id="bulk" type="button" onclick="bulkAction()">Bulk</button>
80 </div>
81</div>
82
83<div class="manage-pagination"><!--PAGINATION--></div>
84
85<table>
86 <tr class="table-header">
87 <td class="table-checkbox"><input type="checkbox" id="all-check" /></td>
88 <td>Quote</td>
89 <td colspan="2">Actions</td>
90 </tr>
91 <!--BEGIN QUOTE-->
92 <tr<!--QUOTE.ODD-->>
93 <td class="table-checkbox"><input class="the-check" type="checkbox" name="bulk" value="<!--QUOTE.ID-->" /></td>
94 <td style="line-height: 1.5em;"><!--QUOTE.TEXT--></td>
95 <td class="table-img"><a href="#" onclick="approveQuote(<!--QUOTE.ID-->)"><img src="/theme/images/icons/thumb_up.png" alt="Approve" /></a></td>
96 <td class="table-img"><a href="#" onclick="denyQuote(<!--QUOTE.ID-->)"><img src="/theme/images/icons/thumb_down.png" alt="Delete" /></a></td>
97 </tr>
98 <!--END QUOTE-->
99</table>
100
101<div class="manage-pagination"><!--PAGINATION--></div>
102<!--END AVAIL-->
103<!--BEGIN NOTAVAIL-->
104<div class="manage-pagination">There are no quotes to moderate.</div>
105<!--END NOTAVAIL-->
diff --git a/theme/admin/newPoll.tpl b/theme/admin/newPoll.tpl deleted file mode 100755 index debc8f1..0000000 --- a/theme/admin/newPoll.tpl +++ /dev/null
@@ -1,10 +0,0 @@
1Congradulations! You've successfully added a Poll RSS. Now it's time to add the new Poll Of The Week:
2
3<form action="/admin/pollProcess.php?step=3" method="post">
4 Question: <input type="text" name="question" /><br />
5 Option 1: <input type="text" name="option1" /><br />
6 Option 2: <input type="text" name="option2" /><br />
7 Option 3: <input type="text" name="option3" /><br />
8 Option 4: <input type="text" name="option4" /><br />
9 <input type="submit" value="Create poll" />
10</form>
diff --git a/theme/admin/pending.tpl b/theme/admin/pending.tpl new file mode 100644 index 0000000..8ead332 --- /dev/null +++ b/theme/admin/pending.tpl
@@ -0,0 +1,108 @@
1<h2>Manage Pending</h2>
2
3<div class="clear"></div>
4
5<script type="text/javascript">
6function deletePost(id)
7{
8 if (confirm("Are you sure you would like to delete this pending post?"))
9 {
10 postwith("/admin/pending.php?pageID=<!--PAGEID-->&amp;action=delete",{id:id});
11 }
12}
13
14// following function taken from http://mentaljetsam.wordpress.com/2008/06/02/using-javascript-to-post-data-between-pages/
15function postwith (to,p) {
16 var myForm = document.createElement("form");
17 myForm.method="post" ;
18 myForm.action = to ;
19 for (var k in p) {
20 var myInput = document.createElement("input") ;
21 myInput.setAttribute("name", k) ;
22 myInput.setAttribute("value", p[k]);
23 myForm.appendChild(myInput) ;
24 }
25 document.body.appendChild(myForm) ;
26 myForm.submit() ;
27 document.body.removeChild(myForm) ;
28}
29
30function bulkAction()
31{
32 var bulk=new Array();
33 $(".the-check:checked").each(function() {
34 bulk.push($(this).val());
35 });
36 var ids = bulk.join(",")
37
38 if (ids != "")
39 {
40 if ($('#manage-bulk select').val() == "delete")
41 {
42 if (confirm("Are you sure you would like to delete the selected posts?"))
43 {
44 postwith("/admin/pending.php?pageID=<!--PAGEID-->&amp;action=deletes",{ids:ids});
45 }
46 }
47 }
48}
49
50$(document).ready(function() {
51 $("input#all-check").click(function() {
52 var what = this.checked;
53 $("input.the-check").each(function() {
54 this.checked = what;
55 });
56 });
57});
58</script>
59
60<!--BEGIN AVAIL-->
61<div id="manage-options">
62 <div id="manage-bulk">
63 <select name="bulk-type">
64 <option value="delete">Delete</option>
65 </select>
66
67 <button id="bulk" type="button" onclick="bulkAction()">Bulk</button>
68 </div>
69</div>
70
71<div class="manage-pagination"><!--PAGINATION--></div>
72
73<table>
74 <tr class="table-header">
75 <td class="table-checkbox"><input type="checkbox" id="all-check" /></td>
76 <td>Post Name</td>
77 <td>Author</td>
78 <td colspan="5">Actions</td>
79 </tr>
80 <!--BEGIN POST-->
81 <tr<!--POST.ODD-->>
82 <td class="table-checkbox"><input class="the-check" type="checkbox" name="bulk" value="<!--POST.ID-->" /></td>
83 <td><!--POST.TITLE--></td>
84 <td class="table-author"><!--POST.AUTHOR--></td>
85 <!--BEGIN POST.CANMOVEUP-->
86 <td class="table-img"><a href="/admin/pending.php?pageID=<!--PAGEID-->&amp;action=moveup&amp;id=<!--POST.ID-->"><img src="/theme/images/icons/thumb_up.png" alt="Move Up" /></a></td>
87 <!--END POST.CANMOVEUP-->
88 <!--BEGIN POST.NOMOVEUP-->
89 <td class="table-img"><img src="/theme/images/icons/thumb_up.png" alt="Move Up" style="opacity: 0.2" /></td>
90 <!--END POST.NOMOVEUP-->
91 <!--BEGIN POST.CANMOVEDOWN-->
92 <td class="table-img"><a href="/admin/pending.php?pageID=<!--PAGEID-->&amp;action=movedown&amp;id=<!--POST.ID-->"><img src="/theme/images/icons/thumb_down.png" alt="Move Down" /></a></td>
93 <!--END POST.CANMOVEDOWN-->
94 <!--BEGIN POST.NOMOVEDOWN-->
95 <td class="table-img"><img src="/theme/images/icons/thumb_down.png" alt="Move Down" style="opacity: 0.2" /></td>
96 <!--END POST.NOMOVEDOWN-->
97 <td class="table-img"><a href="/admin/editPost.php?type=pending&amp;id=<!--POST.ID-->"><img src="/theme/images/icons/page_edit.png" alt="Edit" /></a></td>
98 <td class="table-img"><a href="#" onclick="deletePost(<!--POST.ID-->);"><img src="/theme/images/icons/page_delete.png" alt="Delete" /></a></td>
99 <td class="table-img"><a href="/viewPost.php?type=pending&amp;id=<!--POST.ID-->"><img src="/theme/images/icons/page_go.png" alt="View" /></a></td>
100 </tr>
101 <!--END POST-->
102</table>
103
104<div class="manage-pagination"><!--PAGINATION--></div>
105<!--END AVAIL-->
106<!--BEGIN NOTAVAIL-->
107<div class="manage-pagination">There are no pending posts in the queue.</div>
108<!--END NOTAVAIL-->
diff --git a/theme/admin/pendingSuccess.tpl b/theme/admin/pendingSuccess.tpl deleted file mode 100755 index 51b115f..0000000 --- a/theme/admin/pendingSuccess.tpl +++ /dev/null
@@ -1,8 +0,0 @@
1Congradulations, you've just made/edited a pending post!
2
3<ul>
4 <li><a href="/admin/editPending.php?id=<!--ID-->">Edit this pending post</a></li>
5 <li><a href="/admin/viewPending.php?id=<!--ID-->">View this pending post</a></li>
6 <li><a href="/admin/managePending.php">Manage Pending Posts</a></li>
7 <li><a href="/admin/">Return to the Admin Panel</a></li>
8</ul>
diff --git a/theme/admin/pollrss.tpl b/theme/admin/pollrss.tpl deleted file mode 100755 index b58ebbb..0000000 --- a/theme/admin/pollrss.tpl +++ /dev/null
@@ -1,6 +0,0 @@
1<h2>Write a Poll RSS</h2>
2
3<form action="/admin/pollProcess.php?step=2" method="POST">
4 <textarea name="text" cols="80" rows="20"></textarea><br />
5 <input type="submit" value="Write RSS" />
6</form>
diff --git a/theme/admin/polls.tpl b/theme/admin/polls.tpl new file mode 100644 index 0000000..feb3600 --- /dev/null +++ b/theme/admin/polls.tpl
@@ -0,0 +1,94 @@
1<h2>Manage Polls</h2>
2
3<div class="clear"></div>
4
5<script type="text/javascript">
6function deletePoll(id)
7{
8 if (confirm("Are you sure you would like to delete this poll?"))
9 {
10 postwith("/admin/polls.php?pageID=<!--PAGEID-->&amp;action=delete",{id:id});
11 }
12}
13
14// following function taken from http://mentaljetsam.wordpress.com/2008/06/02/using-javascript-to-post-data-between-pages/
15function postwith (to,p) {
16 var myForm = document.createElement("form");
17 myForm.method="post" ;
18 myForm.action = to ;
19 for (var k in p) {
20 var myInput = document.createElement("input") ;
21 myInput.setAttribute("name", k) ;
22 myInput.setAttribute("value", p[k]);
23 myForm.appendChild(myInput) ;
24 }
25 document.body.appendChild(myForm) ;
26 myForm.submit() ;
27 document.body.removeChild(myForm) ;
28}
29
30function bulkAction()
31{
32 var bulk=new Array();
33 $(".the-check:checked").each(function() {
34 bulk.push($(this).val());
35 });
36 var ids = bulk.join(",")
37
38 if (ids != "")
39 {
40 if ($('#manage-bulk select').val() == "delete")
41 {
42 if (confirm("Are you sure you would like to delete the selected polls?"))
43 {
44 postwith("/admin/polls.php?pageID=<!--PAGEID-->&amp;action=deletes",{ids:ids});
45 }
46 }
47 }
48}
49
50$(document).ready(function() {
51 $("input#all-check").click(function() {
52 var what = this.checked;
53 $("input.the-check").each(function() {
54 this.checked = what;
55 });
56 });
57});
58</script>
59
60<!--BEGIN AVAIL-->
61<div id="manage-options">
62 <div id="manage-bulk">
63 <select name="bulk-type">
64 <option value="delete">Delete</option>
65 </select>
66
67 <button id="bulk" type="button" onclick="bulkAction()">Bulk</button>
68 </div>
69</div>
70
71<div class="manage-pagination"><!--PAGINATION--></div>
72
73<table>
74 <tr class="table-header">
75 <td class="table-checkbox"><input type="checkbox" id="all-check" /></td>
76 <td>Question</td>
77 <td colspan="3">Actions</td>
78 </tr>
79 <!--BEGIN POST-->
80 <tr<!--POST.ODD-->>
81 <td class="table-checkbox"><input class="the-check" type="checkbox" name="bulk" value="<!--POST.ID-->" /></td>
82 <td><!--POST.TITLE--></td>
83 <td class="table-img"><a href="/admin/editPoll.php?id=<!--POST.ID-->"><img src="/theme/images/icons/page_edit.png" alt="Edit" /></a></td>
84 <td class="table-img"><a href="#" onclick="deletePoll(<!--POST.ID-->)"><img src="/theme/images/icons/page_delete.png" alt="Delete" /></a></td>
85 <td class="table-img"><a href="/poll/<!--POST.ID-->.php"><img src="/theme/images/icons/page_go.png" alt="View" /></a></td>
86 </tr>
87 <!--END POST-->
88</table>
89
90<div class="manage-pagination"><!--PAGINATION--></div>
91<!--END AVAIL-->
92<!--BEGIN NOTAVAIL-->
93<div class="manage-pagination">There are no polls.</div>
94<!--END NOTAVAIL-->
diff --git a/theme/admin/postSuccess.tpl b/theme/admin/postSuccess.tpl deleted file mode 100755 index 0f27964..0000000 --- a/theme/admin/postSuccess.tpl +++ /dev/null
@@ -1,8 +0,0 @@
1Congradulations, you've just made/edited a post!
2
3<ul>
4 <li><a href="/admin/editPost.php?id=<!--ID-->">Edit this post</a></li>
5 <li><a href="/blog/<!--CODED-->/">View this post</a></li>
6 <li><a href="/admin/managePosts.php">Manage Posts</a></li>
7 <li><a href="/admin/">Return to the Admin Panel</a></li>
8</ul>
diff --git a/theme/admin/posts.tpl b/theme/admin/posts.tpl new file mode 100644 index 0000000..c68f5fd --- /dev/null +++ b/theme/admin/posts.tpl
@@ -0,0 +1,96 @@
1<h2>Manage Posts</h2>
2
3<div class="clear"></div>
4
5<script type="text/javascript">
6function deletePost(id)
7{
8 if (confirm("Are you sure you would like to delete this post?"))
9 {
10 postwith("/admin/posts.php?pageID=<!--PAGEID-->&amp;action=delete",{id:id});
11 }
12}
13
14// following function taken from http://mentaljetsam.wordpress.com/2008/06/02/using-javascript-to-post-data-between-pages/
15function postwith (to,p) {
16 var myForm = document.createElement("form");
17 myForm.method="post" ;
18 myForm.action = to ;
19 for (var k in p) {
20 var myInput = document.createElement("input") ;
21 myInput.setAttribute("name", k) ;
22 myInput.setAttribute("value", p[k]);
23 myForm.appendChild(myInput) ;
24 }
25 document.body.appendChild(myForm) ;
26 myForm.submit() ;
27 document.body.removeChild(myForm) ;
28}
29
30function bulkAction()
31{
32 var bulk=new Array();
33 $(".the-check:checked").each(function() {
34 bulk.push($(this).val());
35 });
36 var ids = bulk.join(",")
37
38 if (ids != "")
39 {
40 if ($('#manage-bulk select').val() == "delete")
41 {
42 if (confirm("Are you sure you would like to delete the selected posts?"))
43 {
44 postwith("/admin/posts.php?pageID=<!--PAGEID-->&amp;action=deletes",{ids:ids});
45 }
46 }
47 }
48}
49
50$(document).ready(function() {
51 $("input#all-check").click(function() {
52 var what = this.checked;
53 $("input.the-check").each(function() {
54 this.checked = what;
55 });
56 });
57});
58</script>
59
60<!--BEGIN AVAIL-->
61<div id="manage-options">
62 <div id="manage-bulk">
63 <select name="bulk-type">
64 <option value="delete">Delete</option>
65 </select>
66
67 <button id="bulk" type="button" onclick="bulkAction()">Bulk</button>
68 </div>
69</div>
70
71<div class="manage-pagination"><!--PAGINATION--></div>
72
73<table>
74 <tr class="table-header">
75 <td class="table-checkbox"><input type="checkbox" id="all-check" /></td>
76 <td>Post Name</td>
77 <td>Author</td>
78 <td colspan="3">Actions</td>
79 </tr>
80 <!--BEGIN POST-->
81 <tr<!--POST.ODD-->>
82 <td class="table-checkbox"><input class="the-check" type="checkbox" name="bulk" value="<!--POST.ID-->" /></td>
83 <td><!--POST.TITLE--></td>
84 <td class="table-author"><!--POST.AUTHOR--></td>
85 <td class="table-img"><a href="/admin/editPost.php?type=updates&amp;id=<!--POST.ID-->"><img src="/theme/images/icons/page_edit.png" alt="Edit" /></a></td>
86 <td class="table-img"><a href="#" onclick="deletePost(<!--POST.ID-->)"><img src="/theme/images/icons/page_delete.png" alt="Delete" /></a></td>
87 <td class="table-img"><a href="/blog/<!--POST.CODED-->/"><img src="/theme/images/icons/page_go.png" alt="View" /></a></td>
88 </tr>
89 <!--END POST-->
90</table>
91
92<div class="manage-pagination"><!--PAGINATION--></div>
93<!--END AVAIL-->
94<!--BEGIN NOTAVAIL-->
95<div class="manage-pagination">There are no posts.</div>
96<!--END NOTAVAIL-->
diff --git a/theme/admin/quotes.tpl b/theme/admin/quotes.tpl new file mode 100644 index 0000000..6da9dbb --- /dev/null +++ b/theme/admin/quotes.tpl
@@ -0,0 +1,94 @@
1<h2><!--TITLE--></h2>
2
3<div class="clear"></div>
4
5<script type="text/javascript">
6function deleteQuote(id)
7{
8 if (confirm("Are you sure you would like to delete this quote?"))
9 {
10 postwith("/admin/quotes.php?<!--FLAGGED-->pageID=<!--PAGEID-->&amp;action=delete",{id:id});
11 }
12}
13
14// following function taken from http://mentaljetsam.wordpress.com/2008/06/02/using-javascript-to-post-data-between-pages/
15function postwith (to,p) {
16 var myForm = document.createElement("form");
17 myForm.method="post" ;
18 myForm.action = to ;
19 for (var k in p) {
20 var myInput = document.createElement("input") ;
21 myInput.setAttribute("name", k) ;
22 myInput.setAttribute("value", p[k]);
23 myForm.appendChild(myInput) ;
24 }
25 document.body.appendChild(myForm) ;
26 myForm.submit() ;
27 document.body.removeChild(myForm) ;
28}
29
30function bulkAction()
31{
32 var bulk=new Array();
33 $(".the-check:checked").each(function() {
34 bulk.push($(this).val());
35 });
36 var ids = bulk.join(",")
37
38 if (ids != "")
39 {
40 if ($('#manage-bulk select').val() == "delete")
41 {
42 if (confirm("Are you sure you would like to delete the selected quotes?"))
43 {
44 postwith("/admin/quotes.php?<!--FLAGGED-->pageID=<!--PAGEID-->&amp;action=deletes",{ids:ids});
45 }
46 }
47 }
48}
49
50$(document).ready(function() {
51 $("input#all-check").click(function() {
52 var what = this.checked;
53 $("input.the-check").each(function() {
54 this.checked = what;
55 });
56 });
57});
58</script>
59
60<!--BEGIN AVAIL-->
61<div id="manage-options">
62 <div id="manage-bulk">
63 <select name="bulk-type">
64 <option value="delete">Delete</option>
65 </select>
66
67 <button id="bulk" type="button" onclick="bulkAction()">Bulk</button>
68 </div>
69</div>
70
71<div class="manage-pagination"><!--PAGINATION--></div>
72
73<table>
74 <tr class="table-header">
75 <td class="table-checkbox"><input type="checkbox" id="all-check" /></td>
76 <td>Quote</td>
77 <td colspan="3">Actions</td>
78 </tr>
79 <!--BEGIN QUOTE-->
80 <tr<!--QUOTE.ODD-->>
81 <td class="table-checkbox"><input class="the-check" type="checkbox" name="bulk" value="<!--QUOTE.ID-->" /></td>
82 <td>#<!--QUOTE.ID-->: <!--QUOTE.EXCERPT--></td>
83 <td class="table-img"><a href="/admin/editQuote.php?id=<!--QUOTE.ID-->"><img src="/theme/images/icons/page_edit.png" alt="Edit" /></a></td>
84 <td class="table-img"><a href="#" onclick="deleteQuote(<!--QUOTE.ID-->)"><img src="/theme/images/icons/page_delete.png" alt="Delete" /></a></td>
85 <td class="table-img"><a href="/quotes/<!--QUOTE.ID-->.php"><img src="/theme/images/icons/page_go.png" alt="View" /></a></td>
86 </tr>
87 <!--END QUOTE-->
88</table>
89
90<div class="manage-pagination"><!--PAGINATION--></div>
91<!--END AVAIL-->
92<!--BEGIN NOTAVAIL-->
93<div class="manage-pagination">There are no quotes.</div>
94<!--END NOTAVAIL-->
diff --git a/theme/admin/viewComment.tpl b/theme/admin/viewComment.tpl deleted file mode 100755 index 8b52fa0..0000000 --- a/theme/admin/viewComment.tpl +++ /dev/null
@@ -1,12 +0,0 @@
1<div class="bubble">
2 <blockquote>
3 <div>
4 <img src="http://www.gravatar.com/avatar/<!--CODEDEMAIL-->?s=32&amp;d=identicon&amp;r=G" />
5 <!--TEXT-->
6 </div>
7 </blockquote>
8 <cite><strong><!--USERNAME--></strong> on <!--DATE--></cite>
9</div>
10
11<p><a href="/admin/moderateComments.php">Back to Comment Moderation</a><br />
12<a href="/admin/">Back to Admin Panel</a></p>
diff --git a/theme/admin/welcome.tpl b/theme/admin/welcome.tpl new file mode 100644 index 0000000..dc4e246 --- /dev/null +++ b/theme/admin/welcome.tpl
@@ -0,0 +1,17 @@
1<h2>Welcome to the the ubiquitous administration panel!</h2>
2
3<p>
4 There are <!--POSTS--> posts, not including <!--PENDING--> queued posts and <!--DRAFTS--> drafts.
5</p>
6
7<p>
8 There are <!--COMMENTS--> unmoderated comments.
9</p>
10
11<p>
12 There are <!--POLLS--> polls.
13</p>
14
15<p>
16 There are <!--QUOTES--> quotes, including <!--FLAGGED--> flagged quotes. There are also <!--MODCOM--> unmoderated quotes.
17</p>
diff --git a/theme/admin/write.tpl b/theme/admin/write.tpl deleted file mode 100755 index 0371ace..0000000 --- a/theme/admin/write.tpl +++ /dev/null
@@ -1,14 +0,0 @@
1<h2>Write a post</h2>
2
3<form action="/admin/writePost.php?submit=" method="post">
4 Post Title: <input type="text" name="title" /><br />
5 <textarea name="text" cols="80" rows="20"></textarea><br />
6 Tags (comma-seperated): <input type="text" name="tags" value="update" /><br />
7 Post Type: <select name="type" size="4">
8 <option value="draft">Draft</option>
9 <option value="normal" selected="selected">Normal (Article-style) Post</option>
10 <option value="priority">High-Priority Post</option>
11 <option value="instant">Instant Post</option>
12 </select><br />
13 <input type="submit" value="Write post" />
14</form>
diff --git a/theme/admin/writePoll.tpl b/theme/admin/writePoll.tpl new file mode 100644 index 0000000..242131a --- /dev/null +++ b/theme/admin/writePoll.tpl
@@ -0,0 +1,76 @@
1<h2><!--TITLE--></h2>
2
3<form action="<!--ACTION-->" method="post" class="uniForm">
4 <!--BEGIN ISERROR-->
5 <div id="errorMsg">
6 <h3>Oops! There was an error!</h3>
7
8 <ol>
9 <!--BEGIN ERROR-->
10 <li><a href="#error<!--ERROR.ID-->" title="Jump to error"><!--ERROR.TEXT--></a></li>
11 <!--END ERROR-->
12 </ol>
13 </div>
14 <!--END ISERROR-->
15
16 <!--BEGIN FLASH-->
17 <div id="OKMsg"><p><!--FLASH.TEXT--></p></div>
18 <!--END FLASH-->
19
20 <fieldset class="inlineLabels">
21 <div class="ctrlHolder<!--ISQUESTIONERROR-->">
22 <!--BEGIN QUESTIONERROR-->
23 <p id="error<!--QUESTIONERROR.ID-->" class="errorField"><strong><!--QUESTIONERROR.TEXT--></strong></p>
24 <!--END QUESTIONERROR-->
25 <label for="question"><em>*</em> Question</label>
26 <input name="question" id="question" value="<!--QUESTIONVALUE-->" type="text" class="textInput" />
27 </div>
28
29 <div class="ctrlHolder<!--ISOPTION1ERROR-->">
30 <!--BEGIN OPTION1ERROR-->
31 <p id="error<!--OPTION1ERROR.ID-->" class="errorField"><strong><!--OPTION1ERROR.ID--></strong></p>
32 <!--END OPTION1ERROR-->
33 <label for="option1"><em>*</em> Option 1</label>
34 <input name="option1" id="option1" value="<!--OPTION1VALUE-->" type="text" class="textInput" />
35 </div>
36
37 <div class="ctrlHolder<!--ISOPTION2ERROR-->">
38 <!--BEGIN OPTION2ERROR-->
39 <p id="error<!--OPTION2ERROR.ID-->" class="errorField"><strong><!--OPTION2ERROR.ID--></strong></p>
40 <!--END OPTION2ERROR-->
41 <label for="option2"><em>*</em> Option 2</label>
42 <input name="option2" id="option2" value="<!--OPTION2VALUE-->" type="text" class="textInput" />
43 </div>
44
45 <div class="ctrlHolder<!--ISOPTION3ERROR-->">
46 <!--BEGIN OPTION3ERROR-->
47 <p id="error<!--OPTION3ERROR.ID-->" class="errorField"><strong><!--OPTION3ERROR.ID--></strong></p>
48 <!--END OPTION3ERROR-->
49 <label for="option3"><em>*</em> Option 3</label>
50 <input name="option3" id="option3" value="<!--OPTION3VALUE-->" type="text" class="textInput" />
51 </div>
52
53 <div class="ctrlHolder<!--ISOPTION4ERROR-->">
54 <!--BEGIN OPTION4ERROR-->
55 <p id="error<!--OPTION4ERROR.ID-->" class="errorField"><strong><!--OPTION4ERROR.ID--></strong></p>
56 <!--END OPTION4ERROR-->
57 <label for="option4"><em>*</em> Option 4</label>
58 <input name="option4" id="option4" value="<!--OPTION4VALUE-->" type="text" class="textInput" />
59 </div>
60 </fieldset>
61
62 <fieldset class="blockLabels">
63 <div class="ctrlHolder<!--ISTEXTERROR-->">
64 <!--BEGIN TEXTERROR-->
65 <p id="error<!--TEXTERROR.ID-->" class="errorField"><strong><!--TEXTERROR.TEXT--></strong></p>
66 <!--END TEXTERROR-->
67 <label for="text">Text</label>
68 <textarea name="text" id="text"><![CDATA[<!--TEXTVALUE-->]]></textarea>
69 </div>
70 </fieldset>
71
72 <div class="buttonHolder">
73 <button type="reset" class="resetButton">Reset</button>
74 <button type="submit" class="primaryAction">Submit</button>
75 </div>
76</form>
diff --git a/theme/admin/writePost.tpl b/theme/admin/writePost.tpl new file mode 100644 index 0000000..a51f7fd --- /dev/null +++ b/theme/admin/writePost.tpl
@@ -0,0 +1,68 @@
1<h2><!--TITLE--></h2>
2
3<form action="<!--ACTION-->" method="post" class="uniForm">
4 <!--BEGIN ISERROR-->
5 <div id="errorMsg">
6 <h3>Oops! There was an error!</h3>
7
8 <ol>
9 <!--BEGIN ERROR-->
10 <li><a href="#error<!--ERROR.ID-->" title="Jump to error"><!--ERROR.TEXT--></a></li>
11 <!--END ERROR-->
12 </ol>
13 </div>
14 <!--END ISERROR-->
15
16 <!--BEGIN FLASH-->
17 <div id="OKMsg"><p><!--FLASH.TEXT--></p></div>
18 <!--END FLASH-->
19
20 <fieldset class="inlineLabels">
21 <div class="ctrlHolder<!--ISTITLEERROR-->">
22 <!--BEGIN TITLEERROR-->
23 <p id="error<!--TITLEERROR.ID-->" class="errorField"><strong><!--TITLEERROR.TEXT--></strong></p>
24 <!--END TITLEERROR-->
25 <label for="title"><em>*</em> Title</label>
26 <input name="title" id="title" value="<!--TITLEVALUE-->" type="text" class="textInput" />
27 </div>
28 </fieldset>
29
30 <fieldset class="blockLabels">
31 <div class="ctrlHolder<!--ISTEXTERROR-->">
32 <!--BEGIN TEXTERROR-->
33 <p id="error<!--TEXTERROR.ID-->" class="errorField"><strong><!--TEXTERROR.TEXT--></strong></p>
34 <!--END TEXTERROR-->
35 <label for="text">Text</label>
36 <textarea name="text" id="text" style="height: 24em"><![CDATA[<!--TEXTVALUE-->]]></textarea>
37 </div>
38 </fieldset>
39
40 <fieldset class="inlineLabels">
41 <div class="ctrlHolder<!--ISTAGSERROR-->">
42 <!--BEGIN TAGSERROR-->
43 <p id="error<!--TAGSERROR.ID-->" class="errorField"><strong><!--TAGSERROR.TEXT--></strong></p>
44 <!--END TAGSERROR-->
45 <label for="tags"><em>*</em> Tags</label>
46 <input name="tags" id="tags" value="<!--TAGSVALUE-->" type="text" class="textInput" />
47 <p class="formHint">Each tag should be seperated by a comma.</p>
48 </div>
49
50 <div class="ctrlHolder<!--ISTYPEERROR-->">
51 <!--BEGIN TYPEERROR-->
52 <p id="error<!--TYPEERROR.ID-->" class="errorField"><strong><!--TYPEERROR.TEXT--></strong></p>
53 <!--END TYPEERROR-->
54 <p class="label"><em>*</em> Post Type</p>
55 <div class="multiField">
56 <label for="type_draft" class="inlineLabel"><input name="type" id="type_draft" value="draft" type="radio"<!--DRAFTSELECTED--><!--TAGSDISABLED--> /> Draft</label>
57 <label for="type_article" class="inlineLabel"><input name="type" id="type_article" value="article" type="radio"<!--ARTICLESELECTED--><!--TAGSDISABLED--> /> Queued Post (Article-style)</label>
58 <label for="type_high" class="inlineLabel"><input name="type" id="type_high" value="high" type="radio"<!--HIGHSELECTED--><!--TAGSDISABLED--> /> High Priority Queued Post (Article-style)</label>
59 <label for="type_instant" class="inlineLabel"><input name="type" id="type_instant" value="instant" type="radio"<!--INSTANTSELECTED--><!--TAGSDISABLED--> /> Instant Post</label>
60 </div>
61 </div>
62 </fieldset>
63
64 <div class="buttonHolder">
65 <button type="reset" class="resetButton">Reset</button>
66 <button type="submit" class="primaryAction">Submit</button>
67 </div>
68</form>
diff --git a/theme/admin/writeQuote.tpl b/theme/admin/writeQuote.tpl new file mode 100644 index 0000000..3a9bb3f --- /dev/null +++ b/theme/admin/writeQuote.tpl
@@ -0,0 +1,34 @@
1<h2><!--TITLE--></h2>
2
3<form action="<!--ACTION-->" method="post" class="uniForm">
4 <!--BEGIN ISERROR-->
5 <div id="errorMsg">
6 <h3>Oops! There was an error!</h3>
7
8 <ol>
9 <!--BEGIN ERROR-->
10 <li><a href="#error<!--ERROR.ID-->" title="Jump to error"><!--ERROR.TEXT--></a></li>
11 <!--END ERROR-->
12 </ol>
13 </div>
14 <!--END ISERROR-->
15
16 <!--BEGIN FLASH-->
17 <div id="OKMsg"><p><!--FLASH.TEXT--></p></div>
18 <!--END FLASH-->
19
20 <fieldset class="blockLabels">
21 <div class="ctrlHolder<!--ISQUOTEERROR-->">
22 <!--BEGIN QUOTEERROR-->
23 <p id="error<!--QUOTEERROR.ID-->" class="errorField"><strong><!--QUOTEERROR.TEXT--></strong></p>
24 <!--END QUOTEERROR-->
25 <label for="quote">Quote</label>
26 <textarea name="quote" id="quote" style="height: 24em"><![CDATA[<!--QUOTEVALUE-->]]></textarea>
27 </div>
28 </fieldset>
29
30 <div class="buttonHolder">
31 <button type="reset" class="resetButton">Reset</button>
32 <button type="submit" class="primaryAction">Submit</button>
33 </div>
34</form>