/**
  * Breadcrumbs will be shown according to insertion order in the $breadcrumbs array
  *
  * @param array $data
  * @return array
  */
 private function doGenerateBreadcrumbs(array $data)
 {
     $breadcrumbs = array();
     if ($data['country']) {
         $breadcrumbs[] = array('label' => $data['country']['name'], 'url' => $this->generateUrl('frontend_search_results_countries', array('country' => $data['country']['slug'])));
     }
     if ($data['city']) {
         $breadcrumbs[] = array('label' => $data['city']['name'], 'url' => $this->generateUrl('frontend_search_results_cities', array('country' => $data['country']['slug'], 'city' => $data['city']['slug'])));
     }
     if ($data['tag']) {
         $breadcrumbs[] = array('label' => $data['tag']);
         return $breadcrumbs;
     }
     if ($data['institution']) {
         $routeName = InstitutionService::getInstitutionRouteName($data['institution']);
         $breadcrumbs[] = array('label' => $data['institution']['name'], 'url' => $this->generateUrl($routeName, array('institutionSlug' => $data['institution']['slug'])));
         if ($data['institutionMedicalCenter']) {
             $breadcrumbs[] = array('label' => $data['institutionMedicalCenter']['name']);
         }
         return $breadcrumbs;
     }
     if ($data['specialization']) {
         $breadcrumbs[] = array('label' => $data['specialization']['name'], 'url' => $this->generateUrl('frontend_search_results_specializations', array('specialization' => $data['specialization']['slug'])));
     }
     if ($data['subSpecialization']) {
         $breadcrumbs[] = array('label' => $data['subSpecialization']['name'], 'url' => $this->generateUrl('frontend_search_results_subSpecializations', array('specialization' => $data['specialization']['slug'], 'subSpecialization' => $data['specialization']['slug'])));
     }
     if ($data['treatment']) {
         $breadcrumbs[] = array('label' => $data['treatment']['name'], 'url' => $this->generateUrl('frontend_search_results_treatments', array('specialization' => $data['specialization']['slug'], 'treatment' => $data['treatment']['slug'])));
     }
     return $breadcrumbs;
 }
 /**
  * Generate frontend uri of an institution
  * 
  * @param Mixed <Institution, array> $institution
  * @return string
  */
 public function getInstitutionFrontendUrl($institution)
 {
     if ($institution instanceof Institution) {
         $slug = $institution->getSlug();
     } else {
         $slug = $institution['slug'];
     }
     $routeName = InstitutionService::getInstitutionRouteName($institution);
     $uri = $this->router->generate($routeName, array('institutionSlug' => $slug), true);
     return $uri;
 }
 public function ajaxProcessInstitutionParametersAction(Request $request)
 {
     $institution = $this->get('services.institution.factory')->findById($request->get('institutionId', 0));
     if (!$institution) {
         throw $this->createNotFoundException('Cannot build metas for invalid institution');
     }
     $institutionMedicalCenter = null;
     if ($imcId = $request->get('imcId', 0)) {
         $institutionMedicalCenter = $this->get('services.institution_medical_center')->findById($imcId);
         if (!$institutionMedicalCenter || $institutionMedicalCenter->getInstitution()->getId() != $institution->getId()) {
             throw $this->createNotFoundException('Cannot build metas for invalid institution medical center');
         }
     }
     $pageMetaService = $this->get('services.helper.page_meta_configuration');
     $builderMethod = 'buildForInstitutionPage';
     $builderParameter = null;
     if ($institutionMedicalCenter) {
         // clinic page
         $url = $this->generateUrl('frontend_institutionMedicalCenter_profile', array('institutionSlug' => $institution->getSlug(), 'imcSlug' => $institutionMedicalCenter->getSlug()));
         $builderMethod = 'buildForInstitutionMedicalCenterPage';
         $builderParameter = $institutionMedicalCenter;
     } else {
         // hospital page
         $url = $this->generateUrl(InstitutionService::getInstitutionRouteName($institution), array('institutionSlug' => $institution->getSlug()));
         $builderMethod = 'buildForInstitutionPage';
         $builderParameter = $institution;
     }
     // replace app_dev.php
     if ('appDevDebugProjectContainer' == get_class($this->get('service_container'))) {
         $url = \preg_replace('/^(\\/app_dev\\.php)/', '', $url);
     }
     // build meta config if no meta config available
     if (!($metaConfig = $pageMetaService->findOneByUrl($url))) {
         $metaConfig = $pageMetaService->{$builderMethod}($builderParameter);
         $metaConfig->setUrl($url);
         $pageMetaService->save($metaConfig);
     }
     $form = $this->createForm(new PageMetaConfigurationFormType(), $metaConfig);
     $html = $this->renderView('AdminBundle:PageMetaConfiguration:form.html.twig', array('form' => $form->createView()));
     return new Response(\json_encode(array('html' => $html)), 200, array('content-type' => 'application/json'));
 }
 public function getData(Event $event)
 {
     $inquiry = $event->getSubject();
     $institution = $inquiry->getInstitution();
     $institutionMedicalCenter = $inquiry->getInstitutionMedicalCenter();
     $router = $this->container->get('router');
     if ($institutionMedicalCenter) {
         $facilityName = $institutionMedicalCenter->getName() . ' at ' . $institution->getName();
         $urlFacility = $router->generate('frontend_institutionMedicalCenter_profile', array('institutionSlug' => $institution->getSlug(), 'imcSlug' => $institutionMedicalCenter->getSlug()), true);
         $to = $institutionMedicalCenter->getContactEmail();
     } else {
         $facilityName = $institution->getName();
         $routeName = InstitutionService::getInstitutionRouteName($institution);
         $urlFacility = $router->generate($routeName, array('institutionSlug' => $institution->getSlug()), true);
     }
     if (empty($to)) {
         if (!($to = $institution->getContactEmail())) {
             $to = $this->container->get('services.institution')->getAccountOwner($institution)->getEmail();
         }
     }
     return array('inquiry' => array('name' => $inquiry->getInquirerName(), 'email' => $inquiry->getInquirerEmail(), 'message' => $inquiry->getMessage()), 'to' => $to, 'facility_name' => $facilityName, 'url' => array('facility' => $urlFacility));
 }
 private function getInstitutionFrontendUrl($institution)
 {
     $slug = $institution instanceof Institution ? $institution->getSlug() : $institution['slug'];
     $routeName = InstitutionService::getInstitutionRouteName($institution);
     return $this->router->generate($routeName, array('institutionSlug' => $slug), true);
 }