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; }
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; }