Example #1
0
 /**
  * URL for author
  *
  * @param Author $author
  * @return string url
  */
 public function linkAuthor(Author $author)
 {
     $arrParams = $this->lateralLink();
     $arrParams['field'] = 'author';
     // we've defined a specific searchable string for this author,
     // so take that instead and make it quoted for exactness
     if ($author->search_string != "") {
         $arrParams['query'] = '"' . $author->search_string . '"';
     } else {
         $arrParams['query'] = $author->getName();
     }
     return $this->request->url_for($arrParams);
 }
Example #2
0
 /**
  * Map the source data to record properties
  * 
  * By default here it maps from the internal xml produced by toXML()
  */
 protected function map()
 {
     $xml = simplexml_load_string($this->document->saveXML());
     foreach ($xml->children() as $child) {
         $name = $child->getName();
         if ($name == 'standard_numbers') {
             foreach ($child->children() as $number) {
                 $this->addPropertyFromXML($number);
             }
         } elseif ($name == 'authors') {
             foreach ($child->children() as $author) {
                 $author_object = new Author();
                 $author_object->fromXML($author);
                 $this->authors[] = $author_object;
             }
         } elseif ($name == 'links') {
             foreach ($child->children() as $link) {
                 $link_object = new Link();
                 $link_object->fromXML($link);
                 $this->links[] = $link_object;
             }
         } elseif ($name == 'format') {
             $this->format->fromXML($child);
         } elseif ($name == 'subjects') {
             foreach ($child->children() as $subject) {
                 $subject_object = new Subject();
                 $subject_object->display = (string) $subject->display;
                 $subject_object->value = (string) $subject->value;
                 $this->subjects[] = $subject_object;
             }
         } elseif ($name == 'toc') {
             foreach ($child->children() as $chapter) {
                 $chapter_object = new Chapter();
                 $chapter_object->title = (string) $chapter->display;
                 $chapter_object->author = (string) $chapter->value;
                 $chapter_object->statement = (string) $chapter->value;
                 $this->toc[] = $chapter_object;
             }
         } else {
             $this->addPropertyFromXML($child);
         }
     }
 }