about summary refs log tree commit diff stats
path: root/series
diff options
context:
space:
mode:
Diffstat (limited to 'series')
-rw-r--r--series/core/trunk/admin/addsub.php129
-rw-r--r--series/core/trunk/includes/instadisc.php6
-rw-r--r--series/core/trunk/theme/addedsub.tpl13
-rw-r--r--series/core/trunk/theme/addsub.tpl104
4 files changed, 252 insertions, 0 deletions
diff --git a/series/core/trunk/admin/addsub.php b/series/core/trunk/admin/addsub.php new file mode 100644 index 0000000..26a8109 --- /dev/null +++ b/series/core/trunk/admin/addsub.php
@@ -0,0 +1,129 @@
1<?php
2
3/* InstaDisc Series - A Four Island Project */
4
5/**
6 * require_once() is used to ensure
7 * the ACP files are being called by
8 * admin.php instead of their actual
9 * locations admin/.
10 * The _once() part ensures no problem
11 * arises as includes/instadisc.php has
12 * already been included from admin.php
13 */
14require_once('includes/instadisc.php');
15
16if (!isset($_SESSION['username']))
17{
18 header('Location: index.php');
19 exit;
20}
21
22if (!isset($_GET['submit']))
23{
24 showForm('','','','','',array());
25} else {
26 $numOfErrors = 0;
27 $errors = array();
28
29 if ($_POST['id'] == '')
30 {
31 addError($numOfErrors, $errors, 'id', 'Subscription ID is a required field');
32 }
33
34 if ($_POST['title'] == '')
35 {
36 addError($numOfErrors, $errors, 'title', 'Title is a required field');
37 }
38
39 if ($_POST['url'] == '')
40 {
41 addError($numOfErrors, $errors, 'url', 'Subscription URL is a required field');
42 }
43
44 if ($_POST['category'] == '')
45 {
46 addError($numOfErrors, $errors, 'category', 'Category is a required field');
47 }
48
49 if ($numOfErrors > 0)
50 {
51 showForm($_POST['id'], $_POST['title'], $_POST['url'], $_POST['category'], $_POST['password'], $errors);
52 } else {
53 instaDisc_addSubscription($_POST['id'], $_POST['title'], $_POST['url'], $_POST['category'], $_POST['password']);
54
55 $template = new FITemplate('addedsub');
56 $template->add('SITENAME', instaDisc_getConfig('siteName'));
57 $template->display();
58 }
59}
60
61function showForm($id, $title, $url, $category, $password, $errors)
62{
63 $template = new FITemplate('addsub');
64 $template->add('SITENAME', instaDisc_getConfig('siteName'));
65
66 if (isset($errors[1]))
67 {
68 $template->adds_block('ERROR', array('ex'=>'1'));
69
70 foreach ($errors as $name => $value)
71 {
72 $template->adds_block('ERRORS', array( 'NAME' => $name,
73 'MSG' => $value['msg']));
74 }
75 }
76
77 $template->add('ID_ERR', ifErrors($errors, 'id'));
78 $template->add('TITLE_ERR', ifErrors($errors, 'title'));
79 $template->add('URL_ERR', ifErrors($errors, 'url'));
80 $template->add('CATEGORY_ERR', ifErrors($category, 'url'));
81 $template->add('PASSWORD_ERR', ifErrors($password, 'url'));
82
83 doErrors($template, $errors, 'id');
84 doErrors($template, $errors, 'title');
85 doErrors($template, $errors, 'url');
86 doErrors($template, $errors, 'category');
87 doErrors($template, $errors, 'password');
88
89 $template->add('ID', $id);
90 $template->add('TITLE', $title);
91 $template->add('URL', $url);
92 $template->add('CATEGORY', $category);
93 $template->add('PASSWORD', $password);
94
95 $template->display();
96}
97
98function ifErrors($errors, $id)
99{
100 foreach ($errors as $name => $value)
101 {
102 if ($value['field'] == $id)
103 {
104 return ' error';
105 }
106 }
107
108 return '';
109}
110
111function doErrors($template, $errors, $id)
112{
113 foreach ($errors as $name => $value)
114 {
115 if ($value['field'] == $id)
116 {
117 $template->adds_block(strtoupper($id) . '_ERRS', array( 'NAME' => $name,
118 'VALUE' => $value['msg']));
119 }
120 }
121}
122
123function addError(&$numOfErrors, &$errors, $field, $msg)
124{
125 $numOfErrors++;
126 $errors[$numOfErrors] = array('field' => $field, 'msg' => $msg);
127}
128
129?>
diff --git a/series/core/trunk/includes/instadisc.php b/series/core/trunk/includes/instadisc.php index be6fcee..6cf4657 100644 --- a/series/core/trunk/includes/instadisc.php +++ b/series/core/trunk/includes/instadisc.php
@@ -63,4 +63,10 @@ function instaDisc_changePassword($password)
63 $setconfig3 = mysql_fetch_array($setconfig2); 63 $setconfig3 = mysql_fetch_array($setconfig2);
64} 64}
65 65
66function instaDisc_addSubscription($id, $title, $url, $category, $password = '')
67{
68 $inssub = "INSERT INTO subscriptions (identity, title, url, category, password) VALUES (\"" . mysql_real_escape_string($id) . "\",\"" . mysql_real_escape_string($title) . "\",\"" . mysql_real_escape_string($url) . "\",\"" . mysql_real_escape_string($category) . "\",\"" . mysql_real_escape_string(($password == '' ? '' : md5($password))) . "\")";
69 $inssub2 = mysql_query($inssub);
70}
71
66?> 72?>
diff --git a/series/core/trunk/theme/addedsub.tpl b/series/core/trunk/theme/addedsub.tpl new file mode 100644 index 0000000..5bf2faa --- /dev/null +++ b/series/core/trunk/theme/addedsub.tpl
@@ -0,0 +1,13 @@
1<HTML>
2 <HEAD>
3 <TITLE><!--SITENAME--> InstaDisc Series Control</TITLE>
4 </HEAD>
5
6 <BODY>
7 <CENTER>
8 <H1>InstaDisc Add Subscription</H1>
9
10 <P>You've successfully added a subscription! <A HREF="admin.php">Back to the ACP</A>
11 </CENTER>
12 </BODY>
13</HTML>
diff --git a/series/core/trunk/theme/addsub.tpl b/series/core/trunk/theme/addsub.tpl new file mode 100644 index 0000000..f16cee1 --- /dev/null +++ b/series/core/trunk/theme/addsub.tpl
@@ -0,0 +1,104 @@
1<HTML>
2 <HEAD>
3 <TITLE><!--SITENAME--> InstaDisc Series Control</TITLE>
4 <LINK REL="stylesheet" TYPE="text/css" HREF="theme/uniform.css">
5 </HEAD>
6
7 <BODY>
8 <CENTER>
9 <H1>InstaDisc Add Subscription</H1>
10
11 <P>If you would like to add a new subscription to Series Control, please fill out the form below.
12 </CENTER>
13
14 <FORM CLASS="uniform" ACTION="./admin.php?id=addsub&amp;submit=" METHOD="POST">
15
16 <!--BEGIN ERROR-->
17 <DIV ID="errorMsg">Uh oh! Validation errors!<P>
18 <OL>
19 <!--END ERROR-->
20
21 <!--BEGIN ERRORS-->
22 <LI><A HREF="#error<!--ERRORS.NAME-->"><!--ERRORS.MSG--></A></LI>
23 <!--END ERRORS-->
24
25 <!--BEGIN ERROR-->
26 </OL>
27 </DIV>
28 <!--END ERROR-->
29
30 <FIELDSET CLASS="inlineLabels">
31 <LEGEND>Series Control Info</LEGEND>
32
33 <DIV CLASS="ctrlHolder<!--ID_ERR-->">
34 <!--BEGIN ID_ERRS-->
35 <P ID="error<!--ID_ERRS.NAME-->" CLASS="errorField"><EM>*</EM>
36 <!--ID_ERRS.MSG-->
37 </P>
38 <!--END ID_ERRS-->
39
40 <LABEL FOR="id"><EM>*</EM> Subscription ID: </LABEL>
41 <INPUT TYPE="text" ID="id" NAME="id" CLASS="textInput" VALUE="<!--ID-->">
42
43 <P CLASS="formHint">This is a short, unique string used to identify this subscription in Series Control.</P>
44 </DIV>
45 </FIELDSET>
46
47 <FIELDSET CLASS="inlineLabels">
48 <LEGEND>Subscription Info</LEGEND>
49
50 <DIV CLASS="ctrlHolder<!--TITLE_ERR-->">
51 <!--BEGIN TITLE_ERRS-->
52 <P ID="error<!--TITLE_ERRS.NAME-->" CLASS="errorField"><EM>*</EM>
53 <!--TITLE_ERRS.MSG-->
54 </P>
55 <!--END TITLE_ERRS-->
56
57 <LABEL FOR="title"><EM>*</EM> Title: </LABEL>
58 <INPUT TYPE="text" ID="title" NAME="title" CLASS="textInput" VALUE="<!--TITLE-->">
59 </DIV>
60
61 <DIV CLASS="ctrlHolder<!--URL_ERR-->">
62 <!--BEGIN URL_ERRS-->
63 <P ID="error<!--URL_ERRS.NAME-->" CLASS="errorField"><EM>*</EM>
64 <!--URL_ERRS.MSG-->
65 </P>
66 <!--END URL_ERRS-->
67
68 <LABEL FOR="url"><EM>*</EM> Subscription URL: </LABEL>
69 <INPUT TYPE="text" ID="url" NAME="url" CLASS="textInput" VALUE="<!--URL-->">
70
71 <P CLASS="formHint">This is a unique URL used to identify this subscription on the Client.</P>
72 </DIV>
73
74 <DIV CLASS="ctrlHolder<!--CATEGORY_ERR-->">
75 <!--BEGIN CATEGORY_ERRS-->
76 <P ID="error<!--CATEGORY_ERRS.NAME-->" CLASS="errorField"><EM>*</EM>
77 <!--CATEGORY_ERRS.MSG-->
78 </P>
79 <!--END CATEGORY_ERRS-->
80
81 <LABEL FOR="category"><EM>*</EM> Category: </LABEL>
82 <INPUT TYPE="text" ID="category" NAME="category" CLASS="textInput" VALUE="<!--CATEGORY-->">
83 </DIV>
84
85 <DIV CLASS="ctrlHolder<!--PASSWORD_ERR-->">
86 <!--BEGIN PASSWORD_ERRS-->
87 <P ID="error<!--PASSWORD_ERRS.NAME-->" CLASS="errorField"><EM>*</EM>
88 <!--PASSWORD_ERRS.MSG-->
89 </P>
90 <!--END PASSWORD_ERRS-->
91
92 <LABEL FOR="password">Password: </LABEL>
93 <INPUT TYPE="password" ID="password" NAME="password" CLASS="textInput" VALUE="<!--PASSWORD-->">
94
95 <P CLASS="formHint">If this subscription is encrypted, enter it's password here. Otherwise, leave it blank.</P>
96 </DIV>
97 </FIELDSET>
98
99 <DIV CLASS="buttonHolder">
100 <INPUT TYPE="submit" NAME="submit" VALUE="Submit">
101 </DIV>
102 </FORM>
103 </BODY>
104</HTML>