private function updateVenues(Show $show) { switch ($show->getMultiVenue()) { case 'single': foreach ($show->getPerformances() as $performance) { $performance->setVenue($show->getVenue()); $performance->setVenueName($show->getVenueName()); } break; case 'multi': //Try to work out the 'main' venue //First count venue objects and venue names $venues = array(); $venue_counts = array(); $name_counts = array(); foreach ($show->getPerformances() as $performance) { if ($performance->getVenue()) { $key = $performance->getVenue()->getId(); if (!isset($venue_counts[$key])) { $venue_counts[$key] = 1; } else { $venue_counts[$key]++; } $venues[$key] = $performance->getVenue(); } if ($performance->getVenueName()) { $key = $performance->getVenueName(); if (!isset($name_counts[$key])) { $name_counts[$key] = 1; } else { $name_counts[$key]++; } } //Favour a venue object over a venue name if (count($venue_counts) > 0) { $venue_id = array_search(max($venue_counts), $venue_counts); $show->setVenue($venues[$venue_id]); } else { $venue_name = array_search(max($name_counts), $name_counts); $show->setVenueName($venue_name); } } break; } }
public function sendShowVenueChangedEmail(Show $show, array $owners, array $moderators) { $toEmails = $this->emailArrayFromUsers($moderators); $message = \Swift_Message::newInstance()->setSubject('Venue changed to ' . $show->getVenue()->getName() . ': ' . $show->getName())->setFrom(array($this->from_address => 'camdram.net'))->setTo($toEmails)->setBody($this->twig->render('ActsCamdramBundle:Email:show_venue_changed.txt.twig', array('owners' => $owners, 'show' => $show))); $this->mailer->send($message); }