Example #1
0
 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);
 }
Example #3
0
<?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>';
Example #4
0
<?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';