本文整理汇总了PHP中Author::setAffiliation方法的典型用法代码示例。如果您正苦于以下问题:PHP Author::setAffiliation方法的具体用法?PHP Author::setAffiliation怎么用?PHP Author::setAffiliation使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Author
的用法示例。
在下文中一共展示了Author::setAffiliation方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testToXml
/**
* @covers OAIMetadataFormat_DC
* @covers Dc11SchemaArticleAdapter
*/
public function testToXml()
{
$this->markTestSkipped('Skipped because of weird class interaction with ControlledVocabDAO.');
//
// Create test data.
//
$journalId = 1;
// Enable the DOI plugin.
$pluginSettingsDao = DAORegistry::getDAO('PluginSettingsDAO');
/* @var $pluginSettingsDao PluginSettingsDAO */
$pluginSettingsDao->updateSetting($journalId, 'doipubidplugin', 'enabled', 1);
$pluginSettingsDao->updateSetting($journalId, 'doipubidplugin', 'enableIssueDoi', 1);
$pluginSettingsDao->updateSetting($journalId, 'doipubidplugin', 'enableArticleDoi', 1);
$pluginSettingsDao->updateSetting($journalId, 'doipubidplugin', 'enableGalleyDoi', 1);
// Author
import('classes.article.Author');
$author = new Author();
$author->setFirstName('author-firstname');
$author->setLastName('author-lastname');
$author->setAffiliation('author-affiliation', 'en_US');
$author->setEmail('someone@example.com');
// Article
import('classes.article.PublishedArticle');
$article = $this->getMock('PublishedArticle', array('getBestArticleId'));
/* @var $article PublishedArticle */
$article->expects($this->any())->method('getBestArticleId')->will($this->returnValue(9));
$article->setId(9);
$article->setJournalId($journalId);
$author->setSubmissionId($article->getId());
$article->setPages(15);
$article->setType('art-type', 'en_US');
$article->setTitle('article-title-en', 'en_US');
$article->setTitle('article-title-de', 'de_DE');
$article->setDiscipline('article-discipline', 'en_US');
$article->setSubject('article-subject', 'en_US');
$article->setAbstract('article-abstract', 'en_US');
$article->setSponsor('article-sponsor', 'en_US');
$article->setStoredPubId('doi', 'article-doi');
$article->setLanguage('en_US');
// Galleys
import('classes.article.ArticleGalley');
$galley = new ArticleGalley();
$galley->setId(98);
$galley->setStoredPubId('doi', 'galley-doi');
$galleys = array($galley);
// Journal
import('classes.journal.Journal');
$journal = $this->getMock('Journal', array('getSetting'));
/* @var $journal Journal */
$journal->expects($this->any())->method('getSetting')->will($this->returnCallback(array($this, 'getJournalSetting')));
$journal->setPrimaryLocale('en_US');
$journal->setPath('journal-path');
$journal->setId($journalId);
// Section
import('classes.journal.Section');
$section = new Section();
$section->setIdentifyType('section-identify-type', 'en_US');
// Issue
import('classes.issue.Issue');
$issue = $this->getMock('Issue', array('getIssueIdentification'));
/* @var $issue Issue */
$issue->expects($this->any())->method('getIssueIdentification')->will($this->returnValue('issue-identification'));
$issue->setId(96);
$issue->setDatePublished('2010-11-05');
$issue->setStoredPubId('doi', 'issue-doi');
$issue->setJournalId($journalId);
//
// Create infrastructural support objects
//
// Router
import('lib.pkp.classes.core.PKPRouter');
$router = $this->getMock('PKPRouter', array('url'));
$application = PKPApplication::getApplication();
$router->setApplication($application);
$router->expects($this->any())->method('url')->will($this->returnCallback(array($this, 'routerUrl')));
// Request
import('classes.core.Request');
$request = $this->getMock('Request', array('getRouter'));
$request->expects($this->any())->method('getRouter')->will($this->returnValue($router));
Registry::set('request', $request);
//
// Create mock DAOs
//
// Create a mocked AuthorDAO that returns our test author.
import('classes.article.AuthorDAO');
$authorDao = $this->getMock('AuthorDAO', array('getBySubmissionId'));
$authorDao->expects($this->any())->method('getBySubmissionId')->will($this->returnValue(array($author)));
DAORegistry::registerDAO('AuthorDAO', $authorDao);
// Create a mocked OAIDAO that returns our test data.
import('classes.oai.ojs.OAIDAO');
$oaiDao = $this->getMock('OAIDAO', array('getJournal', 'getSection', 'getIssue'));
$oaiDao->expects($this->any())->method('getJournal')->will($this->returnValue($journal));
$oaiDao->expects($this->any())->method('getSection')->will($this->returnValue($section));
$oaiDao->expects($this->any())->method('getIssue')->will($this->returnValue($issue));
DAORegistry::registerDAO('OAIDAO', $oaiDao);
// Create a mocked ArticleGalleyDAO that returns our test data.
//.........这里部分代码省略.........
示例2: execute
/**
* Save changes to article.
* @param $request PKPRequest
* @return int the article ID
*/
function execute(&$request)
{
$articleDao =& DAORegistry::getDAO('ArticleDAO');
$article =& $this->article;
// Retrieve the previous citation list for comparison.
$previousRawCitationList = $article->getCitations();
///////////////////////////////////////////
////////////// Update Authors /////////////
///////////////////////////////////////////
$authors = $this->getData('authors');
for ($i = 0, $count = count($authors); $i < $count; $i++) {
if ($authors[$i]['authorId'] > 0) {
// Update an existing author
$author =& $article->getAuthor($authors[$i]['authorId']);
$isExistingAuthor = true;
} else {
// Create a new author
$author = new Author();
$isExistingAuthor = false;
}
if ($author != null) {
$author->setSubmissionId($article->getId());
if (isset($authors[$i]['firstName'])) {
$author->setFirstName($authors[$i]['firstName']);
}
if (isset($authors[$i]['middleName'])) {
$author->setMiddleName($authors[$i]['middleName']);
}
if (isset($authors[$i]['lastName'])) {
$author->setLastName($authors[$i]['lastName']);
}
if (isset($authors[$i]['affiliation'])) {
$author->setAffiliation($authors[$i]['affiliation']);
}
if (isset($authors[$i]['phone'])) {
$author->setPhoneNumber($authors[$i]['phone']);
}
if (isset($authors[$i]['email'])) {
$author->setEmail($authors[$i]['email']);
}
$author->setPrimaryContact($this->getData('primaryContact') == $i ? 1 : 0);
$author->setSequence($authors[$i]['seq']);
if ($isExistingAuthor == false) {
$article->addAuthor($author);
}
}
unset($author);
}
// Remove deleted authors
$deletedAuthors = explode(':', $this->getData('deletedAuthors'));
for ($i = 0, $count = count($deletedAuthors); $i < $count; $i++) {
$article->removeAuthor($deletedAuthors[$i]);
}
///////////////////////////////////////////
//////////// Update Abstract(s) ///////////
///////////////////////////////////////////
import('classes.article.ProposalAbstract');
$journal = Request::getJournal();
$abstracts = $this->getData('abstracts');
foreach ($journal->getSupportedLocaleNames() as $localeKey => $localeValue) {
if ($abstracts[$localeKey]['abstractId'] > 0) {
$abstract = $article->getAbstractByLocale($localeKey);
$isExistingAbstract = true;
} else {
$abstract = new ProposalAbstract();
$isExistingAbstract = false;
}
if ($abstract != null) {
$abstract->setArticleId($article->getId());
$abstract->setLocale($localeKey);
$abstract->setScientificTitle($abstracts[$localeKey]['scientificTitle']);
$abstract->setPublicTitle($abstracts[$localeKey]['publicTitle']);
$abstract->setBackground($abstracts[$localeKey]['background']);
$abstract->setObjectives($abstracts[$localeKey]['objectives']);
$abstract->setStudyMethods($abstracts[$localeKey]['studyMethods']);
$abstract->setExpectedOutcomes($abstracts[$localeKey]['expectedOutcomes']);
$abstract->setKeywords($abstracts[$localeKey]['keywords']);
if ($isExistingAbstract == false) {
$article->addAbstract($abstract);
}
}
unset($abstract);
}
///////////////////////////////////////////
///////// Update Proposal Details /////////
///////////////////////////////////////////
$proposalDetailsData = $this->getData('proposalDetails');
import('classes.article.ProposalDetails');
$proposalDetails = new ProposalDetails();
$institutionDao =& DAORegistry::getDAO('InstitutionDAO');
import('classes.journal.Institution');
$proposalDetails->setArticleId($article->getId());
$proposalDetails->setStudentResearch($proposalDetailsData['studentInitiatedResearch']);
$proposalDetails->setStartDate($proposalDetailsData['startDate']);
$proposalDetails->setEndDate($proposalDetailsData['endDate']);
//.........这里部分代码省略.........
示例3: execute
/**
* Save changes to paper.
* @return int the paper ID
*/
function execute()
{
$paperDao =& DAORegistry::getDAO('PaperDAO');
$authorDao =& DAORegistry::getDAO('AuthorDAO');
$trackDao =& DAORegistry::getDAO('TrackDAO');
// Update paper
$paper =& $this->paper;
$paper->setTitle($this->getData('title'), null);
// Localized
$track =& $trackDao->getTrack($paper->getTrackId());
$paper->setAbstract($this->getData('abstract'), null);
// Localized
$paper->setDiscipline($this->getData('discipline'), null);
// Localized
$paper->setSubjectClass($this->getData('subjectClass'), null);
// Localized
$paper->setSubject($this->getData('subject'), null);
// Localized
$paper->setCoverageGeo($this->getData('coverageGeo'), null);
// Localized
$paper->setCoverageChron($this->getData('coverageChron'), null);
// Localized
$paper->setCoverageSample($this->getData('coverageSample'), null);
// Localized
$paper->setType($this->getData('type'), null);
// Localized
$paper->setLanguage($this->getData('language'));
$paper->setSponsor($this->getData('sponsor'), null);
// Localized
$paper->setCitations($this->getData('citations'));
// Update authors
$authors = $this->getData('authors');
for ($i = 0, $count = count($authors); $i < $count; $i++) {
if ($authors[$i]['authorId'] > 0) {
// Update an existing author
$author =& $paper->getAuthor($authors[$i]['authorId']);
$isExistingAuthor = true;
} else {
// Create a new author
$author = new Author();
$isExistingAuthor = false;
}
if ($author != null) {
$author->setFirstName($authors[$i]['firstName']);
$author->setMiddleName($authors[$i]['middleName']);
$author->setLastName($authors[$i]['lastName']);
$author->setAffiliation($authors[$i]['affiliation']);
$author->setCountry($authors[$i]['country']);
$author->setEmail($authors[$i]['email']);
$author->setUrl($authors[$i]['url']);
$author->setBiography($authors[$i]['biography'], null);
// Localized
$author->setPrimaryContact($this->getData('primaryContact') == $i ? 1 : 0);
$author->setSequence($authors[$i]['seq']);
if ($isExistingAuthor == false) {
$paper->addAuthor($author);
}
}
}
// Remove deleted authors
$deletedAuthors = explode(':', $this->getData('deletedAuthors'));
for ($i = 0, $count = count($deletedAuthors); $i < $count; $i++) {
$paper->removeAuthor($deletedAuthors[$i]);
}
// Save the paper
$paperDao->updatePaper($paper);
// Update search index
import('search.PaperSearchIndex');
PaperSearchIndex::indexPaperMetadata($paper);
return $paper->getId();
}
示例4: handleAuthorNode
function handleAuthorNode(&$conference, &$schedConf, &$authorNode, &$track, &$paper, &$errors)
{
$errors = array();
$conferenceSupportedLocales = array_keys($conference->getSupportedLocaleNames());
// => conference locales must be set up before
$conferencePrimaryLocale = $conference->getPrimaryLocale();
$author = new Author();
if ($node = $authorNode->getChildByName('firstname')) {
$author->setFirstName($node->getValue());
}
if ($node = $authorNode->getChildByName('middlename')) {
$author->setMiddleName($node->getValue());
}
if ($node = $authorNode->getChildByName('lastname')) {
$author->setLastName($node->getValue());
}
if ($node = $authorNode->getChildByName('affiliation')) {
$author->setAffiliation($node->getValue());
}
if ($node = $authorNode->getChildByName('country')) {
$author->setCountry($node->getValue());
}
if ($node = $authorNode->getChildByName('email')) {
$author->setEmail($node->getValue());
}
if ($node = $authorNode->getChildByName('url')) {
$author->setUrl($node->getValue());
}
for ($index = 0; $node = $authorNode->getChildByName('biography', $index); $index++) {
$locale = $node->getAttribute('locale');
if ($locale == '') {
$locale = $conferencePrimaryLocale;
} elseif (!in_array($locale, $conferenceSupportedLocales)) {
$errors[] = array('plugins.importexport.native.import.error.paperAuthorBiographyLocaleUnsupported', array('authorFullName' => $author->getFullName(), 'paperTitle' => $paper->getLocalizedTitle(), 'locale' => $locale));
return false;
}
$author->setBiography($node->getValue(), $locale);
}
$author->setPrimaryContact($authorNode->getAttribute('primary_contact') === 'true' ? 1 : 0);
$paper->addAuthor($author);
// instead of $author->setSequence($index+1);
return true;
}
示例5: handleAuthorNode
function handleAuthorNode(&$journal, &$authorNode, &$issue, &$section, &$article, &$errors)
{
$errors = array();
$journalSupportedLocales = array_keys($journal->getSupportedLocaleNames());
// => journal locales must be set up before
$journalPrimaryLocale = $journal->getPrimaryLocale();
$author = new Author();
if ($node = $authorNode->getChildByName('firstname')) {
$author->setFirstName($node->getValue());
}
if ($node = $authorNode->getChildByName('middlename')) {
$author->setMiddleName($node->getValue());
}
if ($node = $authorNode->getChildByName('lastname')) {
$author->setLastName($node->getValue());
}
for ($index = 0; $node = $authorNode->getChildByName('affiliation', $index); $index++) {
$locale = $node->getAttribute('locale');
if ($locale == '') {
$locale = $journalPrimaryLocale;
} elseif (!in_array($locale, $journalSupportedLocales)) {
$errors[] = array('plugins.importexport.native.import.error.articleAuthorAffiliationLocaleUnsupported', array('authorFullName' => $author->getFullName(), 'articleTitle' => $article->getLocalizedTitle(), 'issueTitle' => $issue->getIssueIdentification(), 'locale' => $locale));
return false;
}
$author->setAffiliation($node->getValue(), $locale);
}
if ($node = $authorNode->getChildByName('country')) {
$author->setCountry($node->getValue());
}
if ($node = $authorNode->getChildByName('email')) {
$author->setEmail($node->getValue());
}
if ($node = $authorNode->getChildByName('url')) {
$author->setUrl($node->getValue());
}
for ($index = 0; $node = $authorNode->getChildByName('competing_interests', $index); $index++) {
$locale = $node->getAttribute('locale');
if ($locale == '') {
$locale = $journalPrimaryLocale;
} elseif (!in_array($locale, $journalSupportedLocales)) {
$errors[] = array('plugins.importexport.native.import.error.articleAuthorCompetingInterestsLocaleUnsupported', array('authorFullName' => $author->getFullName(), 'articleTitle' => $article->getLocalizedTitle(), 'issueTitle' => $issue->getIssueIdentification(), 'locale' => $locale));
return false;
}
$author->setCompetingInterests($node->getValue(), $locale);
}
for ($index = 0; $node = $authorNode->getChildByName('biography', $index); $index++) {
$locale = $node->getAttribute('locale');
if ($locale == '') {
$locale = $journalPrimaryLocale;
} elseif (!in_array($locale, $journalSupportedLocales)) {
$errors[] = array('plugins.importexport.native.import.error.articleAuthorBiographyLocaleUnsupported', array('authorFullName' => $author->getFullName(), 'articleTitle' => $article->getLocalizedTitle(), 'issueTitle' => $issue->getIssueIdentification(), 'locale' => $locale));
return false;
}
$author->setBiography($node->getValue(), $locale);
}
$author->setPrimaryContact($authorNode->getAttribute('primary_contact') === 'true' ? 1 : 0);
$article->addAuthor($author);
// instead of $author->setSequence($index+1);
return true;
}
示例6: getPublishedPaperAuthors
/**
* Retrieve all authors from published papers
* @param $schedConfId int
* @return $authors array Author Objects
*/
function getPublishedPaperAuthors($schedConfId)
{
$authors = array();
$result =& $this->retrieve('SELECT aa.* FROM paper_authors aa, published_papers pa WHERE aa.paper_id = pa.paper_id AND pa.sched_conf_id = ? ORDER BY pa.sched_conf_id', $schedConfId);
while (!$result->EOF) {
$row = $result->GetRowAssoc(false);
$author = new Author();
$author->setId($row['author_id']);
$author->setPaperId($row['paper_id']);
$author->setFirstName($row['first_name']);
$author->setMiddleName($row['middle_name']);
$author->setLastName($row['last_name']);
$author->setAffiliation($row['affiliation']);
$author->setEmail($row['email']);
$author->setBiography($row['biography']);
$author->setPrimaryContact($row['primary_contact']);
$author->setSequence($row['seq']);
$authors[] = $author;
$result->moveNext();
}
$result->Close();
unset($result);
return $authors;
}
示例7: execute
/**
* Save author
* @see Form::execute()
* @see Form::execute()
*/
function execute()
{
$authorDao = DAORegistry::getDAO('AuthorDAO');
$submission = $this->getSubmission();
$author = $this->getAuthor();
if (!$author) {
// this is a new submission contributor
$author = new Author();
$author->setSubmissionId($submission->getId());
$existingAuthor = false;
} else {
$existingAuthor = true;
if ($submission->getId() !== $author->getSubmissionId()) {
fatalError('Invalid author!');
}
}
$author->setFirstName($this->getData('firstName'));
$author->setMiddleName($this->getData('middleName'));
$author->setLastName($this->getData('lastName'));
$author->setSuffix($this->getData('suffix'));
$author->setAffiliation($this->getData('affiliation'), null);
// localized
$author->setCountry($this->getData('country'));
$author->setEmail($this->getData('email'));
$author->setUrl($this->getData('userUrl'));
$author->setOrcid($this->getData('orcid'));
$author->setUserGroupId($this->getData('userGroupId'));
$author->setBiography($this->getData('biography'), null);
// localized
$author->setPrimaryContact($this->getData('primaryContact') ? true : false);
$author->setIncludeInBrowse($this->getData('includeInBrowse') ? true : false);
// in order to be able to use the hook
parent::execute();
if ($existingAuthor) {
$authorDao->updateObject($author);
$authorId = $author->getId();
} else {
$authorId = $authorDao->insertObject($author);
}
return $authorId;
}
示例8: execute
/**
* Save changes to article.
* @return int the article ID
*/
function execute()
{
$articleDao =& DAORegistry::getDAO('ArticleDAO');
$authorDao =& DAORegistry::getDAO('AuthorDAO');
// Update article
$article =& $this->article;
$article->setTitle($this->getData('title'), null);
// Localized
$article->setAbstract($this->getData('abstract'), null);
// Localized
$article->setDiscipline($this->getData('discipline'), null);
// Localized
$article->setSubjectClass($this->getData('subjectClass'), null);
// Localized
$article->setSubject($this->getData('subject'), null);
// Localized
$article->setCoverageGeo($this->getData('coverageGeo'), null);
// Localized
$article->setCoverageChron($this->getData('coverageChron'), null);
// Localized
$article->setCoverageSample($this->getData('coverageSample'), null);
// Localized
$article->setType($this->getData('type'), null);
// Localized
$article->setLanguage($this->getData('language'));
$article->setSponsor($this->getData('sponsor'), null);
// Localized
$article->setCitations($this->getData('citations'));
if ($article->getSubmissionProgress() <= $this->step) {
$article->stampStatusModified();
$article->setSubmissionProgress($this->step + 1);
}
// Update authors
$authors = $this->getData('authors');
for ($i = 0, $count = count($authors); $i < $count; $i++) {
if ($authors[$i]['authorId'] > 0) {
// Update an existing author
$author =& $article->getAuthor($authors[$i]['authorId']);
$isExistingAuthor = true;
} else {
// Create a new author
$author = new Author();
$isExistingAuthor = false;
}
if ($author != null) {
$author->setArticleId($article->getId());
$author->setFirstName($authors[$i]['firstName']);
$author->setMiddleName($authors[$i]['middleName']);
$author->setLastName($authors[$i]['lastName']);
$author->setAffiliation($authors[$i]['affiliation']);
$author->setCountry($authors[$i]['country']);
$author->setEmail($authors[$i]['email']);
$author->setUrl($authors[$i]['url']);
if (array_key_exists('competingInterests', $authors[$i])) {
$author->setCompetingInterests($authors[$i]['competingInterests'], null);
}
$author->setBiography($authors[$i]['biography'], null);
$author->setPrimaryContact($this->getData('primaryContact') == $i ? 1 : 0);
$author->setSequence($authors[$i]['seq']);
if ($isExistingAuthor == false) {
$article->addAuthor($author);
}
}
unset($author);
}
// Remove deleted authors
$deletedAuthors = explode(':', $this->getData('deletedAuthors'));
for ($i = 0, $count = count($deletedAuthors); $i < $count; $i++) {
$article->removeAuthor($deletedAuthors[$i]);
}
parent::execute();
// Save the article
$articleDao->updateArticle($article);
return $this->articleId;
}
示例9: getPublishedArticleAuthors
/**
* Retrieve all authors from published articles
* @param $issueId int
* @return $authors array Author Objects
*/
function getPublishedArticleAuthors($issueId)
{
$primaryLocale = Locale::getPrimaryLocale();
$locale = Locale::getLocale();
$authors = array();
$result =& $this->retrieve('SELECT aa.*
FROM authors aa
LEFT JOIN published_articles pa ON (pa.article_id = aa.submission_id)
WHERE pa.issue_id = ? ORDER BY pa.issue_id', (int) $issueId);
while (!$result->EOF) {
$row = $result->GetRowAssoc(false);
$author = new Author();
$author->setId($row['author_id']);
$author->setSubmissionId($row['article_id']);
$author->setFirstName($row['first_name']);
$author->setMiddleName($row['middle_name']);
$author->setLastName($row['last_name']);
$author->setAffiliation($row['affiliation_pl'], $primaryLocale);
$author->setAffiliation($row['affiliation_l'], $locale);
$author->setEmail($row['email']);
$author->setBiography($row['biography']);
$author->setPrimaryContact($row['primary_contact']);
$author->setSequence($row['seq']);
$authors[] = $author;
$result->moveNext();
}
$result->Close();
unset($result);
return $authors;
}
示例10: execute
/**
* Save submissionContributor
* @see Form::execute()
* @see Form::execute()
*/
function execute()
{
$authorDao =& DAORegistry::getDAO('AuthorDAO');
$monograph = $this->getMonograph();
$submissionContributor =& $this->getSubmissionContributor();
if (!$submissionContributor) {
// this is a new submission contributor
$submissionContributor = new Author();
$submissionContributor->setMonographId($monograph->getId());
$existingSubmissionContributor = false;
} else {
$existingSubmissionContributor = true;
}
assert($monograph->getId() == $submissionContributor->getMonographId());
$submissionContributor->setFirstName($this->getData('firstName'));
$submissionContributor->setMiddleName($this->getData('middleName'));
$submissionContributor->setLastName($this->getData('lastName'));
$submissionContributor->setAffiliation($this->getData('affiliation'), Locale::getLocale());
// localized
$submissionContributor->setCountry($this->getData('country'));
$submissionContributor->setEmail($this->getData('email'));
$submissionContributor->setUrl($this->getData('url'));
$submissionContributor->setUserGroupId($this->getData('userGroupId'));
$submissionContributor->setBiography($this->getData('biography'), Locale::getLocale());
// localized
$submissionContributor->setPrimaryContact($this->getData('primaryContact') ? true : false);
if ($existingSubmissionContributor) {
$authorDao->updateAuthor($submissionContributor);
$authorId = $submissionContributor->getId();
} else {
$authorId = $authorDao->insertAuthor($submissionContributor);
}
return $authorId;
}
示例11: execute
/**
* Save settings.
*/
function execute($editArticleId)
{
$this->editArticleID = $editArticleId;
$articleDao =& DAORegistry::getDAO('ArticleDAO');
$signoffDao =& DAORegistry::getDAO('SignoffDAO');
$sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO');
$application =& PKPApplication::getApplication();
$request =& $application->getRequest();
$user =& $request->getUser();
$router =& $request->getRouter();
$journal =& $router->getContext($request);
$article = new Article();
$article->setLocale($journal->getPrimaryLocale());
// FIXME in bug #5543
$article->setUserId($user->getId());
$article->setJournalId($journal->getId());
$article->setSectionId($this->getData('sectionId'));
$article->setLanguage(String::substr($journal->getPrimaryLocale(), 0, 2));
$article->setTitle($this->getData('title'), null);
// Localized
//add Original Journal to Abstract
$orig_journal = $this->getData('originalJournal');
$abstr = $this->getData('abstract');
foreach (array_keys($abstr) as $abs_key) {
$abstr[$abs_key] .= ' <p id="originalPub"> ' . $orig_journal . ' </p> ';
// $abstr[$abs_key] .= ' <p id="originalPub"> ' . $orig_journal[$abs_key]. ' </p> ';
//OriginalJournal in EditPlugin only a string and not an array...
$this->setData('abstract', $abstr);
}
$article->setAbstract($this->getData('abstract'), null);
// Localized
$article->setDiscipline($this->getData('discipline'), null);
// Localized
$article->setSubjectClass($this->getData('subjectClass'), null);
// Localized
$article->setSubject($this->getData('subject'), null);
// Localized
$article->setCoverageGeo($this->getData('coverageGeo'), null);
// Localized
$article->setCoverageChron($this->getData('coverageChron'), null);
// Localized
$article->setCoverageSample($this->getData('coverageSample'), null);
// Localized
$article->setType($this->getData('type'), null);
// Localized
$article->setSponsor($this->getData('sponsor'), null);
// Localized
$article->setCitations($this->getData('citations'));
$article->setPages($this->getData('pages'));
// Set some default values so the ArticleDAO doesn't complain when adding this article
$article->setDateSubmitted(Core::getCurrentDate());
$article->setStatus(STATUS_PUBLISHED);
$article->setSubmissionProgress(0);
$article->stampStatusModified();
$article->setCurrentRound(1);
$article->setFastTracked(1);
$article->setHideAuthor(0);
$article->setCommentsStatus(0);
// As article has an ID already set it
$article->setId($this->editArticleID);
$articleId = $this->editArticleID;
//delete prior Authors to prevent from double saving the same authors
$authorDao =& DAORegistry::getDAO('AuthorDAO');
$authorDao->deleteAuthorsByArticle($articleId);
// Add authors
$authors = $this->getData('authors');
for ($i = 0, $count = count($authors); $i < $count; $i++) {
if ($authors[$i]['authorId'] > 0) {
// Update an existing author
$author =& $article->getAuthor($authors[$i]['authorId']);
$isExistingAuthor = true;
} else {
// Create a new author
$author = new Author();
$isExistingAuthor = false;
}
if ($author != null) {
$author->setSubmissionId($articleId);
$author->setFirstName($authors[$i]['firstName']);
$author->setMiddleName($authors[$i]['middleName']);
$author->setLastName($authors[$i]['lastName']);
if (array_key_exists('affiliation', $authors[$i])) {
$author->setAffiliation($authors[$i]['affiliation'], null);
}
$author->setCountry($authors[$i]['country']);
$author->setEmail($authors[$i]['email']);
$author->setUrl($authors[$i]['url']);
if (array_key_exists('competingInterests', $authors[$i])) {
$author->setCompetingInterests($authors[$i]['competingInterests'], null);
}
$author->setBiography($authors[$i]['biography'], null);
$author->setPrimaryContact($this->getData('primaryContact') == $i ? 1 : 0);
$author->setSequence($authors[$i]['seq']);
if ($isExistingAuthor == false) {
$article->addAuthor($author);
}
}
//.........这里部分代码省略.........
示例12: execute
/**
* Save changes to article.
* @return int the article ID
*/
function execute()
{
$authorSubmissionDao =& DAORegistry::getDAO('AuthorSubmissionDAO');
if (isset($this->article)) {
// Update existing article
$this->article->setLocale($this->getData('locale'));
$this->article->setCommentsToEditor($this->getData('commentsToEditor'));
if ($this->article->getSubmissionProgress() <= $this->step) {
$this->article->stampStatusModified();
$this->article->setSubmissionProgress($this->step + 1);
}
$lastSectionDecision = $this->article->getLastSectionDecision();
$lastSectionDecision->setSectionId($this->getData('sectionId'));
$authorSubmissionDao->updateAuthorSubmission($this->article);
} else {
// Insert new article
$journal =& Request::getJournal();
$user =& Request::getUser();
$this->article = new AuthorSubmission();
$this->article->setLocale($this->getData('locale'));
$this->article->setUserId($user->getId());
$this->article->setJournalId($journal->getId());
$this->article->stampStatusModified();
$this->article->setSubmissionProgress($this->step + 1);
$this->article->setLanguage(String::substr($this->article->getLocale(), 0, 2));
$this->article->setCommentsToEditor($this->getData('commentsToEditor'));
// Set new Section Decision
$sectionDecision =& new SectionDecision();
$sectionDecision->setReviewType(REVIEW_TYPE_INITIAL);
$sectionDecision->setRound(1);
$sectionDecision->setSectionId($this->getData('sectionId'));
$sectionDecision->setDecision(0);
$sectionDecision->setDateDecided(date(Core::getCurrentDate()));
$this->article->addDecision($sectionDecision);
// Set user to initial author
$author = new Author();
$author->setFirstName($user->getFirstName());
$author->setMiddleName($user->getMiddleName());
$author->setLastName($user->getLastName());
$author->setAffiliation($user->getLocalizedAffiliation());
$author->setEmail($user->getEmail());
$author->setPhoneNumber($user->getPhone());
$author->setBiography($user->getBiography(null), null);
$author->setPrimaryContact(1);
$this->article->addAuthor($author);
$authorSubmissionDao->insertAuthorSubmission($this->article);
$this->articleId = $this->article->getId();
}
return $this->articleId;
}
示例13: testToXml
/**
* @covers OAIMetadataFormat_DC
* @covers Dc11SchemaArticleAdapter
*/
public function testToXml()
{
//
// Create test data.
//
// Author
import('classes.article.Author');
$author = new Author();
$author->setFirstName('author-firstname');
$author->setLastName('author-lastname');
$author->setAffiliation('author-affiliation', 'en_US');
// Supplementary file
import('classes.article.SuppFile');
$suppFile = new SuppFile();
$suppFile->setFileId(999);
// Article
import('classes.article.PublishedArticle');
$article = $this->getMock('PublishedArticle', array('getBestArticleId'));
/* @var $article PublishedArticle */
$article->expects($this->any())->method('getBestArticleId')->will($this->returnValue(9));
$article->setId(9);
$article->addAuthor($author);
$article->setSuppFiles(array($suppFile));
$article->setPages(15);
$article->setType('art-type', 'en_US');
$article->setTitle('article-title-en', 'en_US');
$article->setTitle('article-title-de', 'de_DE');
$article->setDiscipline('article-discipline', 'en_US');
$article->setSubject('article-subject', 'en_US');
$article->setSubjectClass('article-subject-class', 'en_US');
$article->setAbstract('article-abstract', 'en_US');
$article->setSponsor('article-sponsor', 'en_US');
$article->setStoredDOI('article-doi');
$article->setLanguage('en_US');
$article->setCoverageGeo('article-coverage-geo', 'en_US');
$article->setCoverageChron('article-coverage-chron', 'en_US');
$article->setCoverageSample('article-coverage-sample', 'en_US');
// Galleys
import('classes.article.ArticleGalley');
$galley = new ArticleGalley();
$galley->setFileType('galley-filetype');
$galleys = array($galley);
// Journal
import('classes.journal.Journal');
$journal = $this->getMock('Journal', array('getSetting'));
/* @var $journal Journal */
$journal->expects($this->any())->method('getSetting')->will($this->returnCallback(array($this, 'getJournalSetting')));
$journal->setPrimaryLocale('en_US');
$journal->setPath('journal-path');
// Section
import('classes.journal.Section');
$section = new Section();
$section->setIdentifyType('section-identify-type', 'en_US');
// Issue
import('classes.issue.Issue');
$issue = $this->getMock('Issue', array('getIssueIdentification'));
/* @var $issue Issue */
$issue->expects($this->any())->method('getIssueIdentification')->will($this->returnValue('issue-identification'));
$issue->setDatePublished('2010-11-05');
//
// Create infrastructural support objects
//
// Router
import('lib.pkp.classes.core.PKPRouter');
$router = $this->getMock('PKPRouter', array('url'));
$application = PKPApplication::getApplication();
$router->setApplication($application);
$router->expects($this->any())->method('url')->will($this->returnValue('router-url'));
// Request
import('classes.core.Request');
$request = $this->getMock('Request', array('getRouter'));
$request->expects($this->any())->method('getRouter')->will($this->returnValue($router));
Registry::set('request', $request);
//
// Create mock DAOs
//
// Create a mocked OAIDAO that returns our test data.
import('classes.oai.ojs.OAIDAO');
$oaiDao = $this->getMock('OAIDAO', array('getJournal', 'getSection', 'getIssue'));
$oaiDao->expects($this->any())->method('getJournal')->will($this->returnValue($journal));
$oaiDao->expects($this->any())->method('getSection')->will($this->returnValue($section));
$oaiDao->expects($this->any())->method('getIssue')->will($this->returnValue($issue));
DAORegistry::registerDAO('OAIDAO', $oaiDao);
// Create a mocked ArticleGalleyDAO that returns our test data.
import('classes.article.ArticleGalleyDAO');
$articleGalleyDao = $this->getMock('OAIDAO', array('getGalleysByArticle'));
$articleGalleyDao->expects($this->any())->method('getGalleysByArticle')->will($this->returnValue($galleys));
DAORegistry::registerDAO('ArticleGalleyDAO', $articleGalleyDao);
//
// Test
//
// OAI record
$record = new OAIRecord();
$record->setData('article', $article);
$record->setData('galleys', $galleys);
$record->setData('journal', $journal);
//.........这里部分代码省略.........
示例14: execute
/**
* Save changes to submission.
* @return int the monograph ID
*/
function execute()
{
$monographDao =& DAORegistry::getDAO('MonographDAO');
if (isset($this->monograph)) {
// Update existing monograph
$this->monograph->setSeriesId($this->getData('seriesId'));
$this->monograph->setLocale($this->getData('locale'));
$this->monograph->setCommentsToEditor($this->getData('commentsToEditor'));
if ($this->monograph->getSubmissionProgress() <= $this->step) {
$this->monograph->stampStatusModified();
$this->monograph->setSubmissionProgress($this->step + 1);
}
$monographDao->updateMonograph($this->monograph);
} else {
$press =& Request::getPress();
$user =& Request::getUser();
// Get the session and the user group id currently used
$sessionMgr =& SessionManager::getManager();
$session =& $sessionMgr->getUserSession();
// Create new monograph
$this->monograph = new Monograph();
$this->monograph->setLocale($this->getData('locale'));
$this->monograph->setUserId($user->getId());
$this->monograph->setPressId($press->getId());
$this->monograph->setSeriesId($this->getData('seriesId'));
$this->monograph->stampStatusModified();
$this->monograph->setSubmissionProgress($this->step + 1);
$this->monograph->setLanguage(String::substr($this->monograph->getLocale(), 0, 2));
$this->monograph->setCommentsToEditor($this->getData('commentsToEditor'));
$this->monograph->setWorkType($this->getData('isEditedVolume') ? WORK_TYPE_EDITED_VOLUME : WORK_TYPE_AUTHORED_WORK);
$this->monograph->setCurrentStageId(WORKFLOW_STAGE_ID_SUBMISSION);
// Get a default user group id for an Author
$userGroupDao =& DAORegistry::getDAO('UserGroupDAO');
$defaultAuthorGroup =& $userGroupDao->getDefaultByRoleId($press->getId(), ROLE_ID_AUTHOR);
// Set user to initial author
$authorDao =& DAORegistry::getDAO('AuthorDAO');
$user =& Request::getUser();
$author = new Author();
$author->setFirstName($user->getFirstName());
$author->setMiddleName($user->getMiddleName());
$author->setLastName($user->getLastName());
$author->setAffiliation($user->getAffiliation(null), null);
$author->setCountry($user->getCountry());
$author->setEmail($user->getEmail());
$author->setUrl($user->getUrl());
$author->setUserGroupId($defaultAuthorGroup->getId());
$author->setBiography($user->getBiography(null), null);
$author->setPrimaryContact(1);
$monographDao->insertMonograph($this->monograph);
$this->monographId = $this->monograph->getId();
$author->setSubmissionId($this->monographId);
$authorDao->insertAuthor($author);
}
return $this->monographId;
}
示例15: importPapers
/**
* Import papers (including metadata and files).
*/
function importPapers()
{
if ($this->hasOption('verbose')) {
printf("Importing papers\n");
}
import('classes.file.PaperFileManager');
import('classes.search.PaperSearchIndex');
$userDao =& DAORegistry::getDAO('UserDAO');
$roleDao =& DAORegistry::getDAO('RoleDAO');
$trackDao =& DAORegistry::getDAO('TrackDAO');
$paperDao =& DAORegistry::getDAO('PaperDAO');
$publishedPaperDao =& DAORegistry::getDAO('PublishedPaperDAO');
$galleyDao =& DAORegistry::getDAO('PaperGalleyDAO');
$unassignedTrackId = null;
$result =& $this->importDao->retrieve('SELECT * FROM papers ORDER by id');
while (!$result->EOF) {
$row =& $result->fields;
$schedConf =& $this->schedConfMap[$row['cf']];
$schedConfId = $schedConf->getId();
// Bring in the primary user for this paper.
$user = $userDao->getUserByUsername(Core::cleanVar($row['login']));
if (!$user) {
unset($user);
$user = new User();
$user->setUsername(Core::cleanVar($row['login']));
$user->setFirstName(Core::cleanVar($row['first_name']));
$user->setLastName(Core::cleanVar($row['surname']));
$user->setAffiliation(Core::cleanVar($row['affiliation']), Locale::getLocale());
$user->setEmail(Core::cleanVar($row['email']));
$user->setUrl(Core::cleanVar($row['url']));
$user->setBiography(Core::cleanVar($row['bio']), Locale::getLocale());
$user->setLocales(array());
$user->setDateRegistered($row['created']);
$user->setDateLastLogin($row['created']);
$user->setMustChangePassword(1);
$password = Validation::generatePassword();
$user->setPassword(Validation::encryptCredentials($user->getUsername(), $password));
if ($this->hasOption('emailUsers')) {
import('classes.mail.MailTemplate');
$mail = new MailTemplate('USER_REGISTER');
$mail->setFrom($schedConf->getSetting('contactEmail'), $schedConf->getSetting('contactName'));
$mail->assignParams(array('username' => $user->getUsername(), 'password' => $password, 'conferenceName' => $schedConf->getFullTitle()));
$mail->addRecipient($user->getEmail(), $user->getFullName());
$mail->send();
}
$user->setDisabled(0);
$otherUser =& $userDao->getUserByEmail(Core::cleanVar($row['email']));
if ($otherUser !== null) {
// User exists with this email -- munge it to make unique
$user->setEmail('ocs-' . Core::cleanVar($row['login']) . '+' . Core::cleanVar($row['email']));
$this->conflicts[] = array(&$otherUser, &$user);
}
unset($otherUser);
$userDao->insertUser($user);
// Make this user a author
$role = new Role();
$role->setSchedConfId($schedConf->getId());
$role->setConferenceId($schedConf->getConferenceId());
$role->setUserId($user->getId());
$role->setRoleId(ROLE_ID_AUTHOR);
$roleDao->insertRole($role);
unset($role);
}
$userId = $user->getId();
// Bring in the basic entry for the paper
$paper = new Paper();
$paper->setUserId($userId);
$paper->setLocale(Locale::getPrimaryLocale());
$paper->setSchedConfId($schedConfId);
$oldTrackId = $row['primary_track_id'];
if (!$oldTrackId || !isset($this->trackMap[$oldTrackId])) {
$oldTrackId = $row['secondary_track_id'];
}
if (!$oldTrackId || !isset($this->trackMap[$oldTrackId])) {
if (!$unassignedTrackId) {
// Create an "Unassigned" track to use for submissions
// that didn't have a track in OCS 1.x.
$track = new Track();
$track->setSchedConfId($schedConf->getId());
$track->setTitle('UNASSIGNED', Locale::getLocale());
$track->setSequence(REALLY_BIG_NUMBER);
$track->setDirectorRestricted(1);
$track->setMetaReviewed(1);
$unassignedTrackId = $trackDao->insertTrack($track);
}
$newTrackId = $unassignedTrackId;
} else {
$newTrackId = $this->trackMap[$oldTrackId];
}
$paper->setTrackId($newTrackId);
$paper->setTitle(Core::cleanVar($row['title']), Locale::getLocale());
$paper->setAbstract(Core::cleanVar($row['abstract']), Locale::getLocale());
$paper->setDiscipline(Core::cleanVar($row['discipline']), Locale::getLocale());
$paper->setSponsor(Core::cleanVar($row['sponsor']), Locale::getLocale());
$paper->setSubject(Core::cleanVar($row['topic']), Locale::getLocale());
$paper->setLanguage(Core::cleanVar($row['language']));
$paper->setDateSubmitted($row['created']);
//.........这里部分代码省略.........