/** * 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; }
/** * 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); } }