You are here

class Feed in Zircon Profile 8.0

Same name in this branch
  1. 8.0 vendor/zendframework/zend-feed/src/Writer/Feed.php \Zend\Feed\Writer\Feed
  2. 8.0 core/modules/aggregator/src/Entity/Feed.php \Drupal\aggregator\Entity\Feed
  3. 8.0 vendor/zendframework/zend-feed/src/Reader/Extension/Syndication/Feed.php \Zend\Feed\Reader\Extension\Syndication\Feed
  4. 8.0 vendor/zendframework/zend-feed/src/Reader/Extension/Atom/Feed.php \Zend\Feed\Reader\Extension\Atom\Feed
  5. 8.0 vendor/zendframework/zend-feed/src/Reader/Extension/Podcast/Feed.php \Zend\Feed\Reader\Extension\Podcast\Feed
  6. 8.0 vendor/zendframework/zend-feed/src/Reader/Extension/DublinCore/Feed.php \Zend\Feed\Reader\Extension\DublinCore\Feed
  7. 8.0 vendor/zendframework/zend-feed/src/Reader/Extension/CreativeCommons/Feed.php \Zend\Feed\Reader\Extension\CreativeCommons\Feed
  8. 8.0 vendor/zendframework/zend-feed/src/Writer/Extension/ITunes/Feed.php \Zend\Feed\Writer\Extension\ITunes\Feed
  9. 8.0 core/modules/views/src/Plugin/views/display/Feed.php \Drupal\views\Plugin\views\display\Feed
  10. 8.0 vendor/zendframework/zend-feed/src/Writer/Extension/Atom/Renderer/Feed.php \Zend\Feed\Writer\Extension\Atom\Renderer\Feed
  11. 8.0 vendor/zendframework/zend-feed/src/Writer/Extension/DublinCore/Renderer/Feed.php \Zend\Feed\Writer\Extension\DublinCore\Renderer\Feed
  12. 8.0 vendor/zendframework/zend-feed/src/Writer/Extension/ITunes/Renderer/Feed.php \Zend\Feed\Writer\Extension\ITunes\Renderer\Feed
Same name and namespace in other branches
  1. 8 vendor/zendframework/zend-feed/src/Reader/Extension/Syndication/Feed.php \Zend\Feed\Reader\Extension\Syndication\Feed

Hierarchy

  • class \Zend\Feed\Reader\Extension\Syndication\Feed extends \Extension\AbstractFeed

Expanded class hierarchy of Feed

18 string references to 'Feed'
aggregator.schema.yml in core/modules/aggregator/config/schema/aggregator.schema.yml
core/modules/aggregator/config/schema/aggregator.schema.yml
ExtensionPluginManager::validatePlugin in vendor/zendframework/zend-feed/src/Writer/ExtensionPluginManager.php
Validate the plugin
PreviewTest::testPreviewUI in core/modules/views_ui/src/Tests/PreviewTest.php
Tests arguments in the preview form.
views.view.aggregator_rss_feed.yml in core/modules/aggregator/config/optional/views.view.aggregator_rss_feed.yml
core/modules/aggregator/config/optional/views.view.aggregator_rss_feed.yml
views.view.aggregator_sources.yml in core/modules/aggregator/config/optional/views.view.aggregator_sources.yml
core/modules/aggregator/config/optional/views.view.aggregator_sources.yml

... See full list

File

vendor/zendframework/zend-feed/src/Reader/Extension/Syndication/Feed.php, line 16

Namespace

Zend\Feed\Reader\Extension\Syndication
View source
class Feed extends Extension\AbstractFeed {

  /**
   * Get update period
   *
   * @return string
   * @throws Reader\Exception\InvalidArgumentException
   */
  public function getUpdatePeriod() {
    $name = 'updatePeriod';
    $period = $this
      ->getData($name);
    if ($period === null) {
      $this->data[$name] = 'daily';
      return 'daily';

      //Default specified by spec
    }
    switch ($period) {
      case 'hourly':
      case 'daily':
      case 'weekly':
      case 'yearly':
        return $period;
      default:
        throw new Reader\Exception\InvalidArgumentException("Feed specified invalid update period: '{$period}'." . " Must be one of hourly, daily, weekly or yearly");
    }
  }

  /**
   * Get update frequency
   *
   * @return int
   */
  public function getUpdateFrequency() {
    $name = 'updateFrequency';
    $freq = $this
      ->getData($name, 'number');
    if (!$freq || $freq < 1) {
      $this->data[$name] = 1;
      return 1;
    }
    return $freq;
  }

  /**
   * Get update frequency as ticks
   *
   * @return int
   */
  public function getUpdateFrequencyAsTicks() {
    $name = 'updateFrequency';
    $freq = $this
      ->getData($name, 'number');
    if (!$freq || $freq < 1) {
      $this->data[$name] = 1;
      $freq = 1;
    }
    $period = $this
      ->getUpdatePeriod();
    $ticks = 1;
    switch ($period) {
      case 'yearly':
        $ticks *= 52;

      //TODO: fix generalisation, how?

      // no break
      case 'weekly':
        $ticks *= 7;

      // no break
      case 'daily':
        $ticks *= 24;

      // no break
      case 'hourly':
        $ticks *= 3600;
        break;
      default:

        //Never arrive here, exception thrown in getPeriod()
        break;
    }
    return $ticks / $freq;
  }

  /**
   * Get update base
   *
   * @return DateTime|null
   */
  public function getUpdateBase() {
    $updateBase = $this
      ->getData('updateBase');
    $date = null;
    if ($updateBase) {
      $date = DateTime::createFromFormat(DateTime::W3C, $updateBase);
    }
    return $date;
  }

  /**
   * Get the entry data specified by name
   *
   * @param string $name
   * @param string $type
   * @return mixed|null
   */
  private function getData($name, $type = 'string') {
    if (array_key_exists($name, $this->data)) {
      return $this->data[$name];
    }
    $data = $this->xpath
      ->evaluate($type . '(' . $this
      ->getXpathPrefix() . '/syn10:' . $name . ')');
    if (!$data) {
      $data = null;
    }
    $this->data[$name] = $data;
    return $data;
  }

  /**
   * Register Syndication namespaces
   *
   * @return void
   */
  protected function registerNamespaces() {
    $this->xpath
      ->registerNamespace('syn10', 'http://purl.org/rss/1.0/modules/syndication/');
  }

}

Members

Namesort descending Modifiers Type Description Overrides
Feed::getData private function Get the entry data specified by name
Feed::getUpdateBase public function Get update base
Feed::getUpdateFrequency public function Get update frequency
Feed::getUpdateFrequencyAsTicks public function Get update frequency as ticks
Feed::getUpdatePeriod public function Get update period
Feed::registerNamespaces protected function Register Syndication namespaces