From 681a40af319373510f30793d3b892bd9700213fb Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Mon, 25 Aug 2008 14:17:08 +0000 Subject: Central: Added Activate Subscription form Also added an option to the user panel that allows you to edit configuration values if you're an admin. Refs #25 --- central/trunk/activatesub.php | 124 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 central/trunk/activatesub.php (limited to 'central/trunk/activatesub.php') diff --git a/central/trunk/activatesub.php b/central/trunk/activatesub.php new file mode 100644 index 0000000..46a05ec --- /dev/null +++ b/central/trunk/activatesub.php @@ -0,0 +1,124 @@ + 0) + { + showForm($_POST['url'], $errors); + } else { + if ($_POST['submit'] == "Verify") + { + switch (instaDisc_addSubscription($_SESSION['username'], $_POST['url'])) + { + case 0: + $template = new FITemplate('activatedsub'); + $template->add('SITENAME', instaDisc_getConfig('siteName')); + $template->display(); + break; + + case 1: + addError($numOfErrors, $errors, '', 'Unknown error'); + showForm($_POST['url'], $errors); + break; + + case 2: + addError($numOfErrors, $errors, 'url', 'Subscription could not be found'); + showForm($_POST['url'], $errors); + break; + + case 3: + addError($numOfErrors, $errors, '', 'Subscription File is not well-formed'); + showForm($_POST['url'], $errors); + break; + + case 4: + addError($numOfErrors, $errors, '', 'Key in Subscription File is incorrect'); + showForm($_POST['url'], $errors); + break; + } + } else { + instaDisc_cancelSubscription($_SESSION['username'], $_POST['url']); + } + } + } +} else { + header('Location: index.php'); +} + +function showForm($url, $errors) +{ + $template = new FITemplate('activatesub'); + $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('URL_ERR', ifErrors($errors, 'url')); + + doErrors($template, $errors, 'url'); + + $template->add('URL', $url); + + $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); +} + +?> -- cgit 1.4.1