123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- <?php
- require_once('database.php');
- require_once('templating.php');
- require_once('data/User.php');
- require_once('data/Group.php');
- require_once('data/TagCloud.php');
- if ($logged_in == false) {
- $smarty->assign('pageheading', 'Error!');
- $smarty->assign('details', 'Not logged in! You shouldn\'t be here!');
- $smarty->display('error.tpl');
- die();
- }
- if ($_REQUEST['group'] == 'new') {
- if ($_REQUEST['new']) {
- try {
- $result = Group::create(strtolower($_REQUEST['new']), $this_user);
- } catch (Exception $e) {
- $smarty->assign('pageheading', 'Error!');
- $smarty->assign('details', $e->getMessage());
- $smarty->display('error.tpl');
- die();
- }
- if ($result instanceof Group) {
- header('Location: ' . $base_url . '/edit_group.php?group=' . $_REQUEST['new']);
- exit();
- }
- } else {
- $smarty->assign('newform', true);
- try {
- $aTagCloud = TagCloud::GenerateTagCloud(TagCloud::scrobblesTable(), 'artist');
- $smarty->assign('tagcloud', $aTagCloud);
- } catch (Exception $e) {}
- $smarty->display('edit_group.tpl');
- exit();
- }
- }
- $group = new Group($_REQUEST['group']);
- if ($group->owner->name != $this_user->name) {
- $smarty->assign('pageheading', 'Error!');
- $smarty->assign('details', 'You don\'t own this group!');
- $smarty->display('error.tpl');
- die();
- }
- $errors = array();
- if ($_POST['submit']) {
- if (!empty($_POST['homepage'])) {
-
-
- if (!preg_match('/^[a-z0-9\+\.\-]+\:/i', $_POST['homepage'])) {
- $errors[] = 'Homepage must be a URI.';
- }
- if (preg_match('/\s/', $_POST['homepage'])) {
- $errors[] = 'Homepage must be a URI. Valid URIs cannot contain whitespace.';
- }
- }
- if (!empty($_POST['avatar_uri'])) {
-
-
- if (!preg_match('/^[a-z0-9\+\.\-]+\:/i', $_POST['avatar_uri'])) {
- $errors[] = 'Avatar must be a URI.';
- }
- if (preg_match('/\s/', $_POST['avatar_uri'])) {
- $errors[] = 'Avatar must be a URI. Valid URIs cannot contain whitespace.';
- }
- }
- if (!isset($errors[0])) {
- if ($_POST['owner'] != $group->owner->username) {
- try {
- $new_owner = new User($_POST['owner']);
- } catch (Exception $e) {
- $smarty->assign('pageheading', 'Error!');
- $smarty->assign('details', 'Cannot assign group ownership to someone who does not exist!');
- $smarty->display('error.tpl');
- die();
- }
- if (!$group->memberCheck($new_owner)) {
- $smarty->assign('pageheading', 'Error!');
- $smarty->assign('details', 'Cannot assign group ownership to someone who is not a member!');
- $smarty->display('error.tpl');
- die();
- } else {
- $group->owner = $new_owner;
- }
- }
- $group->fullname = $_POST['fullname'];
- $group->homepage = $_POST['homepage'];
- $group->bio = $_POST['bio'];
- $group->avatar_uri = $_POST['avatar_uri'];
- $group->save();
- header('Location: ' . $group->getURL());
- exit;
- }
- if (isset($errors[0])) {
- header('Content-Type: text/plain');
-
- exit;
- }
- }
- if (isset($group->name)) {
-
- $smarty->assign('group', $group->name);
- if ($_POST['submit']) {
- $smarty->assign('fullname', $_POST['fullname']);
- $smarty->assign('bio', $_POST['bio']);
- $smarty->assign('homepage', $_POST['homepage']);
- $smarty->assign('avatar_uri', $_POST['avatar_uri']);
- } else {
- $smarty->assign('fullname', $group->fullname);
- $smarty->assign('bio', $group->bio);
- $smarty->assign('homepage', $group->homepage);
- $smarty->assign('avatar_uri', $group->avatar_uri);
- }
- $smarty->assign('members', $group->getUsers());
- $smarty->assign('owner', $group->owner);
-
- $smarty->assign('pageheading', $errors);
- $smarty->assign('newform', false);
- try {
- $aUserTagCloud = $group->tagCloudData();
- $smarty->assign('tagcloud', $aTagCloud);
- } catch (Exception $e) {}
- $smarty->display('edit_group.tpl');
- } else {
- $smarty->assign('pageheading', 'Group not found');
- $smarty->assign('details', 'Shall I call in a missing peoples report? This shouldn\'t happen.');
- $smarty->display('error.tpl');
- }
|