コード例 #1
0
 /**
  * @see DOIExportDom::retrievePublicationObjects()
  */
 function &retrievePublicationObjects(&$object)
 {
     // Initialize local variables.
     $nullVar = null;
     $journal =& $this->getJournal();
     $cache =& $this->getCache();
     // Retrieve basic OJS objects.
     $publicationObjects = parent::retrievePublicationObjects($object);
     if (is_a($object, 'SuppFile')) {
         assert(isset($publicationObjects['article']));
         $cache->add($object, $publicationObjects['article']);
         $publicationObjects['suppFile'] =& $object;
     }
     // Retrieve additional related objects.
     // For articles: Retrieve all galleys and supp files of the article:
     if (is_a($object, 'PublishedArticle')) {
         $article =& $publicationObjects['article'];
         $publicationObjects['galleysByArticle'] =& $this->retrieveGalleysByArticle($article);
         $publicationObjects['suppFilesByArticle'] =& $this->_retrieveSuppFilesByArticle($article);
     }
     // For issues: Retrieve all articles of the issue:
     if (is_a($object, 'Issue')) {
         // Articles by issue.
         assert(isset($publicationObjects['issue']));
         $issue =& $publicationObjects['issue'];
         $publicationObjects['articlesByIssue'] =& $this->retrieveArticlesByIssue($issue);
     }
     return $publicationObjects;
 }
コード例 #2
0
ファイル: O4DOIExportDom.inc.php プロジェクト: reconciler/ojs
 /**
  * Retrieve all the OJS publication objects containing the
  * data required to generate the given O4DOI schema.
  *
  * @param $object Issue|PublishedArticle|ArticleGalley The object to export.
  *
  * @return array An array with the required OJS objects.
  */
 function &retrievePublicationObjects(&$object)
 {
     // Initialize local variables.
     $nullVar = null;
     $journal =& $this->getJournal();
     $cache =& $this->getCache();
     // Retrieve basic OJS objects.
     $publicationObjects = parent::retrievePublicationObjects($object);
     // Retrieve additional related objects.
     // For articles and galleys: Retrieve all galleys of the article:
     if (is_a($object, 'PublishedArticle') || is_a($object, 'ArticleGalley')) {
         assert(isset($publicationObjects['article']));
         $publicationObjects['galleysByArticle'] =& $this->retrieveGalleysByArticle($publicationObjects['article']);
     }
     // For issues: Retrieve all articles and galleys of the issue:
     if (is_a($object, 'Issue')) {
         // Articles by issue.
         assert(isset($publicationObjects['issue']));
         $issue =& $publicationObjects['issue'];
         $publicationObjects['articlesByIssue'] =& $this->retrieveArticlesByIssue($issue);
         // Galleys by issue.
         $issueId = $issue->getId();
         if (!$cache->isCached('galleysByIssue', $issueId)) {
             foreach ($publicationObjects['articlesByIssue'] as $article) {
                 $this->retrieveGalleysByArticle($article);
                 unset($article);
             }
             $cache->markComplete('galleysByIssue', $issueId);
         }
         $publicationObjects['galleysByIssue'] =& $cache->get('galleysByIssue', $issueId);
     }
     return $publicationObjects;
 }
コード例 #3
0
 /**
  * @see DOIExportDom::retrievePublicationObjects()
  */
 function &retrievePublicationObjects(&$object)
 {
     // Initialize local variables.
     $nullVar = null;
     $journal =& $this->getJournal();
     $cache =& $this->getCache();
     // Retrieve basic OJS objects.
     $publicationObjects = parent::retrievePublicationObjects($object);
     // Retrieve additional related objects.
     // For articles: no additional objects needed for CrossRef:
     // galleys are not considered and
     // supp files will be retrieved when crating the XML
     // Note: article issue is already retrieved by the parent method
     if (is_a($object, 'PublishedArticle')) {
         $article =& $publicationObjects['article'];
     }
     // For issues: Retrieve all articles of the issue:
     if (is_a($object, 'Issue')) {
         // Articles by issue.
         assert(isset($publicationObjects['issue']));
         $issue =& $publicationObjects['issue'];
         $publicationObjects['articlesByIssue'] =& $this->retrieveArticlesByIssue($issue);
     }
     return $publicationObjects;
 }