| Feed specifications |
| ~~~~~~~~~~~~~~~~~~~ |
| |
| This document lists the various feed types supported by the Feed component, |
| general information about each feed type, and the related specifications |
| documents and RFCs. |
| |
| .. contents:: Table of Contents |
| :depth: 2 |
| |
| |
| ======== |
| Overview |
| ======== |
| |
| Feeds equivalence |
| ================= |
| |
| Feed elements |
| ------------- |
| |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| | ezcFeed | ATOM | RSS1 | RSS2 | |
| +============================+=========================+============================+===========================+ |
| | |ezcFeed-author|_ * | |ATOM-author|_ !* | x | |RSS2-managingEditor|_ ? | |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| | |ezcFeed-category|_ * | |ATOM-category|_ ?* | x | |RSS2-category|_ ?* | |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| | |ezcFeed-cloud|_ | x | x | |RSS2-cloud|_ ? | |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| | |ezcFeed-contributor|_ * | |ATOM-contributor|_ ?* | x | x | |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| | |ezcFeed-copyright|_ | |ATOM-rights|_ ? | x | |RSS2-copyright|_ ? | |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| | |ezcFeed-description|_ | |ATOM-subtitle|_ ? | |RSS1-description|_ ! | |RSS2-description|_ ! | |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| | |ezcFeed-docs|_ | x | x | |RSS2-docs|_ ? | |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| | |ezcFeed-generator|_ | |ATOM-generator|_ ? | x | |RSS2-generator|_ ? | |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| | |ezcFeed-icon|_ | |ATOM-icon|_ ? | x | x | |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| | |ezcFeed-id|_ | |ATOM-id|_ ! | |RSS1-about|_ ! | |RSS2-id|_ ? | |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| | |ezcFeed-image|_ | |ATOM-logo|_ ? | |RSS1-image|_ ? | |RSS2-image|_ ? | |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| | |ezcFeed-item|_ * | |ATOM-entry|_ ?* | |RSS1-item|_ !* | |RSS2-item|_ !* | |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| | |ezcFeed-language|_ | |ATOM-language|_ ? | |RSS1-language|_ ? | |RSS2-language|_ ? | |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| | |ezcFeed-link|_ * | |ATOM-link|_ !* | |RSS1-link|_ ! | |RSS2-link|_ ! | |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| | |ezcFeed-published|_ | x | x | |RSS2-pubDate|_ ? | |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| | |ezcFeed-rating|_ | x | x | |RSS2-rating|_ ? | |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| | |ezcFeed-skipDays|_ | x | x | |RSS2-skipDays|_ ? | |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| | |ezcFeed-skipHours|_ | x | x | |RSS2-skipHours|_ ? | |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| | |ezcFeed-textInput|_ | x | |RSS1-textinput|_ ? | |RSS2-textInput|_ ? | |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| | |ezcFeed-title|_ | |ATOM-title|_ ! | |RSS1-title|_ ! | |RSS2-title|_ ! | |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| | |ezcFeed-ttl|_ | x | x | |RSS2-ttl|_ ? | |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| | |ezcFeed-updated|_ | |ATOM-updated|_ ! | x | |RSS2-lastBuildDate|_ ? | |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| | |ezcFeed-webMaster|_ | x | x | |RSS2-webMaster|_ ? | |
| +----------------------------+-------------------------+----------------------------+---------------------------+ |
| |
| | ! = required |
| | ? = optional |
| | * = can appear multiple times |
| | x = no equivalence |
| |
| In order to generate all 3 feed types from the same ezcFeed data, these |
| elements must be added to an ezcFeed object: |
| |
| - |ezcFeed-author|_ |
| - |ezcFeed-description|_ |
| - |ezcFeed-id|_ |
| - at least one |ezcFeed-item|_ with all required elements |
| - |ezcFeed-link|_ |
| - |ezcFeed-title|_ |
| - |ezcFeed-updated|_ |
| |
| |
| Item elements |
| ------------- |
| |
| +---------------------------------+-------------------------------+------------------------------+------------------------------+ |
| | ezcFeed | ATOM | RSS1 | RSS2 | |
| +=================================+===============================+==============================+==============================+ |
| | |ezcFeed-item-author|_ * | |ATOM-entry-author|_ !* | x | |RSS2-item-author|_ ? | |
| +---------------------------------+-------------------------------+------------------------------+------------------------------+ |
| | |ezcFeed-item-category|_ * | |ATOM-entry-category|_ ?* | x | |RSS2-item-category|_ ?* | |
| +---------------------------------+-------------------------------+------------------------------+------------------------------+ |
| | |ezcFeed-item-comments|_ | x | x | |RSS2-item-comments|_ ? | |
| +---------------------------------+-------------------------------+------------------------------+------------------------------+ |
| | |ezcFeed-item-content|_ | |ATOM-entry-content|_ ? | x | x | |
| +---------------------------------+-------------------------------+------------------------------+------------------------------+ |
| | |ezcFeed-item-contributor|_ * | |ATOM-entry-contributor|_ ?* | x | x | |
| +---------------------------------+-------------------------------+------------------------------+------------------------------+ |
| | |ezcFeed-item-copyright|_ | |ATOM-entry-rights|_ ? | x | x | |
| +---------------------------------+-------------------------------+------------------------------+------------------------------+ |
| | |ezcFeed-item-description|_ | |ATOM-entry-summary|_ ! | |RSS1-item-description|_ ! | |RSS2-item-description|_ ! | |
| +---------------------------------+-------------------------------+------------------------------+------------------------------+ |
| | |ezcFeed-item-enclosure|_ * | |ATOM-entry-link|_ ?* | x | |RSS2-item-enclosure|_ ? | |
| +---------------------------------+-------------------------------+------------------------------+------------------------------+ |
| | |ezcFeed-item-id|_ | |ATOM-entry-id|_ ! | |RSS1-item-about|_ ! | |RSS2-item-guid|_ ? | |
| +---------------------------------+-------------------------------+------------------------------+------------------------------+ |
| | |ezcFeed-item-language|_ ? | |ATOM-entry-language|_ ? | |RSS1-item-language|_ ? | |RSS2-item-language|_ ? | |
| +---------------------------------+-------------------------------+------------------------------+------------------------------+ |
| | |ezcFeed-item-link|_ * | |ATOM-entry-link|_ !* | |RSS1-item-link|_ ! | |RSS2-item-link|_ ! | |
| +---------------------------------+-------------------------------+------------------------------+------------------------------+ |
| | |ezcFeed-item-published|_ | |ATOM-entry-published|_ ? | x | |RSS2-item-pubDate|_ ? | |
| +---------------------------------+-------------------------------+------------------------------+------------------------------+ |
| | |ezcFeed-item-source|_ | |ATOM-entry-source|_ ? | x | |RSS2-item-source|_ ? | |
| +---------------------------------+-------------------------------+------------------------------+------------------------------+ |
| | |ezcFeed-item-title|_ | |ATOM-entry-title|_ ! | |RSS1-item-title|_ ! | |RSS2-item-title|_ ! | |
| +---------------------------------+-------------------------------+------------------------------++-----------------------------+ |
| | |ezcFeed-item-updated|_ | |ATOM-entry-updated|_ ! | x | x | |
| +---------------------------------+-------------------------------+------------------------------+------------------------------+ |
| |
| | ! = required |
| | ? = optional |
| | * = can appear multiple times |
| | x = no equivalence |
| |
| The language element for an item in any feed type is rendered in XML as an |
| *xml:lang* attribute for the item or entry XML element. Parsing an XML file |
| which contains *xml:lang* attributes for the item/entry XML elements will |
| result in the language attribute to be filled with the contents of the |
| *xml:lang* attribute. |
| |
| In order to generate all 3 feed types from the same ezcFeed data, these |
| elements must be added to an ezcFeedEntryElement object: |
| |
| - |ezcFeed-item-author|_ |
| - |ezcFeed-item-description|_ |
| - |ezcFeed-item-id|_ |
| - |ezcFeed-item-link|_ |
| - |ezcFeed-item-title|_ |
| - |ezcFeed-item-updated|_ |
| |
| This is a minimal script to be able to generate all 3 feed types from the same |
| ezcFeed data:: |
| |
| <?php |
| // use eZ Components autoload mechanism |
| require_once 'tutorial_autoload.php'; |
| |
| $feed = new ezcFeed(); |
| |
| $author = $feed->add( 'author' ); |
| $author->name = "Indiana Jones"; |
| $author->email = "indy@example.com"; |
| |
| $feed->description = "This feed shows Indiana Jones movie releases"; |
| $feed->id = "http://indy.example.com/"; |
| |
| $link = $feed->add( 'link' ); |
| $link->href = "http://indy.example.com/"; |
| |
| $feed->title = "Indiana Jones movie releases"; |
| $feed->updated = time(); |
| |
| // add a feed item |
| $item = $feed->add( 'item' ); |
| |
| $author = $item->add( 'author' ); |
| $author->name = "Indiana Jones"; |
| $author->email = "indy@example.com"; |
| |
| $item->description = "Indy meets ****** and has a hell of an adventure"; |
| $item->id = "http://indy.example.com/4"; |
| |
| $link = $item->add( 'link' ); |
| $link->href = "http://indy.example.com/4"; |
| |
| $item->title = "Indiana Jones and the Kingdom of the Crystal Skull"; |
| $item->updated = time(); |
| |
| $atom = $feed->generate( 'atom' ); |
| $rss1 = $feed->generate( 'rss1 ); |
| $rss2 = $feed->generate( 'rss2' ); |
| ?> |
| |
| |
| ezcFeed |
| ======= |
| |
| Feed elements |
| ------------- |
| |
| ezcFeed-author |
| `````````````` |
| |
| Type: array(ezcFeedPersonElement). |
| |
| One author of the feed. |
| |
| Required in `ATOM`_: one author must be present at feed-level if there is one |
| entry which does not have an author. Optional in `RSS2`_ (recommended). Ignored |
| for `RSS1`_ feeds. |
| |
| Multiple authors can appear in `ATOM`_ (not recommended). Can appear only once |
| in `RSS2`_ feeds. |
| |
| `ATOM`_ has required elements: *name*. Optional elements: *uri* (ignored in |
| `RSS2`_) and *email*. |
| |
| In `RSS2`_ the generated XML element value will be ``email (name)``. |
| |
| Create example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $author = $feed->add( 'author' ); |
| $author->name = 'Guybrush Threepwood'; |
| $author->email = 'guybrush@monkey-island.com'; |
| $author->uri = 'http://example.com/~guybrush'; // ATOM only |
| ?> |
| |
| The resulting ATOM XML element will be:: |
| |
| <author> |
| <name>Guybrush Threepwood</name> |
| <email>guybrush@monkey-island.com</email> |
| <uri>http://example.com/~guybrush</uri> |
| </author> |
| |
| The resulting RSS2 XML element will be:: |
| |
| <managingEditor>guybrush@monkey-island.com (Guybrush Threepwood)</managingEditor> |
| |
| Parse example:: |
| |
| <?php |
| $authors = array(); |
| |
| // $feed is an ezcFeed object |
| if ( isset( $feed->author ) ) |
| { |
| foreach ( $feed->author as $author ) |
| { |
| $authors[] = array( |
| 'name' => isset( $author->name ) ? $author->name : null, |
| 'uri' => isset( $author->uri ) ? $author->uri : null, // ATOM only |
| 'email' => isset( $author->email ) ? $author->email : null // ATOM only |
| ); |
| } |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-author`_, `ATOM-author`_, RSS1-none, |
| `RSS2-managingEditor`_. |
| |
| |
| ezcFeed-category |
| ```````````````` |
| |
| Type: array(ezcFeedCategoryElement). |
| |
| A category for the feed. |
| |
| Optional. Only `ATOM`_ and `RSS2`_ feeds will have this element after |
| generating the feed. It will be ignored for `RSS1`_ feeds. |
| |
| Multiple categories can appear in `ATOM`_ and `RSS2`_ feeds. |
| |
| `ATOM`_ has one required attribute: *term*. It also has 2 optional attributes: |
| *scheme* (equivalent to `RSS2`_ *domain* attribute), *label*. The *label* |
| attribute will be ignored for `RSS2`_ feeds. |
| |
| `RSS2`_ has one optional attribute: *domain* (equivalent to `ATOM`_ *scheme* |
| attribute). |
| |
| Create example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $category = $feed->add( 'category' ); |
| $category->term = 'holiday'; |
| $category->scheme = 'http://example.com/categories/holiday'; // scheme = RSS2 domain |
| $category->label = 'Holiday'; // ATOM only |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| $categories = array(); |
| |
| // $feed is an ezcFeed object |
| if ( isset( $feed->category ) ) |
| { |
| foreach ( $feed->category as $category ) |
| { |
| $categories[] = array( |
| 'term' => isset( $category->term ) ? $category->term : null, |
| 'scheme' => isset( $category->scheme ) ? $category->scheme : null, |
| // scheme = RSS2 domain |
| 'label' => isset( $category->label ) ? $category->label : null // ATOM only |
| ); |
| } |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-category`_, `ATOM-category`_, RSS1-none, |
| `RSS2-category`_. |
| |
| |
| ezcFeed-cloud |
| ````````````` |
| |
| Type: ezcFeedCloudElement. |
| |
| Allows processes to register with a cloud to be notified of updates to the |
| channel, implementing a lightweight publish-subscribe protocol for RSS feeds. |
| |
| Optional (not recommended). Only `RSS2`_ feeds will have this element after |
| generating the feed. It will be ignored for `RSS1`_ and `ATOM`_. |
| |
| Can appear only once. |
| |
| Has the required attributes: *domain*, *port*, *path*, *registerProcedure*, |
| *protocol*. |
| |
| Create example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $cloud = $feed->add( 'cloud' ); |
| $cloud->domain = 'rpc.sys.com'; |
| $cloud->port = 80; |
| $cloud->path = '/RPC2'; |
| $cloud->registerProcedure = 'myCloud.rssPleaseNotify'; |
| $cloud->protocol = 'xml-rpc'; |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| if ( isset( $feed->cloud ) ) |
| { |
| $cloud = $feed->cloud; |
| $domain = isset( $cloud->domain ) ? $cloud->domain : null; |
| $port = isset( $cloud->port ) ? $cloud->port : null; |
| $path = isset( $cloud->path ) ? $cloud->path : null; |
| $procedure = isset( $cloud->registerProcedure ) ? $cloud->registerProcedure : null; |
| $protocol = isset( $cloud->protocol ) ? $cloud->protocol : null; |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-cloud`_, ATOM-none, RSS1-none, `RSS2-cloud`_. |
| |
| |
| ezcFeed-contributor |
| ``````````````````` |
| |
| Type: array(ezcFeedPersonElement). |
| |
| One contributor of the feed. |
| |
| Optional (not recommended). Only `ATOM`_ feeds will have this element after |
| generating the feed. It will be ignored for `RSS1`_ and `RSS2`_ feeds. |
| |
| Multiple contributors can appear. |
| |
| Required elements: *name*. Optional elements: *uri*, *email*. |
| |
| Create example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $contributor = $feed->add( 'contributor' ); |
| $contributor->name = 'Guybrush Threepwood'; |
| $contributor->email = 'guybrush@monkey-island.com'; |
| $contributor->uri = 'http://example.com/~guybrush'; |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| $contributors = array(); |
| |
| // $feed is an ezcFeed object |
| if ( isset( $feed->contributor ) ) |
| { |
| foreach ( $feed->contributor as $contributor ) |
| { |
| $contributors[] = array( |
| 'name' => isset( $contributor->name ) ? $contributor->name : null, |
| 'uri' => isset( $contributor->uri ) ? $contributor->uri : null, |
| 'email' => isset( $contributor->email ) ? $contributor->email : null |
| ); |
| } |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-contributor`_, `ATOM-contributor`_, RSS1-none, |
| RSS2-none. |
| |
| |
| ezcFeed-copyright |
| ````````````````` |
| |
| Type: ezcFeedTextElement. |
| |
| Copyright information for the feed. |
| |
| Optional. Only `ATOM`_ and `RSS2`_ feeds will have this element after |
| generating the feed. It will be ignored for `RSS1`_ feeds. |
| |
| Can appear only once. |
| |
| `ATOM`_ has an optional attribute *type* with possible values ``text`` |
| (default), ``html``, ``xhtml``. This attribute will be ignored for `RSS1`_ and |
| `RSS2`_ feeds. |
| |
| `ATOM`_ has an optional attribute *xml:lang* which specifies the language of |
| the text. A list of allowed languages can be found here: |
| `RSS language codes`_. This attribute is accessed through ezcFeed as |
| *language*. This attribute will be ignored for `RSS1`_ and `RSS2`_ feeds. |
| |
| Create example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $feed->copyright = 'Copyright <company name>'; |
| $feed->copyright->type = 'text'; // ATOM only, ignored in RSS1 and RSS2 |
| $feed->copyright->language = 'de'; // ATOM only, ignored in RSS1 and RSS2 |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| if ( isset( $feed->copyright ) ) |
| { |
| $copyrightElement = $feed->copyright; |
| $copyright = $copyrightElement->text; |
| $type = isset( $copyrightElement->type ) ? $copyrightElement->type : null; // ATOM only |
| $language = isset( $copyrightElement->language ) ? $copyrightElement->language : null; // ATOM only |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-copyright`_, `ATOM-rights`_, RSS1-none, |
| `RSS2-copyright`_. |
| |
| |
| ezcFeed-description |
| ``````````````````` |
| |
| Type: ezcFeedTextElement. |
| |
| A short description of the feed. |
| |
| Required. |
| |
| Can appear only once. |
| |
| `ATOM`_ has an optional attribute *type* with possible values ``text`` |
| (default), ``html``, ``xhtml``. This attribute will be ignored for `RSS1`_ and |
| `RSS2`_ feeds. |
| |
| `ATOM`_ has an optional attribute *xml:lang* which specifies the language of |
| the text. A list of allowed languages can be found here: |
| `RSS language codes`_. This attribute is accessed through ezcFeed as |
| *language*. This attribute will be ignored for `RSS1`_ and `RSS2`_ feeds. |
| |
| Create example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $feed->description = 'Feed description'; |
| $feed->description->type = 'text'; // ATOM only, ignored in RSS1 and RSS2 |
| $feed->description->language = 'de'; // ATOM only, ignored in RSS1 and RSS2 |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| if ( isset( $feed->description ) ) |
| { |
| $descriptionElement = $feed->description; |
| $description = $descriptionElement->text; |
| $type = isset( $descriptionElement->type ) ? $descriptionElement->type : null; // ATOM only |
| $language = isset( $descriptionElement->language ) ? $descriptionElement->language : null; // ATOM only |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-description`_, `ATOM-subtitle`_, `RSS1-description`_, |
| `RSS2-description`_. |
| |
| |
| ezcFeed-docs |
| ```````````` |
| |
| Type: ezcFeedTextElement. |
| |
| An URL that points to the documentation for the format used in the feed file. |
| |
| Optional. Only `RSS2`_ feeds will have this element after generating the feed. |
| It will be ignored for `RSS1`_ and `ATOM`_ feeds. |
| |
| Can appear only once. |
| |
| Create example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $feed->docs = 'http://www.rssboard.org/rss-specification'; |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $docs = isset( $feed->docs ) ? $feed->docs->__toString() : null; |
| ?> |
| |
| Equivalents: `ezcFeed-docs`_, ATOM-none, RSS1-none, `RSS2-docs`_. |
| |
| |
| ezcFeed-generator |
| ````````````````` |
| |
| Type: ezcFeedGeneratorElement. |
| |
| Indicates the software used to generate the feed. |
| |
| Optional. Only `ATOM`_ and `RSS2`_ feeds will have this element after |
| generating the feed. It will be ignored for `RSS1`_ feeds. |
| |
| Can appear only once. |
| |
| `ATOM`_ has 2 optional attributes: *url*, *version*. These attributes are |
| used in `RSS2`_ to generate the string ``name version (url)``. This element |
| and its attributes will be filled automatically by ezcFeed when generating |
| the feed with the values ``eZComponents Feed``, |
| ``http://ezcomponents.org/docs/tutorials/Feed`` and ``<version>`` |
| respectively, where the version is the current version of the Feed component |
| (``dev`` for pre-alpha1). |
| |
| `RSS2`_ will get this value automatically when generating the feed: |
| ``eZ Components Feed <version> (http://ezcomponents.org/docs/tutorials/Feed)``, |
| where the version is the current version of the Feed component (``dev`` for |
| pre-alpha1) |
| |
| Create example - this is automatically done by ezcFeed when calling the |
| **generate()** method:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $generator = $feed->add( 'generator' ); |
| $generator->name = 'eZ Components Feed'; |
| $generator->url = 'http://ezcomponents.org/docs/tutorials/Feed'; |
| $generator->version = '1.0'; |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| if ( isset( $feed->generator ) ) |
| { |
| $name = isset( $feed->generator->name ) ? $feed->generator->name : null; |
| $url = isset( $feed->generator->url ) ? $feed->generator->url : null; // ATOM only |
| $version = isset( $feed->generator->version ) ? $feed->generator->version : null; // ATOM only |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-generator`_, `ATOM-generator`_, RSS1-none, |
| `RSS2-generator`_. |
| |
| |
| ezcFeed-icon |
| ```````````` |
| |
| Type: ezcFeedImageElement. |
| |
| An icon for a feed, similar with ``favicon.ico`` for websites. |
| |
| Optional. Only `ATOM`_ feeds will have this element after generating the |
| feed. It will be ignored for `RSS1`_ and `RSS2`_ feeds. |
| |
| Can appear only once. |
| |
| Create example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $feed->icon = 'http://example.com/favicon.ico'; |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $icon = isset( $feed->icon ) ? $feed->icon->__toString : null; |
| ?> |
| |
| Equivalents: `ezcFeed-icon`_, `ATOM-icon`_, RSS1-none, RSS2-none. |
| |
| |
| ezcFeed-id |
| `````````` |
| |
| Type: ezcFeedIdElement. |
| |
| A universally unique and permanent URI for a feed. For example, it can be an |
| Internet domain name. |
| |
| Required. `RSS1`_ and `ATOM`_ feeds will have this element after generating |
| the feed. It will be rendered as an *atom:link* element in `RSS2`_ feeds |
| (together with the *xmlns:atom* namespace). |
| |
| Can appear only once. |
| |
| Create example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $feed->id = 'ID value'; |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $id = isset( $feed->id ) ? $feed->id->__toString() : null; |
| ?> |
| |
| Equivalents: `ezcFeed-id`_, `ATOM-id`_, `RSS1-about`_, `RSS2-id`_. |
| |
| |
| ezcFeed-image |
| ````````````` |
| |
| Type: ezcFeedImageElement. |
| |
| An image associated with the feed. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| `RSS1`_ has the required attribute *about*, which should have the same value |
| as the *url* sub-element. |
| |
| `RSS1`_ and `RSS2`_ have 3 required sub-elements: *title*, *link*, *url* |
| (same for both feed types). These attributes will be ignored for `ATOM`_ feeds. |
| |
| `RSS2`_ has 3 optional sub-elements: *width*, *height*, *description*. These |
| attributes will be ignored for `RSS1`_ and `ATOM`_ feeds. |
| |
| Create example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $image = $feed->add( 'image' ); |
| $image->link = 'http://example.com/target_for_image_click.html'; |
| $image->url = 'http://example.com/image.jpg'; // RSS1 and RSS2 only |
| $image->title = 'Click here to go to the link'; // RSS1 and RSS2 only |
| $image->width = 100; // RSS2 only |
| $image->height = 200; // RSS2 only |
| $image->description = 'This image is cool'; // RSS2 only |
| $image->about = 'http://example.com/image.jpg'; // RSS1 only |
| ?> |
| |
| Parse example (`RSS1`_ and `RSS2`_):: |
| |
| <?php |
| // $feed is an ezcFeed object |
| if ( isset( $feed->image ) ) |
| { |
| $image = $feed->image; |
| $link = isset( $image->link ) ? $image->link : null; |
| $url = isset( $image->url ) ? $image->url : null; // RSS1 and RSS2 only |
| $title = isset( $image->title ) ? $image->title : null; // RSS1 and RSS2 only |
| $width = isset( $image->width ) ? $image->width : null; // RSS2 only |
| $height = isset( $image->height ) ? $image->height : null; // RSS2 only |
| $description = isset( $image->description ) ? $image->description : null; // RSS2 only |
| $about = isset( $image->about ) ? $image->about : null; // RSS1 only |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-image`_, `ATOM-logo`_, `RSS1-image`_, `RSS2-image`_. |
| |
| |
| ezcFeed-item |
| ```````````` |
| |
| Type: array(ezcFeedEntryElement). |
| |
| Feed entry. |
| |
| Required for `RSS1`_ and `RSS2`_ feeds. Optional (recommended) for `ATOM`_ |
| feeds. |
| |
| Multiple entries can appear. |
| |
| Create example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $item = $feed->add( 'item' ); |
| |
| // set $item properties, for example: |
| $item->title = 'Item title'; |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| foreach ( $feed->item as $item ) |
| { |
| // get $item properties, for example: |
| $title = isset( $item->title ) ? $item->title->__toString() : null; |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-item`_, `ATOM-entry`_, `RSS1-item`_, `RSS2-item`_. |
| |
| |
| ezcFeed-language |
| ```````````````` |
| |
| Type: ezcFeedTextElement. |
| |
| The language for the feed. |
| |
| Optional (recommended). Only `RSS2`_ feeds will have this element after |
| generating the feed. It will be ignored for `RSS1`_ and `ATOM`_ feeds. |
| |
| Can appear only once. |
| |
| In `ATOM`_ you can assign the language to each element instead. |
| |
| A list of allowed languages can be found here: `RSS language codes`_. |
| |
| Create example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $feed->language = 'en'; |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $language = isset( $feed->language ) ? $feed->language->__toString() : null; |
| ?> |
| |
| Equivalents: `ezcFeed-language`_, ATOM-*xml:lang* for each element, RSS1-none, |
| `RSS2-language`_. |
| |
| |
| ezcFeed-link |
| ```````````` |
| |
| Type: array(ezcFeedLinkElement). |
| |
| An URL to the HTML website corresponding to the feed. |
| |
| Required for all feed types. In `ATOM`_ a link back to the feed itself must be |
| present (with ``rel="self"``). |
| |
| Multiple links can appear in `ATOM`_ (not recommended). |
| |
| Required attributes: *href*. Optional attributes for `ATOM`_: *rel* (possible |
| values: ``alternate`` (default), ``enclosure``, ``related``, ``self``, |
| ``via``), *type*, *hreflang*, *title*, *length*. |
| |
| A maximum of one link with ``rel="alternate"`` can appear per *type* and |
| *hreflang*. |
| |
| These attributes will be ignored for `RSS1`_ and `RSS2`_ feeds. |
| |
| Create example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $link = $feed->add( 'link' ); |
| $link->href = 'http://example.com'; |
| $link->rel = 'self'; // ATOM only |
| $link->type = 'text/html'; // ATOM only |
| $link->hreflang = 'en'; // ATOM only |
| $link->title = 'Link to the homepage'; // ATOM only |
| $link->length = 12345; // ATOM only |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| $links = array(); |
| |
| // $feed is an ezcFeed object |
| foreach ( $feed->link as $link ) |
| { |
| $links[] = array( |
| 'href' => isset( $link->href ) ? $link->href : null, |
| 'rel' => isset( $link->rel ) ? $link->rel : null, // ATOM only |
| 'type' => isset( $link->type ) ? $link->type : null, // ATOM only |
| 'hreflang' => isset( $link->hreflang ) ? $link->hreflang : null, // ATOM only |
| 'title' => isset( $link->title ) ? $link->title : null, // ATOM only |
| 'length' => isset( $link->length ) ? $link->length : null, // ATOM only |
| ); |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-link`_, `ATOM-link`_, `RSS1-link`_, `RSS2-link`_. |
| |
| |
| ezcFeed-published |
| ````````````````` |
| |
| Type: ezcFeedDateElement. |
| |
| The time the feed was published. |
| |
| Optional (not recommended). Only `RSS2`_ feeds will have this element after |
| generating the feed. It will be ignored for `RSS1`_ and `ATOM`_ feeds. |
| |
| Can appear only once. |
| |
| Can be assigned with an integer timestamp, a string date or a DateTime object. |
| |
| Create example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $feed->published = time(); |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $published = isset( $feed->published ) ? $feed->published->date->format( 'c' ) : null; |
| ?> |
| |
| Other formats can be used also instead of ``'c'``, see the documentation for |
| `date_format()`_. |
| |
| Equivalents: `ezcFeed-published`_, ATOM-none, RSS1-none, `RSS2-pubDate`_. |
| |
| |
| ezcFeed-rating |
| `````````````` |
| |
| Type: ezcFeedTextElement. |
| |
| The `PICS`_ rating for the channel. |
| |
| Optional (not recommended). Only `RSS2`_ feeds will have this element after |
| generating the feed. It will be ignored for `RSS1`_ and `ATOM`_ feeds. |
| |
| Can appear only once. |
| |
| Create example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $feed->rating = '(PICS-1.1 "http://www.gcf.org/v2.5" labels |
| on "1994.11.05T08:15-0500" |
| exp "1995.12.31T23:59-0000" |
| for "http://www.greatdocs.com/foo.html" |
| by "George Sanderson, Jr." |
| ratings (suds 0.5 density 0 color/hue 1))'; |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $rating = isset( $feed->rating ) ? $feed->rating->__toString() : null; |
| ?> |
| |
| Equivalents: `ezcFeed-rating`_, ATOM-none, RSS1-none, `RSS2-rating`_. |
| |
| |
| ezcFeed-skipDays |
| ```````````````` |
| |
| Type: ezcFeedSkipDaysElement. |
| |
| A hint for aggregators telling them which days they can skip when reading the |
| feed. |
| |
| Optional (not recommended). Only `RSS2`_ feeds will have this element after |
| generating the feed. It will be ignored for `RSS1`_ and `ATOM`_ feeds. |
| |
| Can appear only once. |
| |
| Can have up to 7 *day* elements, each with a value from ``Monday`` to ``Sunday``. |
| |
| Create example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $skip = $feed->add( 'skipDays' ); |
| $skip->days = array( 'Saturday', 'Sunday' ); |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $days = array( 'Monday' => false, /*...*/ 'Sunday' => false ); |
| foreach ( $feed->skipDays->days as $skip ) |
| { |
| $days[$skip] = true; |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-skipDays`_, ATOM-none, RSS1-none, `RSS2-skipDays`_. |
| |
| |
| ezcFeed-skipHours |
| ````````````````` |
| |
| Type: ezcFeedSkipHoursElement. |
| |
| A hint for aggregators telling them which hours they can skip when reading the |
| feed. |
| |
| Optional (not recommended). Only `RSS2`_ feeds will have this element after |
| generating the feed. It will be ignored for `RSS1`_ and `ATOM`_ feeds. |
| |
| Can appear only once. |
| |
| Can have up to 24 *hour* elements, each with an integer value from ``0`` |
| (midnight) to ``23``. The value ``24`` can also be used for midnight. |
| |
| Create example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $skip = $feed->add( 'skipHours' ); |
| $skip->hours = array( 1, 2, 3, 4, 5 ); |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $hours = array( '0' => false, /*...*/ '24' => false ); |
| foreach ( $feed->skipHours->hours as $skip ) |
| { |
| $hours[$skip] = true; |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-skipHours`_, ATOM-none, RSS1-none, `RSS2-skipHours`_. |
| |
| |
| ezcFeed-textInput |
| ````````````````` |
| |
| Type: ezcFeedTextInputElement. |
| |
| Specifies a text input box that can be displayed with the feed. |
| |
| Optional (not recommended). Only `RSS1`_ and `RSS2`_ feeds will have this |
| element after generating the feed. It will be ignored for `ATOM`_ feeds. |
| |
| Can appear only once. |
| |
| For `RSS1`_ it has the required attribute *about*, which should have the same |
| value as the *link* sub-element. |
| |
| Has four required sub-elements: *title*, *description*, *name*, *link* (same |
| for `RSS1`_ and `RSS2`_). |
| |
| Create example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $textInput = $feed->add( 'textInput' ); |
| $textInput->title = 'Text input title'; |
| $textInput->description = 'Text input description'; |
| $textInput->name = 'Text input name'; |
| $textInput->link = 'Text input link'; |
| $textInput->about = 'Text input link'; // RSS1 only, ignored in RSS2 |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| if ( isset( $feed->textInput ) ) |
| { |
| $textInput = $feed->textInput; |
| $title = isset( $textInput->title ) ? $textInput->title : null; |
| $description = isset( $textInput->description ) ? $textInput->description : null; |
| $name = isset( $textInput->name ) ? $textInput->name : null; |
| $link = isset( $textInput->link ) ? $textInput->link : null; |
| $about = isset( $textInput->about ) ? $textInput->about : null; // RSS1 only |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-textInput`_, ATOM-none, `RSS1-textinput`_, |
| `RSS2-textInput`_. |
| |
| |
| ezcFeed-title |
| ````````````` |
| |
| Type: ezcFeedTextElement. |
| |
| Human readable title for the feed. For example, it can be the same as the |
| website title. |
| |
| Required. |
| |
| Can appear only once. |
| |
| `ATOM`_ has an optional attribute *type* with possible values ``text`` |
| (default), ``html``, ``xhtml``. This attribute will be ignored for `RSS1`_ and |
| `RSS2`_ feeds. |
| |
| `ATOM`_ has an optional attribute *xml:lang* which specifies the language of |
| the text. A list of allowed languages can be found here: |
| `RSS language codes`_. This attribute is accessed through ezcFeed as *language*. |
| This attribute will be ignored for `RSS1`_ and `RSS2`_ feeds. |
| |
| Create example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $feed->title = 'Feed title'; |
| $feed->title->type = 'text'; // ATOM only, ignored in RSS1 and RSS2 |
| $feed->title->language = 'de'; // ATOM only, ignored in RSS1 and RSS2 |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| if ( isset( $feed->title ) ) |
| { |
| $element = $feed->title; |
| $title = isset( $element->text ) ? $element->text : null; |
| $type = isset( $element->type ) ? $element->type : null; // ATOM only |
| $language = isset( $element->language ) ? $element->language : null; // ATOM only |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-title`_, `ATOM-title`_, `RSS1-title`_, `RSS2-title`_. |
| |
| |
| ezcFeed-ttl |
| ``````````` |
| |
| Type: ezcFeedTextElement. |
| |
| Number of minutes that indicates how long a channel can be cached before |
| refreshing from the source. |
| |
| Optional (not recommended). Only `RSS2`_ feeds will have this element after |
| generating the feed. It will be ignored `RSS1`_ and `ATOM`_ feeds. |
| |
| Can appear only once. |
| |
| Create example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $feed->ttl = '60'; // minutes |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $ttl = isset( $feed->ttl ) ? $feed->ttl->__toString() : null; |
| ?> |
| |
| Equivalents: `ezcFeed-ttl`_, ATOM-none, RSS1-none, `RSS2-ttl`_. |
| |
| |
| ezcFeed-updated |
| ``````````````` |
| |
| Type: ezcFeedDateElement. |
| |
| The last time the feed was updated. |
| |
| Required for `ATOM`_. Optional for `RSS2`_. It will be ignored for `RSS1`_ |
| feeds. ezcFeed will add automatically the *updated* element with the value the |
| current time in `ATOM`_ and `RSS2`_ feeds. |
| |
| Can appear only once. |
| |
| Can be assigned with an integer timestamp, a string date or a DateTime object. |
| |
| Create example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $feed->updated = 'Tue, 10 Jun 2003 04:00:00 GMT'; |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $updated = isset( $feed->updated ) ? $feed->updated->date->format( 'c' ) : null; |
| ?> |
| |
| Other formats can be used also instead of ``'c'``, see the documentation for |
| `date_format()`_. |
| |
| Equivalents: `ezcFeed-updated`_, `ATOM-updated`_, RSS1-none, `RSS2-lastBuildDate`_. |
| |
| |
| ezcFeed-webMaster |
| ````````````````` |
| |
| Type: ezcFeedPersonElement. |
| |
| The email address of the webmaster responsible for the feed. |
| |
| Optional (not recommended). Only `RSS2`_ feeds will have this element after |
| generating the feed. It will be ignored for `RSS1`_ and `ATOM`_ feeds. |
| |
| Can appear only once. |
| |
| It is a good practice to include the name and email of the webmaster, |
| for example ``john.doe@example.com (John Doe)``. |
| |
| Create example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $webMaster = $feed->add( 'webMaster' ); |
| $webMaster->name = 'John Doe'; |
| $webMaster->email = 'john.doe@example.com'; |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| if ( isset( $feed->webMaster ) ) |
| { |
| $name = isset( $feed->webMaster->name ) ? $feed->webMaster->name : null; |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-webMaster`_, ATOM-none, RSS1-none, `RSS2-webMaster`_. |
| |
| |
| Item elements |
| ------------- |
| |
| ezcFeed-item-author |
| ``````````````````` |
| |
| Type: array(ezcFeedPersonElement). |
| |
| One author of the feed entry. |
| |
| Required in `ATOM`_: one author must be present in each entry in case the feed |
| does not contain an author. Optional in `RSS2`_ (recommended). Ignored for |
| `RSS1`_ feeds. |
| |
| Multiple authors can appear in `ATOM`_ (not recommended). Can appear only once |
| in `RSS2`_ feeds. |
| |
| `ATOM`_ has required elements: *name*. Optional elements: *uri* (ignored in |
| `RSS2`_) and *email*. |
| |
| In `RSS2`_ the generated XML element value will be ``email (name)``. |
| |
| Create example:: |
| |
| <?php |
| // $item is an ezcFeedEntryElement object |
| $author = $item->add( 'author' ); |
| $author->name = 'Guybrush Threepwood'; |
| $author->email = 'guybrush@monkey-island.com'; |
| $author->uri = 'http://example.com/~guybrush'; // ATOM only |
| ?> |
| |
| The resulting ATOM XML element will be:: |
| |
| <author> |
| <name>Guybrush Threepwood</name> |
| <email>guybrush@monkey-island.com</email> |
| <uri>http://example.com/~guybrush</uri> |
| </author> |
| |
| The resulting RSS2 XML element will be:: |
| |
| <author>guybrush@monkey-island.com (Guybrush Threepwood)</author> |
| |
| Parse example:: |
| |
| <?php |
| $authors = array(); |
| |
| // $item is an ezcFeedEntryElement object |
| if ( isset( $item->author ) ) |
| { |
| foreach ( $item->author as $author ) |
| { |
| $authors[] = array( |
| 'name' => isset( $author->name ) ? $author->name : null, |
| 'uri' => isset( $author->uri ) ? $author->uri : null, // ATOM only |
| 'email' => isset( $author->email ) ? $author->email : null // ATOM only |
| ); |
| } |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-item-author`_, `ATOM-entry-author`_, RSS1-none, |
| `RSS2-item-author`_. |
| |
| |
| ezcFeed-item-category |
| ````````````````````` |
| |
| Type: array(ezcFeedCategoryElement). |
| |
| A category for the feed entry. |
| |
| Optional. Only `ATOM`_ and `RSS2`_ feeds will have this element after |
| generating the feed. It will be ignored for `RSS1`_ feeds. |
| |
| Multiple categories can appear in `ATOM`_ and `RSS2`_ feeds. |
| |
| `ATOM`_ has one required attribute: *term*. Optional attributes: *scheme* |
| (*domain* in `RSS2`_) and *label* (ignored in `RSS2`_). |
| |
| Create example:: |
| |
| <?php |
| // $item is an ezcFeedEntryElement object |
| $category = $item->add( 'category' ); |
| $category->term = 'holiday'; |
| $category->scheme = 'http://example.com/categories/holiday'; // scheme = RSS2 domain |
| $category->label = 'Holiday'; // ATOM only |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| $categories = array(); |
| |
| // $item is an ezcFeedEntryElement object |
| if ( isset( $item->category ) ) |
| { |
| foreach ( $item->category as $category ) |
| { |
| $categories[] = array( |
| 'term' => isset( $category->term ) ? $category->term : null, |
| 'scheme' => isset( $category->scheme ) ? $category->scheme : null, // scheme = RSS2 domain |
| 'label' => isset( $category->label ) ? $category->label : null // ATOM only |
| ); |
| } |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-item-category`_, `ATOM-entry-category`_, RSS1-none, |
| `RSS2-item-category`_. |
| |
| |
| ezcFeed-item-comments |
| ````````````````````` |
| |
| Type: ezcFeedTextElement. |
| |
| A link to a webpage for comments. |
| |
| Optional (not recommended). Only `RSS2`_ feeds will have this element after |
| generating the feed. It will be ignored for `RSS1`_ and `ATOM`_ feeds. |
| |
| Can appear only once. |
| |
| Create example:: |
| |
| <?php |
| // $item is an ezcFeedEntryElement object |
| $item->comments = 'http://www.example.com/comments.php'; |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $item is an ezcFeedEntryElement object |
| $comments = isset( $item->comments ) ? $item->comments->__toString() : null; |
| ?> |
| |
| Equivalents: `ezcFeed-item-comments`_, ATOM-none, RSS1-none, |
| `RSS2-item-comments`_. |
| |
| |
| ezcFeed-item-content |
| ```````````````````` |
| |
| Type: ezcFeedContentElement. |
| |
| A short description for the feed item. |
| |
| Optional (not recommended). Only `ATOM`_ feeds will have this element after |
| generating the feed. It will be ignored for `RSS1`_ and `RSS2`_ feeds. Can be |
| substituted with |ezcFeed-item-description|_ (recommended). |
| |
| Can appear only once. |
| |
| Has an optional attribute *type* with possible values ``text`` (default), |
| ``html``, ``xhtml``, or other mime values, depending on the data it contains. |
| |
| Has an optional attribute *src* which specifies the URI where the full content |
| is located. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| This attribute is accessed through ezcFeed as *language*. A list of allowed |
| languages can be found here: `RSS language codes`_. |
| |
| If *src* is present, the *type* attribute, if present, is the media type of the |
| content. |
| |
| Otherwise, if the type attribute ends in ``+xml`` or ``/xml``, then an XML |
| document of this type is contained inline. |
| |
| Otherwise, if the type attribute starts with ``text``, then an escaped document |
| of this type is contained inline. |
| |
| Otherwise, a base64 encoded document of the indicated media type is contained |
| inline. |
| |
| Create example:: |
| |
| <?php |
| // $item is an ezcFeedEntryElement object |
| $item->content = 'Content'; |
| $item->content->type = 'text'; |
| $item->content->language = 'de'; |
| $item->content->src = 'http://example.com/content_src.html'; |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $item is an ezcFeedEntryElement object |
| if ( isset( $item->content ) ) |
| { |
| $contentElement = $item->content; |
| $content = $descriptionElement->text; |
| $type = isset( $contentElement->type ) ? $contentElement->type : null; |
| $language = isset( $contentElement->language ) ? $contentElement->language : null; |
| $src = isset( $contentElement->src ) ? $contentElement->src : null; |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-item-content`_/`ezcFeed-item-description`_, |
| `ATOM-entry-content`_, RSS1-none, RSS2-none. |
| |
| |
| ezcFeed-item-contributor |
| ```````````````````````` |
| |
| Type: array(ezcFeedPersonElement). |
| |
| One contributor of the feed entry. |
| |
| Optional (not recommended). Only `ATOM`_ feeds will have this element after |
| generating the feed. It will be ignored for `RSS1`_ and `RSS2`_ feeds. |
| |
| Multiple contributors can appear. |
| |
| Required elements: *name*. Optional elements: *uri*, *email*. |
| |
| Create example:: |
| |
| <?php |
| // $item is an ezcFeedEntryElement object |
| $contributor = $item->add( 'contributor' ); |
| $contributor->name = 'Guybrush Threepwood'; |
| $contributor->uri = 'http://example.com/~guybrush'; |
| $contributor->email = 'guybrush@monkey-island.com'; |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| $contributors = array(); |
| |
| // $item is an ezcFeedEntryElement object |
| if ( isset( $item->contributor ) ) |
| { |
| foreach ( $item->contributor as $contributor ) |
| { |
| $contributors[] = array( |
| 'name' => isset( $contributor->name ) ? $contributor->name : null, |
| 'uri' => isset( $contributor->uri ) ? $contributor->uri : null, |
| 'email' => isset( $contributor->email ) ? $contributor->email : null |
| ); |
| } |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-item-contributor`_, `ATOM-entry-contributor`_, |
| RSS1-none, RSS2-none. |
| |
| |
| ezcFeed-item-copyright |
| `````````````````````` |
| |
| Type: ezcFeedTextElement. |
| |
| Copyright information for the feed entry. |
| |
| Optional. Only `ATOM`_ feeds will have this element after generating the feed. |
| It will be ignored for `RSS1`_ and `RSS2`_ feeds. For `RSS2`_ the copyright is |
| specified for the whole feed, not for any feed items (see |
| `ezcFeed-copyright`_). |
| |
| Can appear only once. |
| |
| `ATOM`_ has an optional attribute *type* with possible values ``text`` |
| (default), ``html``, ``xhtml``. This attribute will be ignored for `RSS1`_ and |
| `RSS2`_ feeds. |
| |
| `ATOM`_ has an optional attribute *xml:lang* which specifies the language of |
| the text. A list of allowed languages can be found here: |
| `RSS language codes`_. This attribute is accessed through ezcFeed as |
| *language*. This attribute will be ignored for `RSS1`_ and `RSS2`_ feeds. |
| |
| Create example:: |
| |
| <?php |
| // $item is an ezcFeedEntryElement object |
| $item->copyright = 'Copyright <company name>'; |
| $item->copyright->type = 'text'; // ATOM only |
| $item->copyright->language = 'de'; // ATOM only |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $item is an ezcFeedEntryElement object |
| if ( isset( $item->copyright ) ) |
| { |
| $copyrightElement = $item->copyright; |
| $copyright = $copyrightElement->text; |
| $type = isset( $copyrightElement->type ) ? $copyrightElement->type : null; // ATOM only |
| $language = isset( $copyrightElement->language ) ? $copyrightElement->language : null; // ATOM only |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-item-copyright`_, `ATOM-entry-rights`_, RSS1-none, |
| RSS2-none (`RSS2-copyright`_ for the whole feed). |
| |
| |
| ezcFeed-item-description |
| ```````````````````````` |
| |
| Type: ezcFeedTextElement. |
| |
| A short description of the feed item. |
| |
| Required. In `ATOM`_ it can be substituted with `ATOM-entry-content`_ (not |
| recommended) (see `ezcFeed-item-content`_). |
| |
| Can appear only once. |
| |
| `ATOM`_ has an optional attribute *type* with possible values ``text`` |
| (default), ``html``, ``xhtml``. This attribute will be ignored for `RSS1`_ and |
| `RSS2`_ feeds. |
| |
| `ATOM`_ has an optional attribute *xml:lang* which specifies the language of |
| the text. A list of allowed languages can be found here: |
| `RSS language codes`_. This attribute is accessed through ezcFeed as |
| *language*. This attribute will ignored for `RSS1`_ and `RSS2`_ feeds. |
| |
| Create example:: |
| |
| <?php |
| // $item is an ezcFeedEntryElement object |
| $item->description = 'Feed description'; |
| $item->description->type = 'text'; // ATOM only, ignored in RSS1 and RSS2 |
| $item->description->language = 'de'; // ATOM only, ignored in RSS1 and RSS2 |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $item is an ezcFeedEntryElement object |
| if ( isset( $item->description ) ) |
| { |
| $desc = $item->description; |
| $description = $desc->text; |
| $type = isset( $desc->type ) ? $desc->type : null; // ATOM only |
| $language = isset( $desc->language ) ? $desc->language : null; // ATOM only |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-item-description`_, `ATOM-entry-summary`_, |
| `RSS1-item-description`_, `RSS2-item-description`_. |
| |
| |
| ezcFeed-item-enclosure |
| `````````````````````` |
| |
| Type: array(ezcFeedEnclosureElement). |
| |
| A link to a multimedia file attached to the feed item. |
| |
| Optional. Only `RSS2`_ feeds will have this element after generating the feed. |
| It will be ignored for `RSS1`_. For `ATOM`_ feeds the enclosure elements will |
| be converted to |ATOM-entry-link|_ elements with the attribute |
| ``rel="enclosure"``. |
| |
| Can appear only once in `RSS2`_ and multiple times in `ATOM`_ (as |
| |ATOM-entry-link|_). |
| |
| Has 3 required attributes: *url*, *length*, *type*. |
| |
| Create example:: |
| |
| <?php |
| // $item is an ezcFeedEntryElement object |
| $enclosure = $item->add( 'enclosure' ); |
| $enclosure->url = 'http://example.com/media/episode_001.mp3'; |
| $enclosure->length = 49099054; // bytes |
| $enclosure->type = 'audio/x-mp3'; |
| ?> |
| |
| `RSS2`_ output:: |
| |
| <enclosure url="http://example.com/media/episode_001.mp3" |
| length="49099054" |
| type="audio/x-mp3"/> |
| |
| `ATOM`_ output:: |
| |
| <link href="http://example.com/media/episode_001.mp3" |
| rel="enclosure" |
| length="49099054" |
| type="audio/x-mp3"/> |
| |
| Parse example (`RSS2`_):: |
| |
| <?php |
| // $item is an ezcFeedEntryElement object |
| if ( isset( $item->enclosure ) ) |
| { |
| $enclosure = $item->enclosure[0]; |
| $url = isset( $enclosure->url ) ? $enclosure->url : null; |
| $length = isset( $enclosure->length ) ? $enclosure->length : null; |
| $type = isset( $enclosure->type ) ? $enclosure->type : null; |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-item-enclosure`_, ATOM-none (`ATOM-entry-link`_ for |
| similar functionality), RSS1-none, `RSS2-item-enclosure`_. |
| |
| |
| ezcFeed-item-id |
| ``````````````` |
| |
| Type: ezcFeedIdElement. |
| |
| A unique identifier in respect to other *id* values of entries in the feed. It |
| identifies the entry. |
| |
| Required for `ATOM`_ and `RSS1`_. Optional for `RSS2`_ (recommended). |
| |
| `RSS2`_ has the optional attribute *isPermLink*. This attribute is ignored for |
| `RSS1`_ and `ATOM`_. |
| |
| Can appear only once. |
| |
| Create example:: |
| |
| <?php |
| // $item is an ezcFeedEntryElement object |
| $item->id = 'ID value'; |
| $item->id->isPermLink = false; // RSS2 only, it will be ignored for RSS1 and ATOM |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $item is an ezcFeedEntryElement object |
| if ( isset( $item->id ) ) |
| { |
| $id = isset( $feed->id->id ) : $feed->id->id : null; |
| $isPermLink = isset( $feed->id->isPermLink ) ? $feed->id->isPermLink : null; // RSS2 only |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-item-id`_, `ATOM-entry-id`_, `RSS1-item-about`_, |
| `RSS2-item-guid`_. |
| |
| |
| ezcFeed-item-link |
| ````````````````` |
| |
| Type: array(ezcFeedLinkElement). |
| |
| A link to a resource related to the feed entry. |
| |
| Required. |
| |
| Multiple links can appear in `ATOM`_ (not recommended). Can appear only once |
| in `RSS1`_ and `RSS2`_ feeds. |
| |
| Enclosures of media files (used mainly for podcasts) can be added with this |
| element. In `RSS2`_ use `ezcFeed-item-enclosure`_. `RSS1`_ does not support |
| enclosures. |
| |
| `ATOM`_ has required attributes: *href*. Optional attributes: *rel* (possible |
| values: ``alternate`` (default), ``enclosure``, ``related``, ``self``, |
| ``via``), *type*, *hreflang*, *title*, *length*. |
| |
| A maximum of one link with ``rel="alternate"`` can appear per *type* and |
| *hreflang*. |
| |
| Recommended only one ``rel="enclosure"`` link to keep compatibility with |
| `RSS2`_ |RSS2-item-enclosure|_. |
| |
| These attributes are ignored for `RSS1`_ and `RSS2`_ feeds. |
| |
| Create example:: |
| |
| <?php |
| // $item is an ezcFeedEntryElement object |
| $link = $item->add( 'link' ); |
| $link->href = 'http://example.com'; |
| $link->rel = 'self'; // ATOM only |
| $link->type = 'text/html'; // ATOM only |
| $link->hreflang = 'en'; // ATOM only |
| $link->title = 'Link to the article'; // ATOM only |
| $link->length = '20:14'; // ATOM only |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| $links = array(); |
| |
| // $item is an ezcFeedEntryElement object |
| foreach ( $item->link as $link ) |
| { |
| $links[] = array( |
| 'href' => isset( $link->href ) ? $link->href : null, |
| 'rel' => isset( $link->rel ) ? $link->rel : null, // ATOM only |
| 'type' => isset( $link->type ) ? $link->type : null, // ATOM only |
| 'hreflang' => isset( $link->hreflang ) ? $link->hreflang : null, // ATOM only |
| 'title' => isset( $link->title ) ? $link->title : null, // ATOM only |
| 'length' => isset( $link->length ) ? $link->length : null, // ATOM only |
| ); |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-item-link`_/`ezcFeed-item-enclosure`_, |
| `ATOM-entry-link`_, `RSS1-item-link`_, `RSS2-item-link`_/ |
| `RSS2-item-enclosure`_. |
| |
| |
| ezcFeed-item-published |
| `````````````````````` |
| |
| Type: ezcFeedDateElement. |
| |
| The time the feed item was published. |
| |
| Optional (recommended). Only `ATOM`_ and `RSS2`_ feeds will have this |
| element after generating the feed. It will be ignored for `RSS1`_ feeds. |
| |
| Can appear only once. |
| |
| Can be assigned with an integer timestamp, a string date or a DateTime object. |
| |
| Create example:: |
| |
| <?php |
| // $item is an ezcFeedEntryElement object |
| $item->published = time(); |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $item is an ezcFeedEntryElement object |
| $published = isset( $item->published ) ? $item->published->date->format( 'c' ) : null; |
| ?> |
| |
| Equivalents: `ezcFeed-item-published`_, `ATOM-entry-published`_, RSS1-none, |
| `RSS2-item-pubDate`_. |
| |
| |
| ezcFeed-item-source |
| ``````````````````` |
| |
| Type: ezcFeedSourceElement. |
| |
| The source (another feed) of the feed item. |
| |
| Optional (not recommended). Only `ATOM`_ and `RSS2`_ feeds will have this |
| element after generating the feed. It will be ignored for `RSS1`_ feeds. |
| |
| For `ATOM`_ feeds, all `ATOM`_ feed-level elements can be added, minus the |
| |ezcFeed-item|_ element. `RSS2`_ feeds have the attributes *source* and *url*. |
| |
| Can appear only once. |
| |
| Create example:: |
| |
| <?php |
| // $item is an ezcFeedEntryElement object |
| $source = $item->add( 'source' ); |
| $source->source = 'Source feed name'; // RSS2 only, ignored for ATOM |
| $source->url = 'http://source.feed.url/'; // RSS2 only, ignored for ATOM |
| |
| $author = $source->add( 'author' ); // ATOM only, ignored for RSS2 |
| $author->name = 'Author of the source feed'; |
| $author->email = 'Email address of the author of the source feed'; |
| |
| // more elements which pertain to ATOM feeds can be added |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $item is an ezcFeedSourceElement object |
| if ( isset( $item->source ) ) |
| { |
| $source = $item->source; |
| |
| $rss2SourceName = isset( $source->source ) ? $source->source : null; |
| $rss2SourceUrl = isset( $source->url ) ? $source->url : null; |
| |
| $atomSourceTitle = isset( $source->title ) ? $source->title->__toString() : null; |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-item-source`_, `ATOM-entry-source`_, RSS1-none, |
| `RSS2-item-source`_. |
| |
| |
| ezcFeed-item-title |
| `````````````````` |
| |
| Type: ezcFeedTextElement. |
| |
| Human readable title for the feed item. |
| |
| Required. |
| |
| Can appear only once. |
| |
| `ATOM`_ has an optional attribute *type* with possible values ``text`` |
| (default), ``html``, ``xhtml``. This attribute will be ignored for `RSS1`_ and |
| `RSS2`_ feeds. |
| |
| `ATOM`_ has an optional attribute *xml:lang* which specifies the language of |
| the text. A list of allowed languages can be found here: |
| `RSS language codes`_. This attribute is accessed through ezcFeed as |
| *language*. This attribute will be ignored for `RSS1`_ and `RSS2`_ feeds. |
| |
| Create example:: |
| |
| <?php |
| // $item is an ezcFeedEntryElement object |
| $item->title = 'Feed title'; |
| $item->title->type = 'text'; // ATOM only, ignored in RSS1 and RSS2 |
| $item->title->language = 'de'; // ATOM only, ignored in RSS1 and RSS2 |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $item is an ezcFeedEntryElement object |
| if ( isset( $item->title ) ) |
| { |
| $titleElement = $item->title; |
| $title = $titleElement->text; |
| $type = isset( $titleElement->type ) ? $titleElement->type : null; // ATOM only |
| $language = isset( $titleElement->language ) ? $titleElement->language : null; // ATOM only |
| } |
| ?> |
| |
| Equivalents: `ezcFeed-item-title`_, `ATOM-entry-title`_, `RSS1-item-title`_, |
| `RSS2-item-title`_. |
| |
| |
| ezcFeed-item-updated |
| ```````````````````` |
| |
| Type: ezcFeedDateElement. |
| |
| The last time the feed entry was updated. |
| |
| Required. Only `ATOM`_ feeds will have this element after generating the |
| feed. It will be ignored for `RSS1`_ and `RSS2`_ feeds. |
| |
| Can appear only once. |
| |
| Can be assigned with an integer timestamp, a string date or a DateTime object. |
| |
| Create example:: |
| |
| <?php |
| // $item is an ezcFeedEntryElement object |
| $item->updated = 'Tue, 10 Jun 2003 04:00:00 GMT'; |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $item is an ezcFeedEntryElement object |
| $updated = isset( $item->updated ) ? $item->updated->date->format( 'c' ) : null; |
| ?> |
| |
| Equivalents: `ezcFeed-item-updated`_, `ATOM-entry-updated`_, RSS1-none, |
| RSS2-none. |
| |
| |
| ========== |
| Feed types |
| ========== |
| |
| ATOM |
| ==== |
| |
| Specifications |
| -------------- |
| |
| `RFC 4287`_ |
| |
| |
| Content type |
| ------------ |
| |
| All ATOM feeds should be identified with the ``application/atom+xml`` content |
| type. |
| |
| |
| Structure |
| --------- |
| |
| General information: |
| - All elements must be in the http://www.w3.org/2005/Atom namespace |
| - The top level element is called *feed* |
| - All timestamps must conform to `RFC 3339`_ (eg. ``2003-12-13T18:30:02Z``) |
| - Unless otherwise specified, all values must be plain text |
| - *xml:lang* may be used to identify the language of text (the property |
| *language* for the ATOM elements |ATOM-rights|_, |ATOM-subtitle|_, |
| |ATOM-title|_, |ATOM-entry-content|_, |ATOM-entry-rights|_, |
| |ATOM-entry-summary|_, |ATOM-entry-title|_). |
| - *xml:base* may be used to control how relative URIs are resolved (not |
| recommended) |
| |
| Sample ATOM feed: |
| |
| .. include:: tutorial/atom_example.xml |
| :literal: |
| |
| |
| Feed elements |
| ------------- |
| |
| ATOM-author |
| ``````````` |
| |
| One author of the feed. |
| |
| Required: one author must be present unless all items contain at least one |
| author. |
| |
| Multiple authors can appear. |
| |
| Required elements: *name*. Optional elements: *uri*, *email*. |
| |
| Example:: |
| |
| <author> |
| <name>John Doe</name> |
| <uri>http://example.com/~johndoe</uri> |
| <email>JohnDoe@example.com</email> |
| </author> |
| |
| Equivalents: `ezcFeed-author`_, `ATOM-author`_, RSS1-none, |
| `RSS2-managingEditor`_. |
| |
| |
| ATOM-category |
| ````````````` |
| |
| A category for the feed. |
| |
| Optional. |
| |
| Multiple categories can appear. |
| |
| Has one required attribute: *term*. Has 2 optional attributes: *scheme*, |
| *label*. |
| |
| Equivalents: `ezcFeed-category`_, `ATOM-category`_, RSS1-none, |
| `RSS2-category`_. |
| |
| |
| ATOM-contributor |
| ```````````````` |
| |
| One contributor of the feed. |
| |
| Optional (not recommended). |
| |
| Multiple contributors can appear. |
| |
| Required elements: *name*. Optional elements: *uri*, *email*. |
| |
| Example:: |
| |
| <contributor> |
| <name>John Doe</name> |
| <uri>http://example.com/~johndoe</uri> |
| <email>JohnDoe@example.com</email> |
| </contributor> |
| |
| Equivalents: `ezcFeed-contributor`_, `ATOM-contributor`_, RSS1-none, |
| RSS2-none. |
| |
| |
| ATOM-entry |
| `````````` |
| |
| Feed entry. |
| |
| Optional (recommended). |
| |
| Multiple entries can appear. |
| |
| Equivalents: `ezcFeed-item`_, `ATOM-entry`_, `RSS1-item`_, `RSS2-item`_. |
| |
| |
| ATOM-generator |
| `````````````` |
| |
| Indicates the software used to generate the feed. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| Has 2 optional attributes: *url*, *version*. |
| |
| Equivalents: `ezcFeed-generator`_, `ATOM-generator`_, RSS1-none, |
| `RSS2-generator`_. |
| |
| |
| ATOM-icon |
| ````````` |
| |
| An icon for a feed, similar with ``favicon.ico`` for websites. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-icon`_, `ATOM-icon`_, RSS1-none, RSS2-none. |
| |
| |
| ATOM-id |
| ``````` |
| |
| A universally unique and permanent URI for a feed. For example, it can be an |
| Internet domain name. |
| |
| Required. |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-id`_, `ATOM-id`_, `RSS1-about`_, `RSS2-id`_. |
| |
| |
| ATOM-link |
| ````````` |
| |
| An URL to the HTML website corresponding to the feed. |
| |
| Required: a link back to the feed itself must be present (with ``rel="self"``). |
| |
| Multiple links can appear. |
| |
| Required attributes: *href*. Optional attributes: *rel* (possible values: |
| ``alternate`` (default), ``enclosure``, ``related``, ``self``, ``via``), |
| *type*, *hreflang*, *title*, *length*. |
| |
| A maximum of one link with ``rel="alternate"`` can appear per *type* and |
| *hreflang*. |
| |
| Equivalents: `ezcFeed-link`_, `ATOM-link`_, `RSS1-link`_, `RSS2-link`_. |
| |
| |
| ATOM-logo |
| ````````` |
| |
| An image associated with the feed. The value is an URL to an image. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-image`_, `ATOM-logo`_, `RSS1-image`_, `RSS2-image`_. |
| |
| |
| ATOM-rights |
| ``````````` |
| |
| Copyright information for the feed. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| Has an optional attribute *type* with possible values ``text`` (default), |
| ``html``, ``xhtml``. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. |
| |
| Equivalents: `ezcFeed-copyright`_, `ATOM-rights`_, RSS1-none, |
| `RSS2-copyright`_. |
| |
| |
| ATOM-subtitle |
| ````````````` |
| |
| A short description of the feed. |
| |
| Optional (recommended). |
| |
| Can appear only once. |
| |
| Has an optional attribute *type* with possible values ``text`` (default), |
| ``html``, ``xhtml``. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. |
| |
| Equivalents: `ezcFeed-description`_, `ATOM-subtitle`_, `RSS1-description`_, |
| `RSS2-description`_. |
| |
| |
| ATOM-title |
| `````````` |
| |
| Human readable title for the feed. For example, it can be the same as the |
| website title. |
| |
| Required. |
| |
| Can appear only once. |
| |
| Has an optional attribute *type* with possible values ``text`` (default), |
| ``html``, ``xhtml``. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. |
| |
| Equivalents: `ezcFeed-title`_, `ATOM-title`_, `RSS1-title`_, `RSS2-title`_. |
| |
| |
| ATOM-updated |
| ```````````` |
| |
| The last time the feed was updated. |
| |
| Required. |
| |
| Can appear only once. |
| |
| Must conform to `RFC 3339`_ (eg. ``2003-12-13T18:30:02Z``). |
| |
| Equivalents: `ezcFeed-updated`_, `ATOM-updated`_, RSS1-none, `RSS2-lastBuildDate`_. |
| |
| |
| Item elements |
| ------------- |
| |
| ATOM-entry-author |
| ````````````````` |
| |
| One author of the feed entry. |
| |
| Required: one author must be present in each entry in case the feed does not |
| contain an author. |
| |
| Multiple authors can appear. |
| |
| Required elements: *name*. Optional elements: *uri*, *email*. |
| |
| Example:: |
| |
| <author> |
| <name>John Doe</name> |
| <uri>http://example.com/~johndoe</uri> |
| <email>JohnDoe@example.com</email> |
| </author> |
| |
| Equivalents: `ezcFeed-item-author`_, `ATOM-entry-author`_, RSS1-none, |
| `RSS2-item-author`_. |
| |
| |
| ATOM-entry-category |
| ``````````````````` |
| |
| A category for the feed entry. |
| |
| Optional. |
| |
| Multiple categories can appear. |
| |
| Has one required attribute: *term*. Has 2 optional attributes: *scheme*, |
| *label*. |
| |
| Equivalents: `ezcFeed-item-category`_, `ATOM-entry-category`_, RSS1-none, |
| `RSS2-item-category`_. |
| |
| |
| ATOM-entry-content |
| `````````````````` |
| |
| A short description for the feed item. |
| |
| Optional (not recommended). It is required if |ATOM-entry-summary|_ is |
| absent). Can be substituted with |ATOM-entry-summary|_ (recommended). |
| |
| Can appear only once. |
| |
| Has an optional attribute *type* with possible values ``text`` (default), |
| ``html``, ``xhtml``, or other mime values, depending on the data it contains. |
| |
| Has an optional attribute *src* which specifies the URI where the full content |
| is located. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: |
| `RSS language codes`_. |
| |
| If *src* is present, the *type* attribute, if present, is the media type of the |
| content. |
| |
| Otherwise, if the type attribute ends in ``+xml`` or ``/xml``, then an XML |
| document of this type is contained inline. |
| |
| Otherwise, if the type attribute starts with ``text``, then an escaped document |
| of this type is contained inline. |
| |
| Otherwise, a base64 encoded document of the indicated media type is contained |
| inline. |
| |
| Equivalents: `ezcFeed-item-description`_, `ATOM-entry-summary`_/ |
| `ATOM-entry-content`_, `RSS1-item-description`_, `RSS2-item-description`_. |
| |
| |
| ATOM-entry-contributor |
| `````````````````````` |
| |
| One contributor of the feed entry. |
| |
| Optional (not recommended). |
| |
| Multiple contributors can appear. |
| |
| Required elements: *name*. Optional elements: *uri*, *email*. |
| |
| Example:: |
| |
| <contributor> |
| <name>John Doe</name> |
| <uri>http://example.com/~johndoe</uri> |
| <email>JohnDoe@example.com</email> |
| </contributor> |
| |
| Equivalents: `ezcFeed-item-contributor`_, `ATOM-entry-contributor`_, |
| RSS1-none, RSS2-none. |
| |
| |
| ATOM-entry-id |
| ````````````` |
| |
| A unique identifier in respect to other *id* values of entries in the feed. It |
| identifies the entry. |
| |
| Required. |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-item-id`_, `ATOM-entry-id`_, `RSS1-item-about`_, |
| `RSS2-item-guid`_. |
| |
| |
| ATOM-entry-link |
| ``````````````` |
| |
| A link to a resource related to the feed entry. |
| |
| Required. |
| |
| Multiple links can appear. |
| |
| Required attributes: *href*. Optional attributes: *rel* (possible values: |
| ``alternate`` (default), ``enclosure``, ``related``, ``self``, ``via``), |
| *type*, *hreflang*, *title*, *length*. |
| |
| A maximum of one link with ``rel="alternate"`` can appear per *type* and |
| *hreflang*. |
| |
| Recommended only one ``rel="enclosure"`` link to keep compatibility with RSS2 |
| |RSS2-item-enclosure|_. |
| |
| Equivalents: `ezcFeed-item-link`_/`ezcFeed-item-enclosure`_, |
| `ATOM-entry-link`_, `RSS1-item-link`_, `RSS2-item-link`_/ |
| `RSS2-item-enclosure`_. |
| |
| |
| ATOM-entry-published |
| ```````````````````` |
| |
| The time the feed item was published. |
| |
| Optional (recommended). |
| |
| Can appear only once. |
| |
| Must conform to `RFC 3339`_ (eg. ``2003-12-13T18:30:02Z``). |
| |
| Equivalents: `ezcFeed-item-published`_, `ATOM-entry-published`_, RSS1-none, |
| `RSS2-item-pubDate`_. |
| |
| |
| ATOM-entry-rights |
| ````````````````` |
| |
| Copyright information for the feed entry. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| Has an optional attribute *type* with possible values ``text`` (default), |
| ``html``, ``xhtml``. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. |
| |
| Equivalents: `ezcFeed-item-copyright`_, `ATOM-entry-rights`_, RSS1-none, |
| RSS2-none (`RSS2-copyright`_ for the whole feed). |
| |
| |
| ATOM-entry-summary |
| `````````````````` |
| |
| A short description for the feed item. |
| |
| Required. Can be substituted with |ATOM-entry-content|_ (not recommended). |
| |
| Can appear only once. |
| |
| Has an optional attribute *type* with possible values ``text`` (default), |
| ``html``, ``xhtml``. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. |
| |
| Equivalents: `ezcFeed-item-description`_, `ATOM-entry-summary`_/ |
| `ATOM-entry-content`_, `RSS1-item-description`_, `RSS2-item-description`_. |
| |
| |
| ATOM-entry-source |
| ````````````````` |
| |
| The source feed of the feed item. |
| |
| Optional (not recommended). |
| |
| Can appear only once. |
| |
| Can have the same elements which are present at feed-level in ATOM, minus the |
| |ATOM-entry|_ element: |
| |
| - |ATOM-author|_ |
| - |ATOM-category|_ |
| - |ATOM-contributor|_ |
| - |ATOM-rights|_ |
| - |ATOM-subtitle|_ |
| - |ATOM-generator|_ |
| - |ATOM-icon|_ |
| - |ATOM-id|_ |
| - |ATOM-logo|_ |
| - |ATOM-link|_ |
| - |ATOM-title|_ |
| - |ATOM-updated|_ |
| |
| Equivalents: `ezcFeed-item-source`_, `ATOM-entry-source`_, RSS1-none, |
| `RSS2-item-source`_. |
| |
| |
| ATOM-entry-title |
| ```````````````` |
| |
| A title for the feed item. |
| |
| Required. |
| |
| Can appear only once. |
| |
| Has an optional attribute *type* with possible values ``text`` (default), |
| ``html``, ``xhtml``. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. |
| |
| Equivalents: `ezcFeed-item-title`_, `ATOM-entry-title`_, `RSS1-item-title`_, |
| `RSS2-item-title`_. |
| |
| |
| ATOM-entry-updated |
| `````````````````` |
| |
| The last time the feed entry was updated. |
| |
| Required. |
| |
| Can appear only once. |
| |
| Must conform to `RFC 3339`_ (eg. ``2003-12-13T18:30:02Z``). |
| |
| Equivalents: `ezcFeed-item-updated`_, `ATOM-entry-updated`_, RSS1-none, |
| RSS2-none. |
| |
| |
| RSS1 |
| ==== |
| |
| Specifications |
| -------------- |
| |
| RSS1 = RDF Site Summary |
| RDF = Resource Description Framework |
| |
| `RSS1 specifications`_ |
| |
| |
| Content type |
| ------------ |
| |
| All RSS1 feeds should be identified with the ``application/rss+xml`` content |
| type (not a standard yet). |
| |
| |
| Structure |
| --------- |
| |
| Sample RSS1 feed: |
| |
| .. include:: tutorial/rss1_example.xml |
| :literal: |
| |
| |
| Feed elements |
| ------------- |
| |
| RSS1-about |
| `````````` |
| |
| A universally unique and permanent URI for a feed. For example, it can be an |
| Internet domain name. |
| |
| Required. |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-id`_, `ATOM-id`_, `RSS1-about`_, `RSS2-id`_. |
| |
| |
| RSS1-description |
| ```````````````` |
| |
| A short description of the feed. |
| |
| Required. |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-description`_, `ATOM-subtitle`_, `RSS1-description`_, |
| `RSS2-description`_. |
| |
| |
| RSS1-image |
| `````````` |
| |
| An image associated with the feed. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| Has the required attribute *about*, which should have the same value as the |
| *url* sub-element. |
| |
| Has 3 required sub-elements: *title*, *link*, *url*. |
| |
| Equivalents: `ezcFeed-image`_, `ATOM-logo`_, `RSS1-image`_, `RSS2-image`_. |
| |
| |
| RSS1-item |
| ````````` |
| |
| A feed entry. |
| |
| Required. |
| |
| Multiple entries can appear. |
| |
| Equivalents: `ezcFeed-item`_, `ATOM-entry`_, `RSS1-item`_, `RSS2-item`_. |
| |
| |
| RSS1-link |
| ````````` |
| |
| The URL to the HTML website corresponding to the feed. |
| |
| Required. |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-link`_, `ATOM-link`_, `RSS1-link`_, `RSS2-link`_. |
| |
| |
| RSS1-textinput |
| `````````````` |
| |
| Specifies a text input box that can be displayed with the feed. |
| |
| Optional (not recommended). |
| |
| Can appear only once. |
| |
| Has the required attribute *about*, which should have the same value as the |
| *link* sub-element. |
| |
| Has four required sub-elements: *title*, *description*, *name*, *link*. |
| |
| Equivalents: `ezcFeed-textInput`_, ATOM-none, `RSS1-textinput`_, |
| `RSS2-textInput`_. |
| |
| |
| RSS1-title |
| `````````` |
| |
| Human readable title for the feed. For example, it can be the same as the |
| website title. |
| |
| Required. |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-title`_, `ATOM-title`_, `RSS1-title`_, `RSS2-title`_. |
| |
| |
| Item elements |
| ------------- |
| |
| RSS1-item-about |
| ``````````````` |
| |
| A unique identifier in respect to other *about* values in the feed. It |
| identifies the item. Should be identical to the *link* value of the item, if |
| possible. |
| |
| Required. |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-item-id`_, `ATOM-entry-id`_, `RSS1-item-about`_, |
| `RSS2-item-guid`_. |
| |
| |
| RSS1-item-description |
| ````````````````````` |
| |
| A short description of the feed item. |
| |
| Required. |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-item-description`_, `ATOM-entry-summary`_, |
| `RSS1-item-description`_, `RSS2-item-description`_. |
| |
| |
| RSS1-item-link |
| `````````````` |
| |
| The URL to the HTML website corresponding to the feed item. |
| |
| Required. |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-item-link`_, `ATOM-entry-link`_, `RSS1-item-link`_, |
| `RSS2-item-link`_. |
| |
| |
| RSS1-item-title |
| ``````````````` |
| |
| A title for the feed item. |
| |
| Required. |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-item-title`_, `ATOM-entry-title`_, `RSS1-item-title`_, |
| `RSS2-item-title`_. |
| |
| |
| RSS2 |
| ==== |
| |
| Specifications |
| -------------- |
| |
| RSS2 = Really Simple Syndication |
| |
| `RSS2 specifications`_ |
| |
| |
| Content type |
| ------------ |
| |
| All RSS2 feeds should be identified with the ``application/rss+xml`` content |
| type (not a standard yet). |
| |
| |
| Structure |
| --------- |
| |
| Sample RSS2 feed: |
| |
| .. include:: tutorial/rss2_example.xml |
| :literal: |
| |
| |
| Feed elements |
| ------------- |
| |
| RSS2-category |
| ````````````` |
| |
| A category for the feed. |
| |
| Optional. |
| |
| Multiple categories can appear. |
| |
| Has one optional attribute: *domain*. |
| |
| The value of the category element must be specified. |
| |
| Equivalents: `ezcFeed-category`_, `ATOM-category`_, RSS1-none, |
| `RSS2-category`_. |
| |
| |
| RSS2-cloud |
| `````````` |
| |
| Allows processes to register with a cloud to be notified of updates to the |
| channel, implementing a lightweight publish-subscribe protocol for RSS feeds. |
| |
| Optional (not recommended). |
| |
| Can appear only once. |
| |
| Has the required attributes: *domain*, *port*, *path*, *registerProcedure*, |
| *protocol*. |
| |
| Example:: |
| |
| <cloud domain="rpc.sys.com" port="80" path="/RPC2" registerProcedure="myCloud.rssPleaseNotify" protocol="xml-rpc" /> |
| |
| Equivalents: `ezcFeed-cloud`_, ATOM-none, RSS1-none, `RSS2-cloud`_. |
| |
| |
| RSS2-copyright |
| `````````````` |
| |
| Copyright information for the feed. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-copyright`_, `ATOM-rights`_, RSS1-none, |
| `RSS2-copyright`_. |
| |
| |
| RSS2-description |
| ```````````````` |
| |
| A short description of the feed. |
| |
| Required. |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-description`_, `ATOM-subtitle`_, `RSS1-description`_, |
| `RSS2-description`_. |
| |
| |
| RSS2-docs |
| ````````` |
| |
| An URL that points to the documentation for the format used in the RSS file. It |
| is usually http://www.rssboard.org/rss-specification. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-docs`_, ATOM-none, RSS1-none, `RSS2-docs`_. |
| |
| |
| RSS2-generator |
| `````````````` |
| |
| Indicates the software used to generate the feed. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-generator`_, `ATOM-generator`_, RSS1-none, |
| `RSS2-generator`_. |
| |
| |
| RSS2-id |
| ``````` |
| |
| Most `feed validator`_ applications will recommend to include in an RSS2 feed |
| a link to the location of the feed. For example, if the XML document |
| containing the RSS2 feed is located at 'http://example.com/rss/', then this |
| URL should be contained in the feed itself in an *atom:link* element, since |
| RSS2 does not offer a mechanism to specify self-links. |
| |
| Use the `ezcFeed-id`_ to specify this self-link:: |
| |
| $feed->id = 'http://example.com/rss/'; |
| |
| This will be rendered in XML as:: |
| |
| <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> |
| ... |
| <atom:link href="http://example.com/" rel="self" type="application/rss+xml"/> |
| |
| Optional (although recommended because `ezcFeed-id`_ is recommended). The |
| *id* feed element does not appear in the `RSS2 specifications`_, but it is |
| added to comply with `feed validator`_ recommendations and it is rendered as |
| an `ATOM`_ element as discussed above. |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-id`_, `ATOM-id`_, `RSS1-about`_, `RSS2-id`_. |
| |
| |
| RSS2-image |
| `````````` |
| |
| An image associated with the feed. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| Has 3 required sub-elements: *title*, *link*, *url*. |
| |
| Has 3 optional sub-elements: *width*, *height*, *description*. |
| |
| Equivalents: `ezcFeed-image`_, `ATOM-logo`_, `RSS1-image`_, `RSS2-image`_. |
| |
| |
| RSS2-item |
| ````````` |
| |
| Feed entry. |
| |
| Required. |
| |
| Multiple entries can appear. |
| |
| Equivalents: `ezcFeed-item`_, `ATOM-entry`_, `RSS1-item`_, `RSS2-item`_. |
| |
| |
| RSS2-language |
| ````````````` |
| |
| The language for the feed. |
| |
| Optional (recommended). |
| |
| Can appear only once. |
| |
| A list of allowed languages can be found here: `RSS language codes`_. |
| |
| Equivalents: `ezcFeed-language`_, ATOM-*xml:lang* for each element, RSS1-none, |
| `RSS2-language`_. |
| |
| |
| RSS2-lastBuildDate |
| `````````````````` |
| |
| The last time the feed was updated. |
| |
| Optional (recommended). |
| |
| Can appear only once. |
| |
| Must conform to `RFC 822`_ (eg. ``Sat, 07 Sep 2002 09:42:31 GMT``). |
| |
| Equivalents: `ezcFeed-updated`_, `ATOM-updated`_, RSS1-none, |
| `RSS2-lastBuildDate`_. |
| |
| |
| RSS2-link |
| ````````` |
| |
| The URL to the HTML website corresponding to the feed. |
| |
| Required. |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-link`_, `ATOM-link`_, `RSS1-link`_, `RSS2-link`_. |
| |
| |
| RSS2-managingEditor |
| ``````````````````` |
| |
| One author of the feed. |
| |
| Optional (recommended). |
| |
| Can appear only once. |
| |
| It is a good practice to include the name and email of the managing editor, |
| for example ``john.doe@example.com (John Doe)``. |
| |
| Equivalents: `ezcFeed-author`_, `ATOM-author`_, RSS1-none, |
| `RSS2-managingEditor`_. |
| |
| |
| RSS2-pubDate |
| ```````````` |
| |
| The time the feed was published. |
| |
| Optional (not recommended). |
| |
| Can appear only once. |
| |
| Must conform to `RFC 822`_ (eg. ``Sat, 07 Sep 2002 09:42:31 GMT``). |
| |
| Equivalents: `ezcFeed-published`_, ATOM-none, RSS1-none, `RSS2-pubDate`_. |
| |
| |
| RSS2-rating |
| ``````````` |
| |
| The `PICS`_ rating for the channel. |
| |
| Optional (not recommended). |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-rating`_, ATOM-none, RSS1-none, `RSS2-rating`_. |
| |
| |
| RSS2-skipDays |
| ````````````` |
| |
| A hint for aggregators telling them which days they can skip when reading the |
| feed. |
| |
| Optional (not recommended). |
| |
| Can appear only once. |
| |
| Can have up to 7 *day* elements, each with a value from ``Monday`` to ``Sunday``. |
| |
| Equivalents: `ezcFeed-skipDays`_, ATOM-none, RSS1-none, `RSS2-skipDays`_. |
| |
| |
| RSS2-skipHours |
| `````````````` |
| |
| A hint for aggregators telling them which hours they can skip when reading the |
| feed. |
| |
| Optional (not recommended). |
| |
| Can appear only once. |
| |
| Can have up to 24 *hour* elements, each with an integer value from ``0`` |
| (midnight) to ``23``. The value ``24`` can also be used for midnight. |
| |
| Equivalents: `ezcFeed-skipHours`_, ATOM-none, RSS1-none, `RSS2-skipHours`_. |
| |
| |
| RSS2-textInput |
| `````````````` |
| |
| Specifies a text input box that can be displayed with the feed. |
| |
| Optional (not recommended). |
| |
| Can appear only once. |
| |
| Has four required sub-elements: *title*, *description*, *name*, *link*. |
| |
| Equivalents: `ezcFeed-textInput`_, ATOM-none, `RSS1-textinput`_, |
| `RSS2-textInput`_. |
| |
| |
| RSS2-title |
| `````````` |
| |
| Human readable title for the feed. For example, it can be the same as the |
| website title. |
| |
| Required. |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-title`_, `ATOM-title`_, `RSS1-title`_, `RSS2-title`_. |
| |
| |
| RSS2-ttl |
| ```````` |
| |
| Number of minutes that indicates how long a channel can be cached before |
| refreshing from the source. |
| |
| Optional (not recommended). |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-ttl`_, ATOM-none, RSS1-none, `RSS2-ttl`_. |
| |
| |
| RSS2-webMaster |
| `````````````` |
| |
| The email address of the webmaster responsible for the feed. |
| |
| Optional (not recommended). |
| |
| Can appear only once. |
| |
| It is a good practice to include the name and email of the webmaster, |
| for example ``john.doe@example.com (John Doe)</webMaster>``. |
| |
| Equivalents: `ezcFeed-webMaster`_, ATOM-none, RSS1-none, `RSS2-webMaster`_. |
| |
| |
| Item elements |
| ------------- |
| |
| RSS2-item-author |
| ```````````````` |
| |
| The email address of the person who created the feed item. |
| |
| Optional (recommended). |
| |
| Can appear only once. |
| |
| It is a good practice to include the name and email of the author, for |
| example ``john.doe@example.com (John Doe)</author>``. |
| |
| Equivalents: `ezcFeed-item-author`_, `ATOM-entry-author`_, RSS1-none, |
| `RSS2-item-author`_. |
| |
| |
| RSS2-item-category |
| `````````````````` |
| |
| A category for the feed. |
| |
| Optional. |
| |
| Multiple categories can appear. |
| |
| Has one optional attribute: *domain*. |
| |
| The value of the category element must be specified. |
| |
| Equivalents: `ezcFeed-item-category`_, `ATOM-entry-category`_, RSS1-none, |
| `RSS2-item-category`_. |
| |
| |
| RSS2-item-comments |
| `````````````````` |
| |
| A link to a webpage for comments. |
| |
| Optional (not recommended). |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-item-comments`_, ATOM-none, RSS1-none, |
| `RSS2-item-comments`_. |
| |
| |
| RSS2-item-description |
| ````````````````````` |
| |
| A short description of the feed item. |
| |
| Required. |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-item-description`_, `ATOM-entry-summary`_, |
| `RSS1-item-description`_, `RSS2-item-description`_. |
| |
| |
| RSS2-item-enclosure |
| ``````````````````` |
| |
| A link to a multimedia file attached to the feed item. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| Has 3 required attributes: *url*, *length*, *type*. |
| |
| Equivalents: `ezcFeed-item-enclosure`_, ATOM-none (`ATOM-entry-link`_ for |
| similar functionality), RSS1-none, `RSS2-item-enclosure`_. |
| |
| |
| RSS2-item-guid |
| `````````````` |
| |
| A unique identifier in respect to other *guid* values of items in the feed. It |
| identifies the item. |
| |
| Optional (recommended). |
| |
| Can appear only once. |
| |
| Has an optional attribute *isPermaLink* with possible values ``true`` or |
| ``false`` (default), which specifies if the *guid* value is an URL. |
| |
| Equivalents: `ezcFeed-item-id`_, `ATOM-entry-id`_, `RSS1-item-about`_, |
| `RSS2-item-guid`_. |
| |
| |
| RSS2-item-link |
| `````````````` |
| |
| The URL to the HTML website corresponding to the feed item. |
| |
| Required. |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-item-link`_, `ATOM-entry-link`_, `RSS1-item-link`_, |
| `RSS2-item-link`_. |
| |
| |
| RSS2-item-pubDate |
| ````````````````` |
| |
| The time the feed item was published. |
| |
| Optional (recommended). |
| |
| Can appear only once. |
| |
| Must conform to `RFC 822`_ (eg. ``Sat, 07 Sep 2002 09:42:31 GMT``). |
| |
| Equivalents: `ezcFeed-item-published`_, `ATOM-entry-published`_, RSS1-none, |
| `RSS2-item-pubDate`_. |
| |
| |
| RSS2-item-source |
| ```````````````` |
| |
| The source feed of the feed item. |
| |
| Optional (not recommended). |
| |
| Can appear only once. |
| |
| Has 2 optional attributes: *source*, *url*. |
| |
| Equivalents: `ezcFeed-item-source`_, `ATOM-entry-source`_, RSS1-none, |
| `RSS2-item-source`_. |
| |
| |
| RSS2-item-title |
| ``````````````` |
| |
| A title for the feed item. |
| |
| Required. |
| |
| Can appear only once. |
| |
| Equivalents: `ezcFeed-item-title`_, `ATOM-entry-title`_, `RSS1-item-title`_, |
| `RSS2-item-title`_. |
| |
| |
| ======= |
| Modules |
| ======= |
| |
| Content |
| ======= |
| |
| Specifications |
| -------------- |
| |
| `Content specifications`_ |
| |
| |
| Feed elements |
| ------------- |
| |
| |
| Item elements |
| ------------- |
| |
| Content-item-encoded |
| ```````````````````` |
| |
| Type: ezcFeedContentElement. |
| |
| HTML-encoded text. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| Create example:: |
| |
| <?php |
| // use eZ Components autoload mechanism |
| require_once 'tutorial_autoload.php'; |
| |
| $feed = new ezcFeed( 'rss2' ); |
| $item = $feed->add( 'item' ); |
| $module = $item->addModule( 'Content' ); |
| $module->encoded = 'text content'; |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $item is a feed item (ezcFeedEntryElement) |
| $text = $item->Content->encoded->__toString(); |
| ?> |
| |
| |
| CreativeCommons |
| =============== |
| |
| Specifications |
| -------------- |
| |
| `CreativeCommons specifications`_ |
| |
| |
| Feed elements |
| ------------- |
| |
| CreativeCommons-license |
| ``````````````````````` |
| |
| Type: ezcFeedTextElement. |
| |
| An URL to a license description. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| A list of possible licenses are found on the `CreativeCommons licenses`_ page, |
| but other licenses can be used as well. |
| |
| Create example:: |
| |
| <?php |
| // use eZ Components autoload mechanism |
| require_once 'tutorial_autoload.php'; |
| |
| $feed = new ezcFeed( 'rss2' ); |
| $module = $feed->addModule( 'CreativeCommons' ); |
| $module->license = 'text content'; |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $item is a feed object (ezcFeed) |
| $text = $feed->CreativeCommons->license->__toString(); |
| ?> |
| |
| |
| Item elements |
| ------------- |
| |
| CreativeCommons-item-license |
| ```````````````````````````` |
| |
| Type: ezcFeedTextElement. |
| |
| An URL to a license description. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| A list of possible licenses are found on the `CreativeCommons licenses`_ page, |
| but other licenses can be used as well. |
| |
| Create example:: |
| |
| <?php |
| // use eZ Components autoload mechanism |
| require_once 'tutorial_autoload.php'; |
| |
| $feed = new ezcFeed( 'rss2' ); |
| $item = $feed->add( 'item' ); |
| $module = $item->addModule( 'CreativeCommons' ); |
| $module->license = 'text content'; |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $item is a feed item (ezcFeedEntryElement) |
| $text = $item->CreativeCommons->license->__toString(); |
| ?> |
| |
| |
| DublinCore |
| ========== |
| |
| Specifications |
| -------------- |
| |
| `DublinCore specifications`_ |
| |
| |
| Feed elements |
| ------------- |
| |
| DublinCore-contributor |
| `````````````````````` |
| |
| Type: array(ezcFeedPersonElement). |
| |
| An entity responsible for making contributions to the resource. Usually the |
| name of a person, organization or service. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| Create example:: |
| |
| <?php |
| // use eZ Components autoload mechanism |
| require_once 'tutorial_autoload.php'; |
| |
| $feed = new ezcFeed( 'rss2' ); |
| $module = $feed->addModule( 'DublinCore' ); |
| $element = $module->add( 'contributor' ); |
| $element->name = 'Contributor name'; |
| $element->language = 'no'; // optional language specification |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| foreach ( $feed->DublinCore->contributor as $element ) |
| { |
| echo $element->name; |
| echo $element->language; |
| } |
| ?> |
| |
| |
| DublinCore-coverage |
| ``````````````````` |
| |
| Type: array(ezcFeedTextElement). |
| |
| The spatial or temporal topic of the resource, the spatial applicability of |
| the resource, or the jurisdiction under which the resource is relevant. A |
| recommended practice is to use a controlled vocabulary such as `TGN`_. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-creator |
| `````````````````` |
| |
| Type: array(ezcFeedPersonElement). |
| |
| An entity responsible for making the resource. Usually the name of a person or |
| organization. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-date |
| ``````````````` |
| |
| Type: array(ezcFeedDateElement). |
| |
| A point or period of time associated with an event in the lifecycle of the |
| resource. Usual date format is `ISO 8601`_. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-description |
| `````````````````````` |
| |
| Type: array(ezcFeedTextElement). |
| |
| A description of the resource. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-format |
| ````````````````` |
| |
| Type: array(ezcFeedTextElement). |
| |
| The file format, physical medium, or dimensions of the resource. Recommended |
| best practices is to use a controlled vocabulary such as the list of |
| `Internet Media Types`_ (MIME). |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-identifier |
| ````````````````````` |
| |
| Type: array(ezcFeedIdElement). |
| |
| An unambiguous reference to the resource within a given context. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-language |
| ``````````````````` |
| |
| Type: array(ezcFeedTextElement). |
| |
| A language of the resource. Recommended best practice is to use a controlled |
| vocabulary such as `RFC 4646`_. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-publisher |
| ```````````````````` |
| |
| Type: array(ezcFeedPersonElement). |
| |
| An entity responsible for making the resource available. Usually the name of a |
| person, organization or service. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore--relation |
| ```````````````````` |
| |
| Type: array(ezcFeedTextElement). |
| |
| A related resource. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-rights |
| ````````````````` |
| |
| Type: array(ezcFeedTextElement). |
| |
| Information about rights held in and over the resource. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-source |
| ````````````````` |
| |
| Type: array(ezcFeedSourceElement). |
| |
| A related resource from which the described resource is derived. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-subject |
| `````````````````` |
| |
| Type: array(ezcFeedTextElement). |
| |
| The topic of the resource. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-title |
| ```````````````` |
| |
| Type: array(ezcFeedTextElement). |
| |
| The name given to the resource. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-type |
| ``````````````` |
| |
| Type: array(ezcFeedTextElement). |
| |
| The nature or genre of the resource. Recommended best practice is to use a |
| controlled vocabulary such as the `DCMI Type Vocabulary`_. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| Item elements |
| ------------- |
| |
| DublinCore-item-contributor |
| ``````````````````````````` |
| |
| Type: array(ezcFeedPersonElement). |
| |
| An entity responsible for making contributions to the resource. Usually the |
| name of a person, organization or service. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| Create example:: |
| |
| <?php |
| // use eZ Components autoload mechanism |
| require_once 'tutorial_autoload.php'; |
| |
| $feed = new ezcFeed(); |
| $item = $feed->add( 'item' ); |
| $module = $item->addModule( 'DublinCore' ); |
| $element = $module->add( 'contributor' ); |
| $element->name = 'Contributor name'; |
| $element->language = 'no'; // optional language specification |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $item is a feed item (ezcFeedEntryElement) object |
| foreach ( $item->DublinCore->contributor as $element ) |
| { |
| echo $element->name; |
| echo $element->language; |
| } |
| ?> |
| |
| |
| DublinCore-item-coverage |
| ```````````````````````` |
| |
| Type: array(ezcFeedTextElement). |
| |
| The spatial or temporal topic of the resource, the spatial applicability of |
| the resource, or the jurisdiction under which the resource is relevant. A |
| recommended practice is to use a controlled vocabulary such as `TGN`_. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-item-creator |
| ``````````````````````` |
| |
| Type: array(ezcFeedPersonElement). |
| |
| An entity responsible for making the resource. Usually the name of a person or |
| organization. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-item-date |
| ```````````````````` |
| |
| Type: array(ezcFeedDateElement). |
| |
| A point or period of time associated with an event in the lifecycle of the |
| resource. Usual date format is `ISO 8601`_. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-item-description |
| ``````````````````````````` |
| |
| Type: array(ezcFeedTextElement). |
| |
| A description of the resource. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-item-format |
| `````````````````````` |
| |
| Type: array(ezcFeedTextElement). |
| |
| The file format, physical medium, or dimensions of the resource. Recommended |
| best practices is to use a controlled vocabulary such as the list of |
| `Internet Media Types`_ (MIME). |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-item-identifier |
| `````````````````````````` |
| |
| Type: array(ezcFeedIdElement). |
| |
| An unambiguous reference to the resource within a given context. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-item-language |
| ```````````````````````` |
| |
| Type: array(ezcFeedTextElement). |
| |
| A language of the resource. Recommended best practice is to use a controlled |
| vocabulary such as `RFC 4646`_. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-item-publisher |
| ````````````````````````` |
| |
| Type: array(ezcFeedPersonElement). |
| |
| An entity responsible for making the resource available. Usually the name of a |
| person, organization or service. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-item-relation |
| ```````````````````````` |
| |
| Type: array(ezcFeedTextElement). |
| |
| A related resource. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-item-rights |
| `````````````````````` |
| |
| Type: array(ezcFeedTextElement). |
| |
| Information about rights held in and over the resource. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-item-source |
| `````````````````````` |
| |
| Type: array(ezcFeedSourceElement). |
| |
| A related resource from which the described resource is derived. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-item-subject |
| ``````````````````````` |
| |
| Type: array(ezcFeedTextElement). |
| |
| The topic of the resource. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-item-title |
| ````````````````````` |
| |
| Type: array(ezcFeedTextElement). |
| |
| The name given to the resource. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| DublinCore-item-type |
| ```````````````````` |
| |
| Type: array(ezcFeedTextElement). |
| |
| The nature or genre of the resource. Recommended best practice is to use a |
| controlled vocabulary such as the `DCMI Type Vocabulary`_. |
| |
| Optional. |
| |
| Can appear multiple times. |
| |
| Has an optional attribute *xml:lang* which specifies the language of the text. |
| A list of allowed languages can be found here: `RSS language codes`_. This |
| attribute is accessed as *language*. |
| |
| |
| Geo |
| === |
| |
| Specifications |
| -------------- |
| |
| `Geo specifications`_ |
| |
| |
| Feed elements |
| ------------- |
| |
| |
| Item elements |
| ------------- |
| |
| Geo-item-alt |
| ```````````` |
| |
| Type: ezcFeedTextElement. |
| |
| Altitude in decimal meters above the local reference ellipsoid. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| Create example:: |
| |
| <?php |
| // use eZ Components autoload mechanism |
| require_once 'tutorial_autoload.php'; |
| |
| $feed = new ezcFeed( 'rss2' ); |
| $item = $feed->add( 'item' ); |
| $module = $item->addModule( 'Geo' ); |
| $module->alt = 509.2; |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| $locations = array(); |
| |
| // $feed is an ezcFeed object |
| foreach ( $feed->item as $item ) |
| { |
| if ( isset( $item->Geo ) ) |
| { |
| $locations[] = array( |
| 'title' => $item->title->__toString(), |
| 'alt' => isset( $item->Geo->alt ) ? $item->Geo->alt->__toString() : null, |
| 'lat' => isset( $item->Geo->lat ) ? $item->Geo->lat->__toString() : null, |
| 'long' => isset( $item->Geo->long ) ? $item->Geo->long->__toString() : null |
| ); |
| } |
| } |
| ?> |
| |
| |
| Geo-item-lat |
| ```````````` |
| |
| Type: ezcFeedTextElement. |
| |
| `WGS84`_ latitude on the globe as decimal degrees (eg. 25.03358300). |
| |
| Optional. |
| |
| Can appear only once. |
| |
| |
| Geo-item-long |
| ````````````` |
| |
| Type: ezcFeedTextElement. |
| |
| `WGS84`_ longitude on the globe as decimal degrees (eg. 121.56430000). |
| |
| Optional. |
| |
| Can appear only once. |
| |
| |
| |
| iTunes |
| ====== |
| |
| Specifications |
| -------------- |
| |
| `iTunes specifications`_ |
| |
| |
| Recommendations |
| --------------- |
| |
| - All values should be plain text (no markup or HTML) |
| - Values are limited to 255 characters, except for *summary* which can be up |
| to 4000 characters |
| - Whitespace in values is significant, i.e. it will show in `iTunes`_, so |
| don't add leading or trailing whitespace to your values |
| - CDATA sections are strongly discouraged |
| |
| |
| Feed elements |
| ------------- |
| |
| iTunes-author |
| ````````````` |
| |
| Type: ezcFeedPersonElement. |
| |
| The author of a podcast. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| If missing, `iTunes`_ will use the |ezcFeed-author|_ element from the feed. |
| |
| |
| iTunes-block |
| ```````````` |
| |
| Type: ezcFeedTextElement. |
| |
| Prevents a podcast to appear in the podcast listing. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| Valid values are ``yes`` and ``no``, default ``no``. |
| |
| |
| iTunes-category |
| ``````````````` |
| |
| Type: array(ezcFeedCategoryElement). |
| |
| Categories for a podcast. |
| |
| Optional. |
| |
| Can appear multiple times. Categories can have sub-categories (*category* in |
| ezcFeedCategory). |
| |
| The category name is specified in the attribute *text* (*term* in |
| ezcFeedCategoryElement). |
| |
| The ampersands (``&``) in categories must be escaped to ``&``. |
| |
| Valid values for categories are found in the `iTunes categories`_ section of |
| the `iTunes specifications`_. A maximum of 3 categories are recommended. |
| |
| Create example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| $iTunes = $feed->addModule( 'iTunes' ); |
| |
| // add the podcast in one or more categories + sub-categories |
| $category = $iTunes->add( 'category' ); |
| $category->term = 'iTunes category'; |
| $subCategory = $category->add( 'category' ); |
| $subCategory->term = 'iTunes sub-category'; |
| ?> |
| |
| Parse example:: |
| |
| <?php |
| // $feed is an ezcFeed object |
| if ( isset( $feed->iTunes ) ) |
| { |
| $iTunes = $feed->iTunes; |
| if ( isset( $iTunes->category ) ) |
| { |
| foreach ( $iTunes->category as $category ) |
| { |
| echo $category->term; |
| if ( isset( $category->category ) ) |
| { |
| foreach ( $category->category as $subCategory ) |
| { |
| echo $subCategory->term; |
| } |
| } |
| } |
| } |
| } |
| ?> |
| |
| |
| iTunes-explicit |
| ``````````````` |
| |
| Type: ezcFeedTextElement. |
| |
| Specifies if a podcast contains explicit content. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| Valid values are ``clean``, ``no`` and ``yes``, default ``no``. |
| |
| |
| iTunes-image |
| ```````````` |
| |
| Type: ezcFeedImageElement. |
| |
| A link to an image for the podcast. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| The URL to the image is specified in the attribute *href*. |
| |
| If missing, `iTunes`_ will use the |ezcFeed-image|_ element from the feed. |
| |
| |
| iTunes-keywords |
| ``````````````` |
| |
| Type: ezcFeedTextElement. |
| |
| A list of keywords for a podcast. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| The keywords should be separated by commas. A maximum of 12 keywords is |
| recommended. |
| |
| |
| iTunes-new-feed-url |
| ``````````````````` |
| |
| Type: ezcFeedLinkElement. |
| |
| A new URL for the podcast. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| Accessed as *newfeedurl*. |
| |
| Recommendation: the old URL of the podcast should redirect to the new URL. |
| |
| |
| iTunes-owner |
| ```````````` |
| |
| Type: ezcFeedPersonElement. |
| |
| The owner of the podcast. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| Has the sub-elements *email* and *name*. |
| |
| |
| iTunes-subtitle |
| ``````````````` |
| |
| Type: ezcFeedTextElement. |
| |
| Short description of the podcast. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| |
| iTunes-summary |
| `````````````` |
| |
| Type: ezcFeedTextElement. |
| |
| Longer description of a podcast. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| If missing, `iTunes`_ will use the |ezcFeed-description|_ element from the |
| feed. |
| |
| |
| Item elements |
| ------------- |
| |
| iTunes-item-author |
| `````````````````` |
| |
| Type: ezcFeedPersonElement. |
| |
| The author of a podcast entry. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| |
| iTunes-item-block |
| ````````````````` |
| |
| Type: ezcFeedTextElement. |
| |
| Prevents a podcast entry to appear in the podcast listing. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| Valid values are ``yes`` and ``no``, default ``no``. |
| |
| |
| iTunes-item-duration |
| ```````````````````` |
| |
| Type: ezcFeedTextElement. |
| |
| The duration of a podcast entry. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| Can be specified as ``S``, ``M:SS``, ``MM:SS``, ``H:MM:SS`` or ``HH:MM:SS`` |
| (H = hours, M = minutes, S = seconds). |
| |
| |
| iTunes-item-explicit |
| ```````````````````` |
| |
| Type: ezcFeedTextElement. |
| |
| Specifies if a podcast entry contains explicit content. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| Valid values are ``clean``, ``no`` and ``yes``, default ``no``. |
| |
| |
| iTunes-item-image |
| ````````````````` |
| |
| Type: ezcFeedImageElement. |
| |
| A link to an image for the podcast entry. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| The URL to the image is specified in the attribute *href*. |
| |
| NOTE: The `iTunes specifications`_ say that image is supported at |
| podcast-level only, but there are many podcasts using image at podcast entry |
| (item) level also, and there are software applications supporting that too. |
| Use *image* at item-level at your own risk, as some software applications |
| might not support it. The Feed component supports parsing and generating |
| feeds with image at both podcast-level and item-level. |
| |
| |
| iTunes-item-keywords |
| ```````````````````` |
| |
| Type: ezcFeedTextElement. |
| |
| A list of keywords for a podcast entry. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| The keywords should be separated by commas. A maximum of 12 keywords is |
| recommended. |
| |
| |
| iTunes-item-subtitle |
| ```````````````````` |
| |
| Type: ezcFeedTextElement. |
| |
| Short description of a podcast entry. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| |
| iTunes-item-summary |
| ``````````````````` |
| |
| Type: ezcFeedTextElement. |
| |
| Longer description of a podcast entry. |
| |
| Optional. |
| |
| Can appear only once. |
| |
| If missing, `iTunes`_ will use the |ezcFeed-item-description|_ element from |
| the feed. |
| |
| |
| ========= |
| Resources |
| ========= |
| |
| Feed |
| ==== |
| |
| - `RFC 4287`_ ATOM specifications. |
| - `RSS1 specifications`_. |
| - `RSS2 specifications`_. |
| |
| |
| Modules |
| ======= |
| |
| - `Content specifications`_. |
| - `CreativeCommons specifications`_. |
| - `DublinCore specifications`_. |
| - `Geo specifications`_. |
| - `iTunes specifications`_. |
| |
| |
| .. _RSS1 specifications: http://web.resource.org/rss/1.0/spec |
| .. _RSS2 specifications: http://www.rssboard.org/rss-specification |
| .. _RFC 4287: http://atompub.org/rfc4287.html |
| |
| .. _Content specifications: http://purl.org/rss/1.0/modules/content/ |
| .. _CreativeCommons specifications: http://backend.userland.com/creativeCommonsRssModule |
| .. _DublinCore specifications: http://dublincore.org/documents/dces/ |
| .. _Geo specifications: http://www.w3.org/2003/01/geo/ |
| .. _iTunes specifications: http://www.apple.com/itunes/store/podcaststechspecs.html |
| |
| .. _RFC 3339: http://www.faqs.org/rfcs/rfc3339.html |
| .. _RFC 822: http://www.faqs.org/rfcs/rfc822.html |
| .. _PICS: http://www.w3.org/PICS/ |
| .. _TGN: http://www.getty.edu/research/tools/vocabulary/tgn/index.html |
| .. _ISO 8601: http://www.w3.org/TR/NOTE-datetime |
| .. _Internet Media Types: http://www.iana.org/assignments/media-types/ |
| .. _RFC 4646: http://www.faqs.org/rfcs/rfc4646.html |
| .. _DCMI Type Vocabulary: http://dublincore.org/documents/dcmi-type-vocabulary/ |
| .. _RSS language codes: http://www.rssboard.org/rss-language-codes |
| .. _iTunes categories: http://www.apple.com/itunes/store/podcaststechspecs.html#categories |
| .. _iTunes: http://www.apple.com/itunes/ |
| .. _CreativeCommons licenses: http://creativecommons.org/licenses/ |
| .. _WGS84: http://en.wikipedia.org/wiki/WGS84 |
| .. _date_format(): http://php.net/manual/en/function.date-format.php |
| |
| .. _feed validator: http://validator.w3.org/feed/ |
| |
| .. |ezcFeed-author| replace:: author |
| .. |ezcFeed-category| replace:: category |
| .. |ezcFeed-cloud| replace:: cloud |
| .. |ezcFeed-contributor| replace:: contributor |
| .. |ezcFeed-copyright| replace:: copyright |
| .. |ezcFeed-description| replace:: description |
| .. |ezcFeed-docs| replace:: docs |
| .. |ezcFeed-generator| replace:: generator |
| .. |ezcFeed-icon| replace:: icon |
| .. |ezcFeed-id| replace:: id |
| .. |ezcFeed-image| replace:: image |
| .. |ezcFeed-item| replace:: item |
| .. |ezcFeed-language| replace:: language |
| .. |ezcFeed-link| replace:: link |
| .. |ezcFeed-published| replace:: published |
| .. |ezcFeed-rating| replace:: rating |
| .. |ezcFeed-skipDays| replace:: skipDays |
| .. |ezcFeed-skipHours| replace:: skipHours |
| .. |ezcFeed-textInput| replace:: textInput |
| .. |ezcFeed-title| replace:: title |
| .. |ezcFeed-ttl| replace:: ttl |
| .. |ezcFeed-updated| replace:: updated |
| .. |ezcFeed-webMaster| replace:: webMaster |
| |
| .. |ezcFeed-item-author| replace:: author |
| .. |ezcFeed-item-category| replace:: category |
| .. |ezcFeed-item-comments| replace:: comments |
| .. |ezcFeed-item-content| replace:: content |
| .. |ezcFeed-item-contributor| replace:: contributor |
| .. |ezcFeed-item-copyright| replace:: copyright |
| .. |ezcFeed-item-description| replace:: description |
| .. |ezcFeed-item-enclosure| replace:: enclosure |
| .. |ezcFeed-item-id| replace:: id |
| .. |ezcFeed-item-link| replace:: link |
| .. |ezcFeed-item-published| replace:: published |
| .. |ezcFeed-item-source| replace:: source |
| .. |ezcFeed-item-title| replace:: title |
| .. |ezcFeed-item-updated| replace:: updated |
| |
| .. |ATOM-author| replace:: author |
| .. |ATOM-category| replace:: category |
| .. |ATOM-contributor| replace:: contributor |
| .. |ATOM-entry| replace:: entry |
| .. |ATOM-generator| replace:: generator |
| .. |ATOM-icon| replace:: icon |
| .. |ATOM-id| replace:: id |
| .. |ATOM-link| replace:: link |
| .. |ATOM-logo| replace:: logo |
| .. |ATOM-rights| replace:: rights |
| .. |ATOM-subtitle| replace:: subtitle |
| .. |ATOM-title| replace:: title |
| .. |ATOM-updated| replace:: updated |
| |
| .. |ATOM-entry-author| replace:: author |
| .. |ATOM-entry-category| replace:: category |
| .. |ATOM-entry-content| replace:: content |
| .. |ATOM-entry-contributor| replace:: contributor |
| .. |ATOM-entry-id| replace:: id |
| .. |ATOM-entry-link| replace:: link |
| .. |ATOM-entry-published| replace:: published |
| .. |ATOM-entry-rights| replace:: rights |
| .. |ATOM-entry-source| replace:: source |
| .. |ATOM-entry-summary| replace:: summary |
| .. |ATOM-entry-title| replace:: title |
| .. |ATOM-entry-updated| replace:: updated |
| |
| .. |RSS1-about| replace:: about |
| .. |RSS1-description| replace:: description |
| .. |RSS1-image| replace:: image |
| .. |RSS1-item| replace:: item |
| .. |RSS1-link| replace:: link |
| .. |RSS1-textinput| replace:: textinput |
| .. |RSS1-title| replace:: title |
| |
| .. |RSS1-item-about| replace:: about |
| .. |RSS1-item-description| replace:: description |
| .. |RSS1-item-link| replace:: link |
| .. |RSS1-item-title| replace:: title |
| |
| .. |RSS2-cloud| replace:: cloud |
| .. |RSS2-category| replace:: category |
| .. |RSS2-copyright| replace:: copyright |
| .. |RSS2-description| replace:: description |
| .. |RSS2-docs| replace:: docs |
| .. |RSS2-generator| replace:: generator |
| .. |RSS2-image| replace:: image |
| .. |RSS2-item| replace:: item |
| .. |RSS2-language| replace:: language |
| .. |RSS2-lastBuildDate| replace:: lastBuildDate |
| .. |RSS2-link| replace:: link |
| .. |RSS2-managingEditor| replace:: managingEditor |
| .. |RSS2-pubDate| replace:: pubDate |
| .. |RSS2-rating| replace:: rating |
| .. |RSS2-skipDays| replace:: skipDays |
| .. |RSS2-skipHours| replace:: skipHours |
| .. |RSS2-textInput| replace:: textInput |
| .. |RSS2-title| replace:: title |
| .. |RSS2-ttl| replace:: ttl |
| .. |RSS2-webMaster| replace:: webMaster |
| |
| .. |RSS2-item-author| replace:: author |
| .. |RSS2-item-category| replace:: category |
| .. |RSS2-item-comments| replace:: comments |
| .. |RSS2-item-description| replace:: description |
| .. |RSS2-item-enclosure| replace:: enclosure |
| .. |RSS2-item-guid| replace:: guid |
| .. |RSS2-item-link| replace:: link |
| .. |RSS2-item-pubDate| replace:: pubDate |
| .. |RSS2-item-source| replace:: source |
| .. |RSS2-item-title| replace:: title |
| |
| |
| |
| .. |
| Local Variables: |
| mode: rst |
| fill-column: 79 |
| End: |
| vim: et syn=rst tw=79 nocin |