Beispiel #1
0
 /**
  * helper function to create attachments between entries.
  * The 2010-07 version of leap2a says that linked *entries* should use related relation,
  * and directly linked files (attachments) should use enclosures.
  * However, for BC we should support both.
  * This function supports both and additionally creates the File artefacts for attachments, then links them.
  *
  * @param SimpleXMLElement $entry    the entry we want to attach things *to*
  * @param SimpleXMLElement $link     the link to inspect
  * @param ArtefactType     $artefact the artefact that has been created from the entry.
  *
  * @return void|int the id of a *newly created* attached artefact
  */
 public function create_attachment(SimpleXMLElement $entry, SimpleXMLElement $link, ArtefactType &$artefact)
 {
     if (($this->curie_equals($link['rel'], '', 'enclosure') || $this->curie_equals($link['rel'], '', 'related')) && isset($link['href'])) {
         $this->trace("Attaching file {$link['href']} to comment {$entry->id}", PluginImportLeap::LOG_LEVEL_VERBOSE);
         $artefactids = $this->get_artefactids_imported_by_entryid((string) $link['href']);
         if (isset($artefactids[0])) {
             $artefact->attach($artefactids[0]);
         } else {
             // it may be just an attached file, with no Leap2A element in its own right ....
             if ($id = $this->create_linked_file($entry, $link)) {
                 $artefact->attach($id);
                 return $id;
             }
         }
     }
 }