function editHumans($slug, Request $request, Application $app) { if (!$this->build($slug, $request, $app)) { $app->abort(404, "Event does not exist."); } $humanRepo = new HumanRepository(); if ('POST' == $request->getMethod() && $request->request->get('CSFRToken') == $app['websession']->getCSFRToken()) { if ($request->request->get('addHuman')) { $data = $request->request->get('addHuman'); if (!is_array($data)) { $data = array($data); } foreach ($data as $slug) { $human = $humanRepo->loadBySlug($app['currentSite'], $slug); if ($human) { $humanRepo->addHumanToEvent($human, $this->parameters['event'], $app['currentUser']); } } } elseif ($request->request->get('removeHuman')) { $human = $humanRepo->loadBySlug($app['currentSite'], $request->request->get('removeHuman')); if ($human) { $humanRepo->removeHumanFromEvent($human, $this->parameters['event'], $app['currentUser']); } } if ($request->request->get("returnTo") == 'event') { return $app->redirect("/event/" . $this->parameters['event']->getSlugforURL()); } } $trb = new HumanRepositoryBuilder(); $trb->setSite($app['currentSite']); $trb->setIncludeDeleted(false); $trb->setHumansForEvent($this->parameters['event']); $this->parameters['humans'] = $trb->fetchAll(); $this->parameters['filterLimitToArea'] = $request->query->get('limitToArea') != 'no'; $this->parameters['filterFreeTextSearch'] = $request->query->get('freeTextSearch'); $trb = new HumanRepositoryBuilder(); $trb->setSite($app['currentSite']); $trb->setIncludeDeleted(false); $trb->setHumansNotForEvent($this->parameters['event']); if ($this->parameters['area'] && $this->parameters['filterLimitToArea']) { $trb->setArea($this->parameters['area']); } if ($this->parameters['filterFreeTextSearch']) { $trb->setFreeTextsearch($this->parameters['filterFreeTextSearch']); } $trb->setLimit(200); $this->parameters['humansToAdd'] = $trb->fetchAll(); return $app['twig']->render('site/event/edit.humans.html.twig', $this->parameters); }
function tweetHumans($slug, Request $request, Application $app) { if (!$this->build($slug, $request, $app)) { $app->abort(404, "Area does not exist."); } $trb = new HumanRepositoryBuilder(); $trb->setSite($app['currentSite']); $trb->setIncludeDeleted(false); $trb->setArea($this->parameters['area']); $trb->setLimit(200); $this->parameters['humans'] = array(); foreach ($trb->fetchAll() as $human) { if ($human->getTwitter()) { $this->parameters['humans'][] = $human; } } // =================================== If no Candidates if (!$this->parameters['humans']) { return $app['twig']->render('site/area/tweetToCandidates.noHumans.html.twig', $this->parameters); } // =================================== If Tweeting if ($request->request->has("action") and $request->request->has("action") == 'tweet') { $humanSlugs = $request->request->get('human'); $foundHumans = false; $tweet = "."; if (is_array($humanSlugs)) { foreach ($this->parameters['humans'] as $human) { if (in_array($human->getSlug(), $humanSlugs)) { $tweet .= '@' . $human->getTwitter() . ' '; $foundHumans = true; } } } if ($foundHumans) { $tweet .= 'Could you add your #ge2015 events to ' . 'https://' . $app['config']->webIndexDomain . '/area/' . $this->parameters['area']->getSlugForURL(); $url = 'https://twitter.com/intent/tweet?text=' . urlencode($tweet); return $app->redirect($url); } } // =================================== Show Form return $app['twig']->render('site/area/tweetToCandidates.html.twig', $this->parameters); }
public function getParameters() { $out = array(); $trb = new HumanRepositoryBuilder(); $trb->setSite($this->app['currentSite']); $trb->setIncludeDeleted(false); $trb->setHumansForEvent($this->parameters['event']); $out['humans'] = $trb->fetchAll(); if (count($out['humans']) == 0 && $this->app['currentUserActions']->has("org.openacalendar", "eventEditDetails") && $this->parameters['area'] && !$this->parameters['event']->isInPast()) { $trb = new HumanRepositoryBuilder(); $trb->setSite($this->app['currentSite']); $trb->setIncludeDeleted(false); $trb->setArea($this->parameters['area']); $trb->setLimit(100); $out['humansToAdd'] = $trb->fetchAll(); } else { $out['humansToAdd'] = array(); } return $out; }