16 import(
'lib.pkp.classes.plugins.GenericPlugin');
22 function register($category, $path, $mainContextId =
null) {
23 if (parent::register($category, $path, $mainContextId)) {
48 $monograph =& $args[1];
49 $publication = $monograph->getCurrentPublication();
50 $publicationFormat =& $args[2];
51 $submissionFile =& $args[3];
53 if ($submissionFile->getFileType() ==
'application/pdf') {
57 $chapter = $templateMgr->getTemplateVars(
'chapter');
58 $series = $templateMgr->getTemplateVars(
'series');
60 $templateMgr->addHeader(
'googleScholarRevision',
'<meta name="gs_meta_revision" content="1.1"/>');
61 $templateMgr->addHeader(
'googleScholarPressTitle',
'<meta name="citation_journal_title" content="' . htmlspecialchars($press->getName($press->getPrimaryLocale())) .
'"/>');
62 if ($series && $issn = $series->getOnlineISSN()) {
63 $templateMgr->addHeader(
'googleScholarIssn',
'<meta name="citation_issn" content="' . htmlspecialchars($issn) .
'"/> ');
66 $identificationCodes = $publicationFormat->getIdentificationCodes();
67 while ($identificationCode = $identificationCodes->next()) {
68 if ($identificationCode->getCode() ==
"02" || $identificationCode->getCode() ==
"15") {
70 $templateMgr->addHeader(
'googleScholarIsbn' . $identificationCode->getCode(),
'<meta name="citation_isbn" content="' . htmlspecialchars($identificationCode->getValue()) .
'"/>');
74 foreach ($chapter?$chapter->getAuthors()->toArray():$publication->getData(
'authors') as $i => $author) {
75 $templateMgr->addHeader(
'googleScholarAuthor' . $i,
'<meta name="citation_author" content="' . htmlspecialchars($author->getFullName(
false)) .
'"/>');
76 if ($affiliation = htmlspecialchars($author->getAffiliation($publication->getData(
'locale')))) {
77 $templateMgr->addHeader(
'googleScholarAuthor' . $i .
'Affiliation',
'<meta name="citation_author_institution" content="' . $affiliation .
'"/>');
82 $templateMgr->addHeader(
'googleScholarTitle',
'<meta name="citation_title" content="' . htmlspecialchars($chapter->getTitle($publication->getData(
'locale'))) .
'"/>');
84 $templateMgr->addHeader(
'googleScholarTitle',
'<meta name="citation_title" content="' . htmlspecialchars($publication->getData(
'title', $publication->getData(
'locale'))) .
'"/>');
87 $templateMgr->addHeader(
'googleScholarDate',
'<meta name="citation_publication_date" content="' . strftime(
'%Y/%m/%d', strtotime($publication->getData(
'datePublished'))) .
'"/>');
89 foreach((array) $templateMgr->getTemplateVars(
'pubIdPlugins') as $pubIdPlugin) {
90 if ($pubId = $monograph->getStoredPubId($pubIdPlugin->getPubIdType())) {
91 $templateMgr->addHeader(
'googleScholarPubId' . $pubIdPlugin->getPubIdDisplayType(),
'<meta name="citation_' . htmlspecialchars(strtolower($pubIdPlugin->getPubIdDisplayType())) .
'" content="' . htmlspecialchars($pubId) .
'"/>');
95 if ($languages = $publication->getData(
'languages'))
foreach ($languages as $language) {
96 $templateMgr->addHeader(
'googleScholarLanguage',
'<meta name="citation_language" content="' . htmlspecialchars($language) .
'"/>');
102 if ($subjects = $submissionSubjectDao->getSubjects($publication->getId(), $supportedLocales))
foreach ($subjects as $locale => $subjectLocale) {
103 foreach ($subjectLocale as $gsKeyword) $templateMgr->addHeader(
'googleScholarSubject' . $i++,
'<meta name="citation_keywords" xml:lang="' . htmlspecialchars(substr($locale, 0, 2)) .
'" content="' . htmlspecialchars($gsKeyword) .
'"/>');
108 if ($keywords = $submissionKeywordDao->getKeywords($publication->getId(), $supportedLocales))
foreach ($keywords as $locale => $keywordLocale) {
109 foreach ($keywordLocale as $gsKeyword) $templateMgr->addHeader(
'googleScholarKeyword' . $i++,
'<meta name="citation_keywords" xml:lang="' . htmlspecialchars(substr($locale, 0, 2)) .
'" content="' . htmlspecialchars($gsKeyword) .
'"/>');
112 $templateMgr->addHeader(
'googleScholarPdfUrl' . $i++,
'<meta name="citation_pdf_url" content="' .
$request->url(
null,
'catalog',
'download', array($monograph->getBestId(), $publicationFormat->getId(), $submissionFile->getFileIdAndRevision())) .
'"/>');
123 return __(
'plugins.generic.googleScholar.name');
131 return __(
'plugins.generic.googleScholar.description');