Exemple #1
0
 /**
  * Get an array with feed authors
  *
  * @return array
  */
 public function getAuthors()
 {
     if (array_key_exists('authors', $this->data)) {
         return $this->data['authors'];
     }
     $authors = array();
     $list = $this->getXpath()->query('//dc11:creator');
     if (!$list->length) {
         $list = $this->getXpath()->query('//dc10:creator');
     }
     if (!$list->length) {
         $list = $this->getXpath()->query('//dc11:publisher');
         if (!$list->length) {
             $list = $this->getXpath()->query('//dc10:publisher');
         }
     }
     if ($list->length) {
         foreach ($list as $author) {
             $authors[] = array('name' => $author->nodeValue);
         }
         $authors = new Collection\Author(Reader\Reader::arrayUnique($authors));
     } else {
         $authors = null;
     }
     $this->data['authors'] = $authors;
     return $this->data['authors'];
 }
Exemple #2
0
 /**
  * Get an array with feed authors
  *
  * @return array
  */
 public function getAuthors()
 {
     if (array_key_exists('authors', $this->_data)) {
         return $this->_data['authors'];
     }
     $authors = array();
     $list = $this->getXpath()->query($this->getXpathPrefix() . '//atom:author');
     if (!$list->length) {
         /**
          * TODO: Limit query to feed level els only!
          */
         $list = $this->getXpath()->query('//atom:author');
     }
     if ($list->length) {
         foreach ($list as $author) {
             $author = $this->_getAuthor($author);
             if (!empty($author)) {
                 $authors[] = $author;
             }
         }
     }
     if (count($authors) == 0) {
         $authors = null;
     } else {
         $authors = new Collection\Author(Reader\Reader::arrayUnique($authors));
     }
     $this->_data['authors'] = $authors;
     return $this->_data['authors'];
 }
Exemple #3
0
    /**
     * Get an array with feed authors
     *
     * @return array
     */
    public function getAuthors()
    {
        if (array_key_exists('authors', $this->_data)) {
            return $this->_data['authors'];
        }

        $list = $this->_xpath->query('//atom:author');

        $authors = array();

        if ($list->length) {
            foreach ($list as $author) {
                $author = $this->_getAuthor($author);
                if (!empty($author)) {
                    $authors[] = $author;
                }
            }
        }

        if (count($authors) == 0) {
            $authors = null;
        } else {
            $authors = new Collection\Author(
                Reader\Reader::arrayUnique($authors)
            );
        }

        $this->_data['authors'] = $authors;

        return $this->_data['authors'];
    }
Exemple #4
0
 /**
  * Get an array with feed authors
  *
  * @return array
  */
 public function getAuthors()
 {
     if (array_key_exists('authors', $this->_data)) {
         return $this->_data['authors'];
     }
     $authors = array();
     $authors_dc = $this->getExtension('DublinCore')->getAuthors();
     if (!empty($authors_dc)) {
         foreach ($authors_dc as $author) {
             $authors[] = array('name' => $author['name']);
         }
     }
     /**
      * Technically RSS doesn't specific author element use at the feed level
      * but it's supported on a "just in case" basis.
      */
     if ($this->getType() !== Reader\Reader::TYPE_RSS_10 && $this->getType() !== Reader\Reader::TYPE_RSS_090) {
         $list = $this->_xpath->query('//author');
     } else {
         $list = $this->_xpath->query('//rss:author');
     }
     if ($list->length) {
         foreach ($list as $author) {
             $string = trim($author->nodeValue);
             $email = null;
             $name = null;
             $data = array();
             // Pretty rough parsing - but it's a catchall
             if (preg_match("/^.*@[^ ]*/", $string, $matches)) {
                 $data['email'] = trim($matches[0]);
                 if (preg_match("/\\((.*)\\)\$/", $string, $matches)) {
                     $data['name'] = $matches[1];
                 }
                 $authors[] = $data;
             }
         }
     }
     if (count($authors) == 0) {
         $authors = $this->getExtension('Atom')->getAuthors();
     } else {
         $authors = new Reader\Collection\Author(Reader\Reader::arrayUnique($authors));
     }
     if (count($authors) == 0) {
         $authors = null;
     }
     $this->_data['authors'] = $authors;
     return $this->_data['authors'];
 }
Exemple #5
0
 /**
  * Get an array with feed authors
  *
  * @return array
  */
 public function getAuthors()
 {
     if (array_key_exists('authors', $this->data)) {
         return $this->data['authors'];
     }
     $authors = array();
     $authorsDc = $this->getExtension('DublinCore')->getAuthors();
     if (!empty($authorsDc)) {
         foreach ($authorsDc as $author) {
             $authors[] = array('name' => $author['name']);
         }
     }
     if ($this->getType() !== Reader\Reader::TYPE_RSS_10 && $this->getType() !== Reader\Reader::TYPE_RSS_090) {
         $list = $this->xpath->query($this->xpathQueryRss . '//author');
     } else {
         $list = $this->xpath->query($this->xpathQueryRdf . '//rss:author');
     }
     if ($list->length) {
         foreach ($list as $author) {
             $string = trim($author->nodeValue);
             $email = null;
             $name = null;
             $data = array();
             // Pretty rough parsing - but it's a catchall
             if (preg_match("/^.*@[^ ]*/", $string, $matches)) {
                 $data['email'] = trim($matches[0]);
                 if (preg_match("/\\((.*)\\)\$/", $string, $matches)) {
                     $data['name'] = $matches[1];
                 }
                 $authors[] = $data;
             }
         }
     }
     if (count($authors) == 0) {
         $authors = $this->getExtension('Atom')->getAuthors();
     } else {
         $authors = new Reader\Collection\Author(Reader\Reader::arrayUnique($authors));
     }
     if (count($authors) == 0) {
         $authors = null;
     }
     $this->data['authors'] = $authors;
     return $this->data['authors'];
 }