コード例 #1
1
 /**
  * Processing of Upload Photos Form
  *
  * @Privilege('generate')
  *
  * @param Form $form
  */
 public function uploadPhotosFormSucceded(Form $form)
 {
     $values = $form->getValues();
     $event = $this->loadItem($values['id']);
     $calendar = $event->ref('calendar');
     $year = $calendar->yearpart === 'podzim' ? $calendar->year : $calendar->year - 1;
     $date = substr($event->datestart, 0, 4) . substr($event->datestart, 5, 2) . substr($event->datestart, 8, 2);
     // check if the year dir exist. if not, create one
     $params = $this->context->parameters;
     $dirYear = $params['wwwDir'] . $params['chroniclePhotosStorage'] . '/' . $year . ($year + 1) . '/';
     // check if the event dir exists. if not, create one
     $dir = $dirYear . $date . '/';
     if (!file_exists($dir)) {
         mkdir($dir, 0777, TRUE);
     }
     \Tracy\Debugger::barDump($dir);
     // start uploading files
     $counter = 0;
     foreach ($values['upload'] as $file) {
         if ($file->isOK()) {
             if ($file->isImage()) {
                 do {
                     $counter += 1;
                     //increment counter until you hit empty space for file
                     $filePath = $dir . \Nette\Utils\Strings::padLeft($counter, 4, '0') . '.jpg';
                 } while (file_exists($filePath));
                 $image = $file->toImage();
                 $image->save($filePath, 85, \Nette\Image::JPEG);
                 $this->database->table('chronicle_photos')->insert(['event_id' => $values['id'], 'order' => $counter]);
                 $this->flashMessage("Soubor " . $file->getName() . " byl úspěšně nahrán!");
             } else {
                 $form->addError('Soubor' . $file->getName() . ' nebyl rozpoznán jako fotka.');
             }
         } else {
             $form->addError('Nepodařilo se nahrát soubor:' . $file->getName());
         }
     }
     //change event visibility
     if (!array_key_exists('showchronicle', $values)) {
         //user did not have the sufficient permission
         $showchronicle = FALSE;
     } else {
         $showchronicle = $values['showchronicle'] ? TRUE : FALSE;
     }
     $this->events->showChronicle($values['id'], $showchronicle);
     if (!$form->hasErrors()) {
         $this->redirect('default');
     }
 }
コード例 #2
0
 /**
  * Sets variables for view of "Akce" page
  */
 public function renderDefault()
 {
     $template = $this->template;
     $template->title = "Akce";
     $template->events = $this->events->getCurrentEvents();
     $template->calendars = $this->calendars->getVisibleCalendars();
 }
コード例 #3
0
 /**
  * Sets variables for view of "Úvod" page
  */
 public function renderDefault()
 {
     $template = $this->template;
     $template->chronicle = $this->events->getNewestChronicle();
     $template->news = $this->news->getNewest(4);
     $template->leader = $this->members->getLeader();
 }
コード例 #4
0
 public function editCalendar()
 {
     $validator = Validator::make(Request::all(), ['id' => 'required', 'allDay' => 'required', 'start' => 'required|date_format:Y-m-d H:i:s', 'end' => 'required|date_format:Y-m-d H:i:s', 'title' => 'required', 'color' => 'required']);
     if ($validator->fails()) {
         return new JsonResponse($validator->errors(), 422);
     }
     $event = Event::find(Request::input('id'));
     $event->title = Request::input('title');
     $event->start = Request::input('start');
     $event->end = Request::input('end');
     $event->allDay = Request::input('allDay');
     $event->color = Request::input('color');
     $event->save();
     return new JsonResponse(Event::all());
 }
コード例 #5
0
 /**
  * Sets variables for view of "Default" page
  */
 public function renderDefault()
 {
     $template = $this->template;
     $template->title = "Kronika";
     $vp = new \VisualPaginator($this, 'vp');
     $vp->short = FALSE;
     //output the whole list
     $vp->setTemplate('template-schoolyear.phtml');
     $paginator = $vp->getPaginator();
     $year = idate("m") < 8 ? idate("Y") - 1 : idate("Y");
     //school year start in August
     $paginator->setBase($this->context->parameters['baseChronicleYear']);
     $page = $vp->page ? $vp->page : $year;
     $paginator->setItemCount($year - $paginator->getBase() + 1);
     $paginator->setItemsPerPage(1);
     $paginator->setPage($page);
     $template->chronicles = $this->events->getEventsForChronicle($page);
 }
コード例 #6
0
 /**
  * Custom values loading function for dependent select
  *
  * @param $form
  * @return array ('value' => 'text')            for selectbox
  */
 public function getValuesEventId($form)
 {
     $type = $form['type']->getValue();
     switch ($type) {
         case 'Akce':
             $event = $this->events->getEventsWithoutNews();
             break;
         case 'Kronika':
             $event = $this->events->getChroniclesWithoutNews();
             break;
         default:
             return ['' => '- - - - -'];
     }
     $event = $event->fetchAll();
     array_walk($event, function (&$value, $key) use(&$event) {
         $value = $value->dateend->format('Y/m/d') . ' - ' . $value->name;
     });
     return $event;
 }
コード例 #7
0
 /**
  * Processing of Event Edit form
  *
  * @Privilege("edit")
  *
  * @param Form $form
  */
 public function editEventFormSucceded(Form $form)
 {
     $values = $form->getValues(TRUE);
     //error checking (multiple meetings with same type)
     $event_meetings = $values['event_meeting'];
     $error = FALSE;
     $meeting_places = [];
     foreach ($event_meetings as $meeting) {
         if (in_array($meeting['comment'], $meeting_places)) {
             $error = TRUE;
         } else {
             array_push($meeting_places, $meeting['comment']);
         }
     }
     //error checking complete
     if ($error) {
         $form->addError('Nemůžete mít dva srazy stejného typu.');
     } else {
         //form processing
         $meeting = $this->database->table('event_meeting');
         $meeting->where('event_id', $values['id'])->delete();
         foreach ($event_meetings as $event_meeting) {
             $event_meeting['event_id'] = $values['id'];
             $meeting->insert($event_meeting);
         }
         unset($values['event_meeting']);
         unset($values['send']);
         if ($this->user->isAllowed('Admin:Default:Event', 'show')) {
             // User can choose
             $values['showevent'] = $values['showevent'] ? 1 : 0;
             //translate TRUE/FALSE to 1/0
         } else {
             $values['showevent'] = 0;
             //default value
         }
         $this->events->get($values['id'])->update($values);
         $this->flashMessage('Lísteček byl úspěšně upraven.');
         $this->redirect('default');
     }
 }
コード例 #8
0
 public function run()
 {
     DB::statement('SET FOREIGN_KEY_CHECKS=0;');
     DB::table('user')->truncate();
     DB::table('role')->truncate();
     DB::table('role_user')->truncate();
     DB::table('event')->truncate();
     DB::table('exp_level')->truncate();
     DB::statement('SET FOREIGN_KEY_CHECKS=1;');
     $faker = Factory::create();
     $uQ = new User();
     $uQ->login = '******';
     $uQ->pseudo = 'QsAnakrose';
     $uQ->password = Hash::make('quentin');
     $uQ->email = '*****@*****.**';
     $uQ->streaming = 1;
     $uQ->twitch_channel = 'riotgames';
     $uQ->save();
     $data = [];
     for ($i = 0; $i < 110; $i++) {
         $username = $faker->unique()->username;
         $data[] = ['login' => $username, 'pseudo' => $username, 'email' => $faker->unique()->freeEmail, 'password' => Hash::make($username)];
     }
     User::insert($data);
     $this->command->info('Users created');
     $admin = new Role();
     $admin->title = 'admin';
     $admin->save();
     $streamer = new Role();
     $streamer->title = 'streamer';
     $streamer->save();
     $this->command->info('Roles created');
     $uQ->becomeAdmin();
     $uQ->becomeStreamer();
     for ($i = 2; $i < 13; $i++) {
         $u = User::find($i);
         $u->becomeStreamer();
         $u->twitch_channel = $i;
         $u->description = $u->login . 'lorem ipsum dolor. Lol.';
         $rand = rand(0, 2);
         if ($rand == 0) {
             $u->streaming = 1;
         } else {
             $u->streaming = 0;
         }
         /*
         $avatarManager = new AvatarManager();
         $intervManager = $avatarManager->getImgManager();
         $width = $avatarManager->getAvatarWidth();
         $color = substr(md5(rand()), 0, 6);
         $intervManager->canvas($width, $width, $color);
         */
         $u->save();
     }
     $su = new StreamingUserService();
     $su->update();
     $this->command->info('Roles attached');
     $event = new Event();
     $event->title = 'Hugo';
     $event->start = '2015-06-26T12:30:00+02:00';
     $event->end = '2015-06-26T15:30:00+02:00';
     $event->allDay = 'false';
     $event->color = '#FF0000';
     $event->timezone = '+02:00';
     $event->save();
     $this->command->info('Test event created');
     $expManager = new ExperienceManager();
     $data = $expManager->generateExperienceSystem();
     ExpLevel::insert($data);
     $this->command->info('Experience system initialized');
 }
コード例 #9
0
 public function getHostEvents($hostid)
 {
     $events = Event::where('hostid', $hostid)->get();
     $array = array('success' => true, 'events' => $events);
     return json_encode($array);
 }
コード例 #10
0
     //perform insertion//
     $json = $event->addEvent($hostid, $name, $startdate, $enddate, $addr1, $addr2, $city, $state, $zip, $islocal, $isvirtual, $ticketprice, $description);
     //return results//
     echo $json;
 });
 //get specific event//
 $app->get('/id/:eventid/', function ($eventid) use($app, $resourceServer) {
     $event = new Event();
     $json = $event->getEvent($eventid);
     echo $json;
 });
 //get events for a specific host//
 $app->get('/host/', $authorize(), function () use($app, $resourceServer) {
     //get currently logged in host id from session//
     $hostid = $resourceServer->getAccessToken()->getSession()->getOwnerId();
     $event = new Event();
     $json = $event->getHostEvents($hostid);
     echo $json;
 });
 //send out emails to winners//
 //never got finished. localhost is a very uncooperative with sending emails...
 // $app->post('/notify/', function() use ($app, $resourceServer) {
 // 	$to = $app->request->post('to');
 // 	$subject = $app->request->post('subject');
 // 	$message = $app->request->post('message');
 // 	$headers = "From: goraffleme@aol.com";
 // 	if(mail($to, $subject, $message)) {
 // 		$array = array('success' => true,
 // 		'message' => 'Mail Sent');
 // 		echo json_encode($array);
 // 	}
コード例 #11
0
 });
 //determine prize winner//
 $app->post('/winner/', $authorize(), function () use($app, $resourceServer) {
     $winner = new Winner();
     $item = new Item();
     $itemid = $app->request->post('itemid');
     $item = $item->getItem($itemid);
     $item = json_decode($item);
     //check that item exists//
     if ($item->success) {
         $ticket = new Ticket();
         $item = $item->item;
         //get all the tickets for the event and perform messy json conversions -_- //
         $ticketDecode = json_decode($ticket->getTickets($item->eventid), true);
         $tickets = $ticketDecode['tickets'];
         $event = new Event();
         //get currently logged on host//
         $userid = $resourceServer->getAccessToken()->getSession()->getOwnerId();
         //verify that current host owns the event of the item//
         if ($event->verifyHost($item->eventid, $userid)) {
             //pick a random ticket//
             if (sizeof($tickets) > 0) {
                 $numTix = sizeof($tickets);
                 $luckyNum = mt_rand(0, $numTix);
                 $ticket = $tickets[$luckyNum];
                 //more messy json conversions...//
                 $lucky = json_decode($winner->pickWinner($itemid, $ticket['participantid']));
                 $luckyWinner = $lucky->winner;
                 //verify that the item has not been won//
                 if ($luckyWinner != "Winner already chosen") {
                     //get the winner's personal info to pass back with the winning ticket info//