Пример #1
0
 function setPidsRetroactively($journalId, $pidAssignorPath, $pidResolverPath, $pidUsername, $pidPassword)
 {
     $pidResourceDao =& DAORegistry::getDAO('pidResourceDAO');
     $articleIdList = $pidResourceDao->getJournalArticleIDsWithoutPid($journalId, ASSOC_TYPE_PID_ARTICLE);
     foreach ($articleIdList as $articleId) {
         pidHandler::requestHsPid($pidAssignorPath, $pidResolverPath, $pidUsername, $pidPassword, $articleId);
     }
     return true;
 }
Пример #2
0
 function publishedArticlePidHandler($hookName, $args)
 {
     $articleDao =& DAORegistry::getDAO('ArticleDAO');
     preg_match_all('/(\\w{1,})\\s{0,}=\\s{0,}\\?/', $args[0], $fields);
     $row = array_combine($fields[1], $args[1]);
     if (!empty($row['article_id']) && $row['status'] == STATUS_PUBLISHED) {
         $article = $articleDao->getArticle($row['article_id']);
         $articleId = $article->getArticleId();
         $localPid = pidHandler::getResourcePid($articleId, ASSOC_TYPE_PID_ARTICLE);
         if (empty($localPid)) {
             $pidAssignorPath = $this->getSetting($this->journal->getJournalId(), 'pidAssignorPath');
             $pidResolverPath = $this->getSetting($this->journal->getJournalId(), 'pidResolverPath');
             $pidUsername = $this->getSetting($this->journal->getJournalId(), 'pidUsername');
             $pidPassword = $this->getSetting($this->journal->getJournalId(), 'pidPassword');
             $this->articlePid = pidHandler::requestHsPid($pidAssignorPath, $pidResolverPath, $pidUsername, $pidPassword, $articleId);
         } else {
             $this->articlePid = $localPid;
         }
     }
     return false;
 }