public function setFromAppAndEventAndEmail(Application $app, EventModel $eventModel, $email) { $this->event_id = $eventModel->getId(); $this->email = $email; $this->subject = "Can we check the details of your event?"; $venueRepo = new VenueRepository(); $venue = null; if ($eventModel->getVenueId()) { $venue = $venueRepo->loadById($eventModel->getVenueId()); } $area = null; $areaRepo = new AreaRepository(); if ($eventModel->getAreaId()) { $area = $areaRepo->loadById($eventModel->getAreaId()); } else { if ($venue && $venue->getAreaId()) { $area = $areaRepo->loadById($venue->getAreaId()); } } $hrb = new HumanRepositoryBuilder(); $hrb->setHumansForEvent($eventModel); $hrb->setIncludeDeleted(false); $humans = $hrb->fetchAll(); $this->body_html = $app['twig']->render('email/organiserEmail.html.twig', array('event' => $eventModel, 'email' => $this->email, 'venue' => $venue, 'area' => $area, 'humans' => $humans)); if ($app['config']->isDebug) { file_put_contents('/tmp/organiserEmail.html', $this->body_html); } $this->body_text = $app['twig']->render('email/organiserEmail.txt.twig', array('event' => $eventModel, 'email' => $this->email, 'venue' => $venue, 'area' => $area, 'humans' => $humans)); if ($app['config']->isDebug) { file_put_contents('/tmp/organiserEmail.txt', $this->body_text); } $this->created_at = $app['timesource']->getDateTime(); }
function formedia(Application $app) { $trb = new HumanRepositoryBuilder(); $trb->setSite($app['currentSite']); $trb->setIncludeDeleted(false); $humans = $trb->fetchAll(); return $app['twig']->render('site/index/formedia.html.twig', array('humans' => $humans)); }
function index(Application $app, Request $request) { if ($request->query->get('search')) { $trb = new HumanRepositoryBuilder(); $trb->setSite($app['currentSite']); $trb->setIncludeDeleted(false); $trb->setFreeTextsearch($request->query->get('search')); return $app['twig']->render('site/humanlist/index.html.twig', array('humans' => $trb->fetchAll(), 'search' => $request->query->get('search'))); } else { return $app['twig']->render('site/humanlist/index.html.twig', array('humans' => array(), 'search' => null)); } }
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; }
protected function run() { $this->localTimeZone = new \DateTimeZone("Europe/London"); $siteRepo = new \repositories\SiteRepository(); $site = $siteRepo->loadById($this->app['config']->singleSiteID); // TODO assumes single site! $areaRepository = new AreaRepository(); $venueRepository = new VenueRepository(); $countryRepository = new CountryRepository(); $countries = array(); $humanPopItRepository = new HumanPopItInfoRepository(); $areaMapItRepo = new AreaMapItInfoRepository(); $out = array('data' => array(), 'areasPastEvents' => array()); $erb = new EventRepositoryBuilder(); $erb->setSite($site); $erb->setIncludeDeleted(true); $erb->setIncludeCancelled(true); $erb->setAfterNow(); foreach ($erb->fetchAll() as $event) { $venue = null; $country = null; $area = null; $humans = array(); if ($event->getCountryId()) { if (!isset($countries[$event->getCountryId()])) { $countries[$event->getCountryId()] = $countryRepository->loadById($event->getCountryId()); } $country = $countries[$event->getCountryId()]; } if ($event->getVenueId()) { $venue = $venueRepository->loadById($event->getVenueId()); } if ($event->getAreaId()) { $area = $areaRepository->loadById($event->getAreaId()); } else { if ($venue && $venue->getAreaId()) { $area = $areaRepository->loadById($venue->getAreaId()); } } $thisOut = $this->addEvent($event, $venue, $area, $country); $thisOut['humans'] = array(); $mapitids = array(); if ($area) { $areamapit = $areaMapItRepo->getByAreaID($area->getId()); if ($areamapit) { $mapitids[] = $areamapit->getMapitId(); } } $hrb = new HumanRepositoryBuilder(); $hrb->setHumansForEvent($event); foreach ($hrb->fetchAll() as $human) { $popit = $humanPopItRepository->getByHumanID($human->getId()); $thisOut['humans'][] = array('popit_id' => $popit->getPopitId()); $arb = new AreaRepositoryBuilder(); $arb->setIncludeDeleted(false); $arb->setHuman($human); foreach ($arb->fetchAll() as $areaForHuman) { if (!$area || $area->getId() != $areaForHuman->getId()) { $areamapit = $areaMapItRepo->getByAreaID($areaForHuman->getId()); if ($areamapit) { $mapitids[] = $areamapit->getMapitId(); } } } } $thisOut['mapitids'] = array_values(array_unique($mapitids)); $out['data'][] = $thisOut; } $arb = new \com\meetyournextmp\repositories\builders\AreaRepositoryBuilder(); $arb->setLimit(1000); $arb->setIncludeDeleted(false); $arb->setIsMapItAreaOnly(true); foreach ($arb->fetchAll() as $area) { $erb = new EventRepositoryBuilder(); $erb->setIncludeDeleted(false); $erb->setIncludeCancelled(false); $erb->setArea($area); $erb->setBeforeNow(); $areamapit = $areaMapItRepo->getByAreaID($area->getId()); $out['areasPastEvents'][$areamapit->getMapitId()] = $erb->fetchCount(); } file_put_contents(APP_ROOT_DIR . DIRECTORY_SEPARATOR . 'webSingleSite' . DIRECTORY_SEPARATOR . 'datadump' . DIRECTORY_SEPARATOR . 'ynmpread.json', json_encode($out)); return array('result' => 'ok'); }