/**
  * Build the logo source of an institution, if allowed
  * 
  * @param array array data of $institution
  * @return \HealthCareAbroad\ApiBundle\Services\InstitutionApiService
  */
 public function buildLogoSource(&$institution)
 {
     $institution['logo']['src'] = null;
     if (isset($institution['logo']) && $institution['payingClient']) {
         $institution['logo']['src'] = $this->mediaExtension->getInstitutionMediaSrc($institution['logo'], ImageSizes::MEDIUM);
     }
     return $this;
 }
 /**
  *
  * @param array $institutionMedicalCenter
  * @return \HealthCareAbroad\ApiBundle\Services\InstitutionMedicalCenterApiService
  */
 public function buildInstitutionSpecializations(&$institutionMedicalCenter)
 {
     $institutionMedicalCenter['institutionSpecializations'] = $this->getInstitutionSpecializationsByInstitutionMedicalCenterId($institutionMedicalCenter['id']);
     // build logo of insitution specializations
     foreach ($institutionMedicalCenter['institutionSpecializations'] as &$instSpecialization) {
         if ($instSpecialization['specialization']['media']) {
             $instSpecialization['specialization']['media']['src'] = $this->mediaExtensionService->getSpecializationMediaSrc($instSpecialization['specialization']['media'], ImageSizes::SPECIALIZATION_DEFAULT_LOGO);
         }
     }
     return $this;
 }
 /**
  * NOTE: This helper is for search result and ads context only!
  * 
  * @param Mixed <InstitutionMedicalCenter, array> $institutionMedicalCenter
  * @param array $options
  */
 public function renderInstitutionMedicalCenterLogo($institutionMedicalCenter, array $options = array())
 {
     $options['size'] = ImageSizes::MEDIUM;
     if (!isset($options['context'])) {
         $options['context'] = self::SEARCH_RESULTS_CONTEXT;
     }
     if (!isset($options['attr'])) {
         $options['attr'] = array();
     }
     if ($institutionMedicalCenter instanceof InstitutionMedicalCenter) {
         $centerLogo = $institutionMedicalCenter->getLogo();
         $institutionLogo = $institutionMedicalCenter->getInstitution()->getLogo();
         $payingClient = $institutionMedicalCenter->getInstitution()->getPayingClient();
     } else {
         $centerLogo = $institutionMedicalCenter['logo'];
         $institutionLogo = $institutionMedicalCenter['institution'];
         $payingClient = $institutionMedicalCenter['institution']['payingClient'];
     }
     // Default image
     $hasAttrClass = isset($options['attr']['class']);
     $html = '<span class="hca-sprite clinic-default-logo logo ' . ($hasAttrClass ? $options['attr']['class'] : '') . '"></span>';
     // TODO - Clinic Logo for non-paying client is temporarily enabled in ADS section.
     $isAdsContext = isset($options['context']) && $options['context'] == self::ADS_CONTEXT;
     $logo = $centerLogo ?: $institutionLogo;
     if ($logo && ($payingClient || $isAdsContext)) {
         $mediaSrc = $this->mediaExtension->getInstitutionMediaSrc($logo, $options['size']);
     } else {
         if ($options['context'] == self::SEARCH_RESULTS_CONTEXT || $options['context'] == self::ADS_CONTEXT) {
             if ($logo && $payingClient) {
                 $mediaSrc = $this->mediaExtension->getInstitutionMediaSrc($logo, ImageSizes::SMALL);
             }
         }
     }
     if (isset($mediaSrc)) {
         $html = '<img src="' . $mediaSrc . '" alt="clinic logo" class="' . ($hasAttrClass ? $options['attr']['class'] : '') . '">';
     }
     return $html;
 }
 /**
  * Render institution logo as an img tag
  * 
  * @param Mixed <Institution, array> $institution
  * @param array $options
  */
 public function renderInstitutionLogo($institution, array $options = array())
 {
     $defaultOptions = array('attr' => array(), 'media_format' => 'default', 'placeholder' => '');
     $options = \array_merge($defaultOptions, $options);
     $html = '';
     // TODO - Institution Logo for non-paying client is temporarily enabled in ADS section.
     $isAdsContext = isset($options['context']) && $options['context'] == self::ADS_CONTEXT;
     if ($institution instanceof Institution) {
         $isPayingClient = $institution->getPayingClient();
         $institutionLogo = $institution->getLogo();
     } elseif (\is_array($institution)) {
         // hydrated with HYDRATE_ARRAY
         $institutionLogo = $institution['logo'];
         $isPayingClient = $institution['payingClient'];
     }
     if ($institutionLogo && ($isPayingClient || $isAdsContext)) {
         if (isset($options['attr']['class'])) {
             $options['attr']['class'] .= ' hospital-logo';
         } else {
             $options['attr']['class'] = 'hospital-logo';
         }
         if (!isset($options['size'])) {
             $options['size'] = ImageSizes::MEDIUM;
         }
         $mediaSrc = $this->mediaExtension->getInstitutionMediaSrc($institutionLogo, $options['size']);
         $html = '<img src="' . $mediaSrc . '" class="hospital-logo">';
     } else {
         if (isset($options['attr']['class'])) {
             $html = '<span class="hca-sprite hospital-default-logo ' . $options['attr']['class'] . '"></span>';
         } else {
             $html = '<span class="hca-sprite hospital-default-logo"></span>';
         }
         //$html = '<span class="hca-sprite hospital-default-logo '. isset($options['attr']['class']) ? $options['attr']['class'] : '' .'"></span>';
     }
     return $html;
 }