about summary refs log tree commit diff stats
path: root/series/trunk/admin/editsub.php
blob: 20c90014f30428cb8fc0d915dc1cdcf9a80372f7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Builtin */
.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
.highlight .nd { color: #555555 } /* Name.Decorator */
.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0066bb; font-weight: bol
<?php

/* InstaDisc Series - A Four Island Project */

/** 
 * require_once() is used to ensure
 * the ACP files are being called by
 * admin.php instead of their actual
 * locations admin/.
 * The _once() part ensures no problem
 * arises as includes/instadisc.php has
 * already been included from admin.php
 */
require_once('includes/instadisc.php');

if (!isset($_SESSION['username']))
{
	header('Location: index.php');
	exit;
}

if (!instaDisc_isAdmin($_SESSION['username']))
{
	$subs = instaDisc_listSubscriptions($_SESSION['username']);
	$i=0;
	$notfound=1;
	for ($i=0;isset($subs[$i]);$i++)
	{
		if (!isset($_GET['submit']))
		{
			if ($subs[$i]['identity'] == $_POST['id'])
			{
				$notfound=0;
			}
		} else {
			if ($subs[$i]['id'] == $_GET['subid'])
			{
				$notfound=0;
			}
		}
	}

	if ($notfound == 1)
	{
		header('Location: index.php');
		exit;
	}
}

if (!isset($_GET['submit']))
{
	$sub = instaDisc_getSubscriptionByID($_GET['subid']);
	showForm($sub['identity'],$sub['title'],$sub['url'],$sub['category'],$sub['password'],array());
} else {
	$numOfErrors = 0;
	$errors = array();

	if ($_POST['title'] == '')
	{
		addError($numOfErrors, $errors, 'title', 'Title is a required field');
	}

	if ($_POST['url'] == '')
	{
		addError($numOfErrors, $errors, 'url', 'Subscription URL is a required field');
	}

	if ($_POST['category'] == '')
	{
		addError($numOfErrors, $errors, 'category', 'Category is a required field');
	}

	if ($numOfErrors > 0)
	{
		showForm($_POST['id'], $_POST['title'], $_POST['url'], $_POST['category'], $_POST['password'], $errors);
	} else {
		instaDisc_initSubscription
['url'], $_POST['title'], $_POST['category'], $_POST['personal'], $_POST['password']); $template = new FITemplate('editedsub'); $template->add('SITENAME', instaDisc_getConfig('siteName')); $template->display(); } } function showForm($id, $title, $url, $category, $password, $errors) { $template = new FITemplate('editsub'); $template->add('SITENAME', instaDisc_getConfig('siteName')); if (isset($errors[1])) { $template->adds_block('ERROR', array('ex'=>'1')); foreach ($errors as $name => $value) { $template->adds_block('ERRORS', array( 'NAME' => $name, 'MSG' => $value['msg'])); } } $template->add('TITLE_ERR', ifErrors($errors, 'title')); $template->add('URL_ERR', ifErrors($errors, 'url')); $template->add('CATEGORY_ERR', ifErrors($errors, 'url')); $template->add('PASSWORD_ERR', ifErrors($errors, 'url')); doErrors($template, $errors, 'title'); doErrors($template, $errors, 'url'); doErrors($template, $errors, 'category'); doErrors($template, $errors, 'password'); $template->add('ID', $id); $template->add('TITLE', $title); $template->add('URL', $url); $template->add('CATEGORY', $category); $template->add('PASSWORD', $password); $template->display(); } function ifErrors($errors, $id) { foreach ($errors as $name => $value) { if ($value['field'] == $id) { return ' error'; } } return ''; } function doErrors($template, $errors, $id) { foreach ($errors as $name => $value) { if ($value['field'] == $id) { $template->adds_block(strtoupper($id) . '_ERRS', array( 'NAME' => $name, 'VALUE' => $value['msg'])); } } } function addError(&$numOfErrors, &$errors, $field, $msg) { $numOfErrors++; $errors[$numOfErrors] = array('field' => $field, 'msg' => $msg); } ?>