/**
  * {@inheritdoc}
  */
 protected function getAdditionalTemplateVariables()
 {
     $map = $this->_acceptableValues->getAcceptableValues($this->getOptionName());
     if (!$this->_langUtils->isAssociativeArray($map)) {
         throw new InvalidArgumentException(sprintf('"%s" has a non-associative array set for its value map', $this->getId()));
     }
     return array('ungroupedChoices' => $map);
 }
 public function onWpPostTemplate(tubepress_api_event_EventInterface $event)
 {
     $templates = $this->_resourceRepository->getPageTemplates();
     unset($templates['index.php']);
     $templates = $this->_langUtils->arrayUnshiftAssociative($templates, 'index.php', 'default');
     $current = $event->getSubject();
     if (!is_array($current)) {
         $current = array();
     }
     $toSet = array_merge($current, $templates);
     $event->setSubject($toSet);
 }
 private function _getDataUrl(tubepress_api_media_MediaItem $mediaItem)
 {
     $link = $this->_urlFactory->fromString('https://www.youtube.com/embed/' . $mediaItem->getId());
     $embedQuery = $link->getQuery();
     $url = $this->_urlFactory->fromCurrent();
     $origin = $url->getScheme() . '://' . $url->getHost();
     $autoPlay = $this->_context->get(tubepress_api_options_Names::EMBEDDED_AUTOPLAY);
     $loop = $this->_context->get(tubepress_api_options_Names::EMBEDDED_LOOP);
     $showInfo = $this->_context->get(tubepress_api_options_Names::EMBEDDED_SHOW_INFO);
     $autoHide = $this->_context->get(tubepress_youtube3_api_Constants::OPTION_AUTOHIDE);
     $fullscreen = $this->_context->get(tubepress_youtube3_api_Constants::OPTION_FULLSCREEN);
     $modestBranding = $this->_context->get(tubepress_youtube3_api_Constants::OPTION_MODEST_BRANDING);
     $showRelated = $this->_context->get(tubepress_youtube3_api_Constants::OPTION_SHOW_RELATED);
     $embedQuery->set('autohide', $this->_getAutoHideValue($autoHide));
     $embedQuery->set('autoplay', $this->_langUtils->booleanToStringOneOrZero($autoPlay));
     $embedQuery->set('enablejsapi', '1');
     $embedQuery->set('fs', $this->_langUtils->booleanToStringOneOrZero($fullscreen));
     $embedQuery->set('modestbranding', $this->_langUtils->booleanToStringOneOrZero($modestBranding));
     $embedQuery->set('origin', $origin);
     $embedQuery->set('rel', $this->_langUtils->booleanToStringOneOrZero($showRelated));
     $embedQuery->set('showinfo', $this->_langUtils->booleanToStringOneOrZero($showInfo));
     $embedQuery->set('wmode', 'opaque');
     if ($loop) {
         $embedQuery->set('loop', $this->_langUtils->booleanToStringOneOrZero($loop));
         $embedQuery->set('playlist', $mediaItem->getId());
     }
     return $link;
 }
 private function _getDataUrl(tubepress_api_media_MediaItem $mediaItem, $playerId)
 {
     $autoPlay = $this->_context->get(tubepress_api_options_Names::EMBEDDED_AUTOPLAY);
     $showInfo = $this->_context->get(tubepress_api_options_Names::EMBEDDED_SHOW_INFO);
     $actualId = str_replace('dailymotion_', '', $mediaItem->getId());
     /* build the data URL based on these options */
     $link = $this->_urlFactory->fromString("https://www.dailymotion.com/embed/video/{$actualId}");
     $query = $link->getQuery();
     $query->set(self::$_URL_PARAM_AUTOPLAY, $this->_langUtils->booleanToStringOneOrZero($autoPlay));
     $query->set(self::$_URL_PARAM_UI_START_SCREEN, $this->_langUtils->booleanToStringOneOrZero($showInfo));
     $query->set(self::$_URL_PARAM_ID, $playerId);
     return $link;
 }
 public function onOption(tubepress_api_event_EventInterface $event)
 {
     $errors = $event->getSubject();
     $optionName = $event->getArgument('optionName');
     $optionValue = $event->getArgument('optionValue');
     if (!$this->_optionsReference->optionExists($optionName)) {
         $error = $this->_translator->trans('No option with name "%s".');
         //>(translatable)<
         $error = sprintf($error, $optionName);
         $errors[] = $error;
         $event->setSubject($errors);
         return;
     }
     if ($this->_optionsReference->isBoolean($optionName) && !is_bool($optionValue)) {
         $error = $this->_translator->trans('"%s" can only be "true" or "false". You supplied "%s".');
         //>(translatable)<
         $error = sprintf($error, $this->_getLabel($optionName), $optionValue);
         $errors[] = $error;
         $event->setSubject($errors);
         return;
     }
     $acceptableValues = $this->_acceptableValues->getAcceptableValues($optionName);
     if ($acceptableValues !== null) {
         if ($this->_langUtils->isAssociativeArray($acceptableValues)) {
             $values = array_keys($acceptableValues);
         } else {
             $values = array_values($acceptableValues);
         }
         if (!in_array($optionValue, $values)) {
             $error = $this->_translator->trans('"%s" must be one of "%s". You supplied "%s".');
             //>(translatable)<
             $error = sprintf($error, $this->_getLabel($optionName), implode(', ', $values), $optionValue);
             $errors[] = $error;
             $event->setSubject($errors);
         }
     }
 }
 private function _getDataUrl(tubepress_api_media_MediaItem $mediaItem)
 {
     $autoPlay = $this->_context->get(tubepress_api_options_Names::EMBEDDED_AUTOPLAY);
     $showInfo = $this->_context->get(tubepress_api_options_Names::EMBEDDED_SHOW_INFO);
     $loop = $this->_context->get(tubepress_api_options_Names::EMBEDDED_LOOP);
     $color = $this->_context->get(tubepress_vimeo3_api_Constants::OPTION_PLAYER_COLOR);
     /* build the data URL based on these options */
     $link = $this->_urlFactory->fromString('https://player.vimeo.com/video/' . $mediaItem->getId());
     $query = $link->getQuery();
     $query->set(self::$_URL_PARAM_AUTOPLAY, $this->_langUtils->booleanToStringOneOrZero($autoPlay));
     $query->set(self::$_URL_PARAM_COLOR, $color);
     $query->set(self::$_URL_PARAM_LOOP, $this->_langUtils->booleanToStringOneOrZero($loop));
     $query->set(self::$_URL_PARAM_PORTRAIT, $this->_langUtils->booleanToStringOneOrZero($showInfo));
     $query->set(self::$_URL_PARAM_BYLINE, $this->_langUtils->booleanToStringOneOrZero($showInfo));
     $query->set(self::$_URL_PARAM_TITLE, $this->_langUtils->booleanToStringOneOrZero($showInfo));
     return $link;
 }
 private function _handleKeywords(array &$manifestData, array &$errors)
 {
     $key = self::$_FIRST_LEVEL_KEY_KEYWORDS;
     if (!isset($manifestData[$key])) {
         return;
     }
     $candidate = $manifestData[$key];
     if (!$this->_langUtils->isSimpleArrayOfStrings($candidate)) {
         $errors[] = 'Keywords must be an array of strings';
         return;
     }
     foreach ($candidate as $keyword) {
         if ($this->nonStringOrTooLong($keyword, 30, $key, $errors)) {
             return;
         }
     }
 }