コード例 #1
0
 /**
  * @param string $id Product id
  *
  * @throws NotFoundHttpException If product is not found or the user cannot see it
  *
  * @return JsonResponse
  */
 public function getAction($id)
 {
     $product = $this->findProductOr404($id);
     $this->productBuilder->addMissingAssociations($product);
     $channels = array_keys($this->userContext->getChannelChoicesWithUserChannel());
     $locales = $this->userContext->getUserLocaleCodes();
     return new JsonResponse($this->normalizer->normalize($product, 'internal_api', ['locales' => $locales, 'channels' => $channels, 'filter_type' => 'pim.internal_api.product_value.view']));
 }
 /**
  * Helper method to generate field names in format : '<locale>' => '<field>|<locale>'
  *
  * @return string[]
  */
 protected function getFieldNames()
 {
     $userLocales = $this->userContext->getUserLocaleCodes();
     $collection = array();
     foreach ($this->getOption('locales') as $locale) {
         if (in_array($locale, $userLocales)) {
             $collection[$locale] = $locale;
         }
     }
     return $collection;
 }
コード例 #3
0
 /**
  * {@inheritdoc}
  */
 public function configureOptions(OptionsResolver $resolver)
 {
     parent::configureOptions($resolver);
     $resolver->setRequired(['entity_class', 'translation_class', 'field', 'required_locale']);
     $resolver->setDefaults(['translation_class' => false, 'entity_class' => false, 'field' => false, 'locales' => $this->userContext->getUserLocaleCodes(), 'required_locale' => [], 'widget' => 'text']);
 }
コード例 #4
0
 /**
  * Build context for normalizer
  *
  * @return array
  */
 protected function buildContext()
 {
     $channels = array_keys($this->userContext->getChannelChoicesWithUserChannel());
     $locales = $this->userContext->getUserLocaleCodes();
     return ['locales' => $locales, 'channels' => $channels, 'filter_type' => 'pim.internal_api.product_value.view', 'locale' => $this->userContext->getUiLocale()->getCode(), 'disable_grouping_separator' => true];
 }
コード例 #5
0
 /**
  * {@inheritdoc}
  */
 public function setDefaultOptions(OptionsResolverInterface $resolver)
 {
     parent::setDefaultOptions($resolver);
     $resolver->setRequired(array('entity_class', 'translation_class', 'field', 'required_locale'));
     $resolver->setDefaults(array('translation_class' => false, 'entity_class' => false, 'field' => false, 'locales' => $this->userContext->getUserLocaleCodes(), 'required_locale' => array(), 'widget' => 'text'));
 }