/**
  * {@inheritdoc}
  */
 public function implodeArrayAttribute(tubepress_api_media_MediaItem $item, $sourceAttributeName, $destinationAttributeName, $glue)
 {
     if (!$item->hasAttribute($sourceAttributeName)) {
         return;
     }
     $array = $item->getAttribute($sourceAttributeName);
     $formatted = implode($glue, $array);
     $item->setAttribute($destinationAttributeName, $formatted);
 }
 /**
  * {@inheritdoc}
  */
 public function getAttributesForInvocationAnchor(tubepress_api_media_MediaItem $mediaItem)
 {
     return array('rel' => 'external nofollow', 'target' => '_blank', 'href' => $mediaItem->getAttribute(tubepress_api_media_MediaItem::ATTRIBUTE_HOME_URL));
 }
 /**
  * @param tubepress_api_media_MediaItem $item
  *
  * @return tubepress_spi_embedded_EmbeddedProviderInterface
  *
  * @throws RuntimeException
  */
 private function _selectEmbeddedProvider(tubepress_api_media_MediaItem $item)
 {
     $requestedEmbeddedPlayerName = $this->_context->get(tubepress_api_options_Names::EMBEDDED_PLAYER_IMPL);
     /*
      * @var tubepress_spi_media_MediaProviderInterface
      */
     $mediaProvider = $item->getAttribute(tubepress_api_media_MediaItem::ATTRIBUTE_PROVIDER);
     $mediaProviderName = $mediaProvider->getName();
     /*
      * The user has requested a specific embedded player that is registered. Let's see if the provider agrees.
      */
     if ($requestedEmbeddedPlayerName !== tubepress_api_options_AcceptableValues::EMBEDDED_IMPL_PROVIDER_BASED) {
         foreach ($this->_embeddedProviders as $embeddedProvider) {
             $compatibleProviderNames = $embeddedProvider->getCompatibleMediaProviderNames();
             if ($embeddedProvider->getName() === $requestedEmbeddedPlayerName && in_array($mediaProviderName, $compatibleProviderNames)) {
                 //found it!
                 return $embeddedProvider;
             }
         }
     }
     /*
      * Do we have an embedded provider whose name exactly matches the provider? If so, let's use that. This
      * should be the common case.
      */
     foreach ($this->_embeddedProviders as $embeddedProvider) {
         if ($embeddedProvider->getName() === $mediaProviderName) {
             return $embeddedProvider;
         }
     }
     /*
      * Running out of options. See if we can find *any* player that can handle videos from this provider.
      */
     foreach ($this->_embeddedProviders as $embeddedProvider) {
         if (in_array($mediaProviderName, $embeddedProvider->getCompatibleMediaProviderNames())) {
             return $embeddedProvider;
         }
     }
     /*
      * None of the registered embedded players support the calculated provider. I give up.
      */
     throw new RuntimeException(sprintf('No embedded providers could generate HTML for item %s', $item->getId()));
 }
Exemple #4
0
 public function __perPageSort(tubepress_api_media_MediaItem $first, tubepress_api_media_MediaItem $second)
 {
     $attributeName = self::$_perPageSortMap[$this->_perPageSortOrder];
     if (!$first->hasAttribute($attributeName) || !$second->hasAttribute($attributeName)) {
         return 0;
     }
     $firstAttributeValue = $first->getAttribute($attributeName);
     $secondAttributeValue = $second->getAttribute($attributeName);
     switch ($this->_perPageSortOrder) {
         case tubepress_api_options_AcceptableValues::PER_PAGE_SORT_COMMENT_COUNT:
         case tubepress_api_options_AcceptableValues::PER_PAGE_SORT_NEWEST:
         case tubepress_api_options_AcceptableValues::PER_PAGE_SORT_DURATION:
         case tubepress_api_options_AcceptableValues::PER_PAGE_SORT_VIEW_COUNT:
             $firstAttributeValue = intval($firstAttributeValue);
             $secondAttributeValue = intval($secondAttributeValue);
             if ($firstAttributeValue == $secondAttributeValue) {
                 return 0;
             }
             if ($firstAttributeValue < $secondAttributeValue) {
                 return 1;
             }
             return -1;
         case tubepress_api_options_AcceptableValues::PER_PAGE_SORT_OLDEST:
             $firstAttributeValue = intval($firstAttributeValue);
             $secondAttributeValue = intval($secondAttributeValue);
             if ($firstAttributeValue == $secondAttributeValue) {
                 return 0;
             }
             if ($firstAttributeValue < $secondAttributeValue) {
                 return -1;
             }
             return 1;
         default:
             if ($firstAttributeValue == $secondAttributeValue) {
                 return 0;
             }
             if ($firstAttributeValue < $secondAttributeValue) {
                 return -1;
             }
             return 1;
     }
 }
 public function testSetGetAuthor()
 {
     $this->_vid->setAttribute(tubepress_api_media_MediaItem::ATTRIBUTE_AUTHOR_USER_ID, 'hough');
     $this->assertEquals($this->_vid->getAttribute(tubepress_api_media_MediaItem::ATTRIBUTE_AUTHOR_USER_ID), 'hough');
 }