public function process() { global $db; $sql = 'INSERT INTO events (title, dateStart, dateFinish, organizer, venue, published, website, createdDate, createdBy) VALUES (:title, :dateStart, :dateFinish, :organizer, :venue, :published, :website, :createdDate, :createdBy)'; $stmt = $db->prepare($sql); $stmt->bindValue(':title', $this->getElementValue('title')); $stmt->bindValue(':dateStart', $this->getElementValue('dateStart')); $stmt->bindValue(':dateFinish', $this->getElementValue('dateFinish')); $stmt->bindValue(':website', $this->getElementValue('eventWebsite')); $stmt->bindValue(':createdDate', date(DATE_ATOM)); $stmt->bindValue(':createdBy', Session::getUser()->getId()); if (Session::getUser()->hasPriv('CREATE_EVENTS')) { $this->addElement(Element::factory('html', 'msg', null, 'Hi superuser.')); $stmt->bindValue(':organizer', $this->getElementValue('organizer')); $stmt->bindValue(':published', 1); $stmt->bindValue(':venue', $this->getElementValue('venue')); } else { if (Session::getUser()->getData('organization') != null) { $stmt->bindValue(':venue', $this->getElementValue('venue')); $organizer = fetchOrganizer(Session::getUser()->getData('organization')); if ($organizer['published']) { $this->addElement(Element::factory('html', 'msg', null, 'You are authorized to create public events for your organization.')); $stmt->bindValue(':organizer', $organizer['id']); $stmt->bindValue(':published', 1); } else { $this->addElement(Element::factory('html', 'msg', null, 'Your event will be linked to your organization, but will not be public until your organization has been approved.')); $stmt->bindValue(':organizer', $organizer['id']); $stmt->bindValue(':published', 0); } } else { $this->addElement(Element::factory('html', 'msg', null, 'You can create events, but they will not appear in public lists until approved.')); $stmt->bindValue(':organizer', ''); $stmt->bindValue(':published', 0); $stmt->bindValue(':venue', ''); } } $stmt->execute(); $eventId = $db->lastInsertId(); Logger::messageDebug('Event ' . $this->getElementValue('title') . ' created by: ' . Session::getUser()->getUsername(), LocalEventType::CREATE_EVENT); redirect('viewEvent.php?id=' . $eventId, 'Event created.'); }
public function __construct() { parent::__construct('formEditOrganizer', 'Edit Organizer'); $organizer = fetchOrganizer($_REQUEST['formEditOrganizer-id']); if (Session::getUser()->hasPriv('PUBLISH_ORGANIZERS')) { $this->addElement(Element::factory('checkbox', 'published', 'Published', $organizer['published'])); } $this->addElement(Element::factory('text', 'title', 'Title', $organizer['title'])); $this->addElement(Element::factory('hidden', 'id', null, $organizer['id'])); $this->addElement(Element::factory('text', 'websiteUrl', 'Website', $organizer['websiteUrl'])); $this->addElement(Element::factory('date', 'assumedStale', 'Assumed stale since', $organizer['assumedStale'])); $this->addElement(Element::factory('text', 'steamGroupUrl', 'Steam group URL', htmlify($organizer['steamGroupUrl']))); $this->getElement('steamGroupUrl')->setMinMaxLengths(0, 255); $this->addElement(Element::factory('textarea', 'blurb', 'Blurb', $organizer['blurb'])); $this->addElement(Element::factory('file', 'banner', 'Banner image', null, 'Your organizer banner image. Preferably a PNG, maximum image size is 468x160')); $this->getElement('banner')->destinationDir = 'resources/images/organizer-logos/'; $this->getElement('banner')->destinationFilename = $organizer['id'] . '.jpg'; $this->getElement('banner')->setMaxImageBounds(468, 160); if (!Session::hasPriv('EDIT_ORGANIZER') && Session::getUser()->getData('organization') != $organizer['id']) { throw new PermissionsException(); } $this->addButtons(Form::BTN_SUBMIT); }
<?php require_once 'includes/common.php'; $organizer = fetchOrganizer(fromRequestRequireInt('id')); define('TITLE', 'Organizer: ' . $organizer['title']); require_once 'includes/widgets/header.php'; $organizer['logoUrl'] = getOrganizerLogoUrl($organizer['id']); $tpl->assign('organizer', $organizer); $events = fetchEventsFromOrganizerId($organizer['id']); $tpl->assign('events', $events); if (Session::isLoggedIn() && (Session::getUser()->hasPriv('SUPERUSER') || Session::getUser()->getData('organization') == $organizer['id'])) { $sql = 'SELECT u.id, u.username, u.lastLogin FROM users u WHERE u.organization = :organizer'; $stmt = $db->prepare($sql); $stmt->bindValue(':organizer', $organizer['id']); $stmt->execute(); $tpl->assign('associatedUsers', $stmt->fetchAll()); $sql = 'SELECT v.id, v.title, count(e.id) AS eventCount FROM venues v LEFT JOIN events e ON e.venue = v.id WHERE v.organizer = :organizer GROUP BY v.id'; $stmt = $db->prepare($sql); $stmt->bindValue(':organizer', $organizer['id']); $stmt->execute(); $tpl->assign('associatedVenues', $stmt->fetchAll()); } $tpl->assign('userlist', Session::hasPriv('USERLIST')); $tpl->display('viewOrganizer.tpl'); startSidebar(); $nextEvent = getNextEvent($organizer['id']); echo '<div class = "infobox"><h2>Next event for ' . $organizer['title'] . '</h2>'; if (empty($nextEvent)) { echo '<p style = "color:red">To the best of our knowledge, ' . $organizer['title'] . ' has nothing planned... :(</p>'; } else { echo '<p>Next event is <a href = "viewEvent.php?id=' . $nextEvent['id'] . '">' . $nextEvent['title'] . '</a></p>';
<?php require_once 'includes/common.php'; if (!Session::isLoggedIn()) { redirect('loginregister.php', 'You need to login to view your account.'); } require_once 'includes/widgets/header.php'; $organizer = Session::getUser()->getData('organization'); if (!empty($organizer)) { $organization = fetchOrganizer(Session::getUser()->getData('organization')); $tpl->assign('organization', $organization); } $tpl->assign('userEmail', Session::getUser()->getData('email')); $tpl->assign('usernameSteam', Session::getUser()->getData('usernameSteam')); $tpl->display('account.tpl'); startSidebar(); require_once 'includes/widgets/adminBox.php'; require_once 'includes/widgets/footer.php';