Example #1
0
 protected function _createEntry(Zend_Feed_Entry_Abstract $item)
 {
     $entry = new Ls_Aggregator_Entry();
     $entry->setUrl($item->link('alternate'));
     $entry->setTitle($item->title);
     $entry->setContent($item->content);
     if ($item instanceof Zend_Feed_Entry_Atom) {
         $entry->setUniqueId($item->id);
         $entry->setSummary($item->summary);
         $entry->setContentCreatedAt($this->_createDate($item->published, Zend_Date::ATOM));
         $entry->setContentUpdatedAt($this->_createDate($item->updated, Zend_Date::ATOM));
         foreach ($item->category as $category) {
             $entry->addCategory($category->offsetGet('term'));
         }
     } else {
         $entry->setUniqueId($item->guid);
         $entry->setSummary($item->description);
         $entry->setContentCreatedAt($this->_createDate($item->pubDate, Zend_Date::RSS));
         $entry->setContentUpdatedAt($this->_createDate($item->updated, Zend_Date::RSS));
         foreach ($item->category as $category) {
             $entry->addCategory($category);
         }
     }
     // Make sure we have both created and updated with something
     if ($entry->getContentUpdatedAt() == '' && $entry->getContentCreatedAt() == '') {
         $entry->setContentUpdatedAt(Zend_Date::now());
         $entry->setContentCreatedAt(Zend_Date::now());
     }
     if ($entry->getContentUpdatedAt() == '') {
         $entry->setContentUpdatedAt($entry->getContentCreatedAt());
     }
     if ($entry->getContentCreatedAt() == '') {
         $entry->setContentCreatedAt($entry->getContentUpdatedAt());
     }
     return $entry;
 }
Example #2
0
 /**
  * Easy access to <link> tags keyed by "rel" attributes.
  *
  * If $elt->link() is called with no arguments, we will attempt to
  * return the value of the <link> tag(s) like all other
  * method-syntax attribute access. If an argument is passed to
  * link(), however, then we will return the "href" value of the
  * first <link> tag that has a "rel" attribute matching $rel:
  *
  * $elt->link(): returns the value of the link tag.
  * $elt->link('self'): returns the href from the first <link rel="self"> in the entry.
  *
  * @param  string $rel The "rel" attribute to look for.
  * @return mixed
  */
 public function link($rel = null)
 {
     if ($rel === null) {
         return parent::__call('link', null);
     }
     // index link tags by their "rel" attribute.
     $links = parent::__get('link');
     if (!is_array($links)) {
         if ($links instanceof Zend_Feed_Element) {
             $links = array($links);
         } else {
             return $links;
         }
     }
     foreach ($links as $link) {
         if (empty($link['rel'])) {
             $link['rel'] = 'alternate';
             // see Atom 1.0 spec
         }
         if ($rel == $link['rel']) {
             return $link['href'];
         }
     }
     return null;
 }
Example #3
0
 /**
  * Overwrites parent::_call method to enable read access
  * to content:encoded element.
  * Please note that method-style write access is not currently supported
  * by parent method, consequently this method doesn't as well.
  *
  * @param  string $var    The element to get the string value of.
  * @param  mixed  $unused This parameter is not used.
  * @return mixed The node's value, null, or an array of nodes.
  */
 public function __call($var, $unused)
 {
     switch ($var) {
         case 'content':
             $prefix = $this->_element->lookupPrefix('http://purl.org/rss/1.0/modules/content/');
             return parent::__call("{$prefix}:encoded", $unused);
         default:
             return parent::__call($var, $unused);
     }
 }