first commit

This commit is contained in:
CHIEFSOFT\ameye
2024-06-08 17:09:23 -04:00
commit df3a033196
17887 changed files with 8637778 additions and 0 deletions
@@ -0,0 +1,50 @@
{**
* templates/frontend/components/breadcrumbs_article.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief Display a breadcrumb nav item showing the current page. This basic
* version is for top-level pages which only need to show the Home link. For
* category- and series-specific breadcrumb generation, see
* templates/frontend/components/breadcrumbs_catalog.tpl.
*
* @uses $currentTitle string The title to use for the current page.
* @uses $currentTitleKey string Translation key for title of current page.
* @uses $issue Issue Issue this article was published in.
*}
<nav class="cmp_breadcrumbs" role="navigation" aria-label="{translate key="navigation.breadcrumbLabel"}">
<ol>
<li>
<a href="{url page="index" router=\PKP\core\PKPApplication::ROUTE_PAGE}">
{translate key="common.homepageNavigationLabel"}
</a>
<span class="separator">{translate key="navigation.breadcrumbSeparator"}</span>
</li>
<li>
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="issue" op="archive"}">
{translate key="navigation.archives"}
</a>
<span class="separator">{translate key="navigation.breadcrumbSeparator"}</span>
</li>
{if $issue}
<li>
<a href="{url page="issue" op="view" path=$issue->getBestIssueId()}">
{$issue->getIssueIdentification()}
</a>
<span class="separator">{translate key="navigation.breadcrumbSeparator"}</span>
</li>
{/if}
<li class="current" aria-current="page">
<span aria-current="page">
{if $currentTitleKey}
{translate key=$currentTitleKey}
{else}
{$currentTitle|escape}
{/if}
</span>
</li>
</ol>
</nav>
@@ -0,0 +1,41 @@
{**
* templates/frontend/components/breadcrumbs_issue.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief Display a breadcrumb nav item showing the current page. This basic
* version is for top-level pages which only need to show the Home link. For
* category- and series-specific breadcrumb generation, see
* templates/frontend/components/breadcrumbs_catalog.tpl.
*
* @uses $currentTitle string The title to use for the current page.
* @uses $currentTitleKey string Translation key for title of current page.
*}
<nav class="cmp_breadcrumbs" role="navigation" aria-label="{translate key="navigation.breadcrumbLabel"}">
<ol>
<li>
<a href="{url page="index" router=\PKP\core\PKPApplication::ROUTE_PAGE}">
{translate key="common.homepageNavigationLabel"}
</a>
<span class="separator">{translate key="navigation.breadcrumbSeparator"}</span>
</li>
<li>
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="issue" op="archive"}">
{translate key="navigation.archives"}
</a>
<span class="separator">{translate key="navigation.breadcrumbSeparator"}</span>
</li>
<li class="current" aria-current="page">
<span aria-current="page">
{if $currentTitleKey}
{translate key=$currentTitleKey}
{else}
{$currentTitle|escape}
{/if}
</span>
</li>
</ol>
</nav>
@@ -0,0 +1,21 @@
{**
* templates/frontend/components/notification.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief View of an embedded notification element. Intended to be basic and highly
* reusable.
*
* @uses $type string A class which will be added to the notification element
* @uses $message string The notification message
* @uses $messageKey string Optional translation key to generate the message
*}
<div class="cmp_notification {$type|escape|replace:' ':'_'}">
{if $messageKey}
{translate key=$messageKey}
{else}
{$message}
{/if}
</div>
@@ -0,0 +1,67 @@
{**
* templates/frontend/components/primaryNavMenu.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Primary navigation menu list for OJS
*}
<ul id="navigationPrimary" class="pkp_navigation_primary pkp_nav_list">
{if $enableAnnouncements}
<li>
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="announcement"}">
{translate key="announcement.announcements"}
</a>
</li>
{/if}
{if $currentJournal}
{if $currentJournal->getData('publishingMode') != \APP\journal\Journal::PUBLISHING_MODE_NONE}
<li>
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="issue" op="current"}">
{translate key="navigation.current"}
</a>
</li>
<li>
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="issue" op="archive"}">
{translate key="navigation.archives"}
</a>
</li>
{/if}
<li>
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="about"}">
{translate key="navigation.about"}
</a>
<ul>
<li>
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="about"}">
{translate key="about.aboutContext"}
</a>
</li>
{if $currentJournal->getLocalizedData('editorialTeam')}
<li>
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="about" op="editorialTeam"}">
{translate key="about.editorialTeam"}
</a>
</li>
{/if}
<li>
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="about" op="submissions"}">
{translate key="about.submissions"}
</a>
</li>
{if $currentJournal->getData('mailingAddress') || $currentJournal->getData('contactName')}
<li>
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="about" op="contact"}">
{translate key="about.contact"}
</a>
</li>
{/if}
</ul>
</li>
{/if}
</ul>
@@ -0,0 +1,26 @@
{**
* templates/frontend/components/skipLinks.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Skip links to aid navigation when tabbing for screen reader accessibility
*}
<nav class="cmp_skip_to_content" aria-label="{translate key="navigation.skip.description"}">
<a href="#pkp_content_main">{translate key="navigation.skip.main"}</a>
<a href="#siteNav">{translate key="navigation.skip.nav"}</a>
{if !$requestedPage || $requestedPage === 'index'}
{if $activeTheme && $activeTheme->getOption('showDescriptionInJournalIndex')}
<a href="#homepageAbout">{translate key="navigation.skip.about"}</a>
{/if}
{if $numAnnouncementsHomepage && $announcements|@count}
<a href="#homepageAnnouncements">{translate key="navigation.skip.announcements"}</a>
{/if}
{if $issue}
<a href="#homepageIssue">{translate key="navigation.skip.issue"}</a>
{/if}
{/if}
<a href="#pkp_content_footer">{translate key="navigation.skip.footer"}</a>
</nav>
@@ -0,0 +1,62 @@
{**
* templates/frontend/components/subscriptionContact.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief Display the contact details for a journal's subscriptions
*
* @uses $subscriptionAdditionalInformation string HTML text description
* subcription information
* @uses $subscriptionMailingAddress string Contact address for subscriptions
* @uses $subscriptionName string Contact name for subscriptions
* @uses $subscriptionPhone string Contact phone number for subscriptions
* @uses $subscriptionEmail string Contact email address for subscriptions
*}
<div class="cmp_subscription_contact">
{if $subscriptionAdditionalInformation}
<div class="description">
{$subscriptionAdditionalInformation|strip_unsafe_html}
</div>
{/if}
{if $subscriptionName || $subscriptionPhone || $subscriptionEmail}
<div class="contact">
<h3>
{translate key="about.subscriptionsContact"}
</h3>
{if $subscriptionName}
<div class="name">
{$subscriptionName|escape}
</div>
{/if}
{if $subscriptionMailingAddress}
<div class="address">
{$subscriptionMailingAddress|nl2br|strip_unsafe_html}
</div>
{/if}
{if $subscriptionPhone}
<div class="phone">
<span class="label">
{translate key="about.contact.phone"}
</span>
<span class="value">
{$subscriptionPhone|escape}
</span>
</div>
{/if}
{if $subscriptionEmail}
<div class="email">
<a href="mailto:{$subscriptionEmail|escape}">
{$subscriptionEmail|escape}
</a>
</div>
{/if}
</div>
{/if}
</div>
@@ -0,0 +1,459 @@
{**
* templates/frontend/objects/article_details.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief View of an Article which displays all details about the article.
* Expected to be primary object on the page.
*
* Many journals will want to add custom data to this object, either through
* plugins which attach to hooks on the page or by editing the template
* themselves. In order to facilitate this, a flexible layout markup pattern has
* been implemented. If followed, plugins and other content can provide markup
* in a way that will render consistently with other items on the page. This
* pattern is used in the .main_entry column and the .entry_details column. It
* consists of the following:
*
* <!-- Wrapper class which provides proper spacing between components -->
* <div class="item">
* <!-- Title/value combination -->
* <div class="label">Abstract</div>
* <div class="value">Value</div>
* </div>
*
* All styling should be applied by class name, so that titles may use heading
* elements (eg, <h3>) or any element required.
*
* <!-- Example: component with multiple title/value combinations -->
* <div class="item">
* <div class="sub_item">
* <div class="label">DOI</div>
* <div class="value">12345678</div>
* </div>
* <div class="sub_item">
* <div class="label">Published Date</div>
* <div class="value">2015-01-01</div>
* </div>
* </div>
*
* <!-- Example: component with no title -->
* <div class="item">
* <div class="value">Whatever you'd like</div>
* </div>
*
* Core components are produced manually below, but can also be added via
* plugins using the hooks provided:
*
* Templates::Article::Main
* Templates::Article::Details
*
* @uses $article Submission This article
* @uses $publication Publication The publication being displayed
* @uses $firstPublication Publication The first published version of this article
* @uses $currentPublication Publication The most recently published version of this article
* @uses $issue Issue The issue this article is assigned to
* @uses $section Section The journal section this article is assigned to
* @uses $categories Category The category this article is assigned to
* @uses $primaryGalleys array List of article galleys that are not supplementary or dependent
* @uses $supplementaryGalleys array List of article galleys that are supplementary
* @uses $keywords array List of keywords assigned to this article
* @uses $pubIdPlugins Array of pubId plugins which this article may be assigned
* @uses $licenseTerms string License terms.
* @uses $licenseUrl string URL to license. Only assigned if license should be
* included with published submissions.
* @uses $ccLicenseBadge string An image and text with details about the license
*}
{if !$heading}
{assign var="heading" value="h3"}
{/if}
<article class="obj_article_details">
{* Indicate if this is only a preview *}
{if $publication->getData('status') !== \PKP\submission\PKPSubmission::STATUS_PUBLISHED}
<div class="cmp_notification notice">
{capture assign="submissionUrl"}{url page="workflow" op="access" path=$article->getId()}{/capture}
{translate key="submission.viewingPreview" url=$submissionUrl}
</div>
{* Notification that this is an old version *}
{elseif $currentPublication->getId() !== $publication->getId()}
<div class="cmp_notification notice">
{capture assign="latestVersionUrl"}{url page="article" op="view" path=$article->getBestId()}{/capture}
{translate key="submission.outdatedVersion"
datePublished=$publication->getData('datePublished')|date_format:$dateFormatShort
urlRecentVersion=$latestVersionUrl|escape
}
</div>
{/if}
<h1 class="page_title">
{$publication->getLocalizedTitle(null, 'html')|strip_unsafe_html}
</h1>
{if $publication->getLocalizedData('subtitle')}
<h2 class="subtitle">
{$publication->getLocalizedSubTitle(null, 'html')|strip_unsafe_html}
</h2>
{/if}
<div class="row">
<div class="main_entry">
{if $publication->getData('authors')}
<section class="item authors">
<h2 class="pkp_screen_reader">{translate key="article.authors"}</h2>
<ul class="authors">
{foreach from=$publication->getData('authors') item=author}
<li>
<span class="name">
{$author->getFullName()|escape}
</span>
{if $author->getLocalizedData('affiliation')}
<span class="affiliation">
{$author->getLocalizedData('affiliation')|escape}
{if $author->getData('rorId')}
<a href="{$author->getData('rorId')|escape}">{$rorIdIcon}</a>
{/if}
</span>
{/if}
{assign var=authorUserGroup value=$userGroupsById[$author->getData('userGroupId')]}
{if $authorUserGroup->getShowTitle()}
<span class="userGroup">
{$authorUserGroup->getLocalizedName()|escape}
</span>
{/if}
{if $author->getData('orcid')}
<span class="orcid">
{if $author->getData('orcidAccessToken')}
{$orcidIcon}
{/if}
<a href="{$author->getData('orcid')|escape}" target="_blank">
{$author->getData('orcid')|escape}
</a>
</span>
{/if}
</li>
{/foreach}
</ul>
</section>
{/if}
{* DOI *}
{assign var=doiObject value=$article->getCurrentPublication()->getData('doiObject')}
{if $doiObject}
{assign var="doiUrl" value=$doiObject->getData('resolvingUrl')|escape}
<section class="item doi">
<h2 class="label">
{capture assign=translatedDOI}{translate key="doi.readerDisplayName"}{/capture}
{translate key="semicolon" label=$translatedDOI}
</h2>
<span class="value">
<a href="{$doiUrl}">
{$doiUrl}
</a>
</span>
</section>
{/if}
{* Keywords *}
{if !empty($publication->getLocalizedData('keywords'))}
<section class="item keywords">
<h2 class="label">
{capture assign=translatedKeywords}{translate key="article.subject"}{/capture}
{translate key="semicolon" label=$translatedKeywords}
</h2>
<span class="value">
{foreach name="keywords" from=$publication->getLocalizedData('keywords') item="keyword"}
{$keyword|escape}{if !$smarty.foreach.keywords.last}{translate key="common.commaListSeparator"}{/if}
{/foreach}
</span>
</section>
{/if}
{* Abstract *}
{if $publication->getLocalizedData('abstract')}
<section class="item abstract">
<h2 class="label">{translate key="article.abstract"}</h2>
{$publication->getLocalizedData('abstract')|strip_unsafe_html}
</section>
{/if}
{call_hook name="Templates::Article::Main"}
{* Usage statistics chart*}
{if $activeTheme->getOption('displayStats') != 'none'}
{$activeTheme->displayUsageStatsGraph($article->getId())}
<section class="item downloads_chart">
<h2 class="label">
{translate key="plugins.themes.default.displayStats.downloads"}
</h2>
<div class="value">
<canvas class="usageStatsGraph" data-object-type="Submission" data-object-id="{$article->getId()|escape}"></canvas>
<div class="usageStatsUnavailable" data-object-type="Submission" data-object-id="{$article->getId()|escape}">
{translate key="plugins.themes.default.displayStats.noStats"}
</div>
</div>
</section>
{/if}
{* Author biographies *}
{assign var="hasBiographies" value=0}
{foreach from=$publication->getData('authors') item=author}
{if $author->getLocalizedData('biography')}
{assign var="hasBiographies" value=$hasBiographies+1}
{/if}
{/foreach}
{if $hasBiographies}
<section class="item author_bios">
<h2 class="label">
{if $hasBiographies > 1}
{translate key="submission.authorBiographies"}
{else}
{translate key="submission.authorBiography"}
{/if}
</h2>
<ul class="authors">
{foreach from=$publication->getData('authors') item=author}
{if $author->getLocalizedData('biography')}
<li class="sub_item">
<div class="label">
{if $author->getLocalizedData('affiliation')}
{capture assign="authorName"}{$author->getFullName()|escape}{/capture}
{capture assign="authorAffiliation"} {$author->getLocalizedData('affiliation')|escape} {/capture}
{translate key="submission.authorWithAffiliation" name=$authorName affiliation=$authorAffiliation}
{else}
{$author->getFullName()|escape}
{/if}
</div>
<div class="value">
{$author->getLocalizedData('biography')|strip_unsafe_html}
</div>
</li>
{/if}
{/foreach}
</ul>
</section>
{/if}
{* References *}
{if $parsedCitations || $publication->getData('citationsRaw')}
<section class="item references">
<h2 class="label">
{translate key="submission.citations"}
</h2>
<div class="value">
{if $parsedCitations}
{foreach from=$parsedCitations item="parsedCitation"}
<p>{$parsedCitation->getCitationWithLinks()|strip_unsafe_html} {call_hook name="Templates::Article::Details::Reference" citation=$parsedCitation}</p>
{/foreach}
{else}
{$publication->getData('citationsRaw')|escape|nl2br}
{/if}
</div>
</section>
{/if}
</div><!-- .main_entry -->
<div class="entry_details">
{* Article/Issue cover image *}
{if $publication->getLocalizedData('coverImage') || ($issue && $issue->getLocalizedCoverImage())}
<div class="item cover_image">
<div class="sub_item">
{if $publication->getLocalizedData('coverImage')}
{assign var="coverImage" value=$publication->getLocalizedData('coverImage')}
<img
src="{$publication->getLocalizedCoverImageUrl($article->getData('contextId'))|escape}"
alt="{$coverImage.altText|escape|default:''}"
>
{else}
<a href="{url page="issue" op="view" path=$issue->getBestIssueId()}">
<img src="{$issue->getLocalizedCoverImageUrl()|escape}" alt="{$issue->getLocalizedCoverImageAltText()|escape|default:''}">
</a>
{/if}
</div>
</div>
{/if}
{* Article Galleys *}
{if $primaryGalleys}
<div class="item galleys">
<h2 class="pkp_screen_reader">
{translate key="submission.downloads"}
</h2>
<ul class="value galleys_links">
{foreach from=$primaryGalleys item=galley}
<li>
{include file="frontend/objects/galley_link.tpl" parent=$article publication=$publication galley=$galley purchaseFee=$currentJournal->getData('purchaseArticleFee') purchaseCurrency=$currentJournal->getData('currency')}
</li>
{/foreach}
</ul>
</div>
{/if}
{if $supplementaryGalleys}
<div class="item galleys">
<h3 class="pkp_screen_reader">
{translate key="submission.additionalFiles"}
</h3>
<ul class="value supplementary_galleys_links">
{foreach from=$supplementaryGalleys item=galley}
<li>
{include file="frontend/objects/galley_link.tpl" parent=$article publication=$publication galley=$galley isSupplementary="1"}
</li>
{/foreach}
</ul>
</div>
{/if}
{if $publication->getData('datePublished')}
<div class="item published">
<section class="sub_item">
<h2 class="label">
{translate key="submissions.published"}
</h2>
<div class="value">
{* If this is the original version *}
{if $firstPublication->getId() === $publication->getId()}
<span>{$firstPublication->getData('datePublished')|date_format:$dateFormatShort}</span>
{* If this is an updated version *}
{else}
<span>{translate key="submission.updatedOn" datePublished=$firstPublication->getData('datePublished')|date_format:$dateFormatShort dateUpdated=$publication->getData('datePublished')|date_format:$dateFormatShort}</span>
{/if}
</div>
</section>
{if count($article->getPublishedPublications()) > 1}
<section class="sub_item versions">
<h2 class="label">
{translate key="submission.versions"}
</h2>
<ul class="value">
{foreach from=array_reverse($article->getPublishedPublications()) item=iPublication}
{capture assign="name"}{translate key="submission.versionIdentity" datePublished=$iPublication->getData('datePublished')|date_format:$dateFormatShort version=$iPublication->getData('version')}{/capture}
<li>
{if $iPublication->getId() === $publication->getId()}
{$name}
{elseif $iPublication->getId() === $currentPublication->getId()}
<a href="{url page="article" op="view" path=$article->getBestId()}">{$name}</a>
{else}
<a href="{url page="article" op="view" path=$article->getBestId()|to_array:"version":$iPublication->getId()}">{$name}</a>
{/if}
</li>
{/foreach}
</ul>
</section>
{/if}
</div>
{/if}
{* Data Availability Statement *}
{if $publication->getLocalizedData('dataAvailability')}
<section class="item dataAvailability">
<h2 class="label">{translate key="submission.dataAvailability"}</h2>
{$publication->getLocalizedData('dataAvailability')|strip_unsafe_html}
</section>
{/if}
{* Issue article appears in *}
{if $issue || $section || $categories}
<div class="item issue">
{if $issue}
<section class="sub_item">
<h2 class="label">
{translate key="issue.issue"}
</h2>
<div class="value">
<a class="title" href="{url page="issue" op="view" path=$issue->getBestIssueId()}">
{$issue->getIssueIdentification()}
</a>
</div>
</section>
{/if}
{if $section}
<section class="sub_item">
<h2 class="label">
{translate key="section.section"}
</h2>
<div class="value">
{$section->getLocalizedTitle()|escape}
</div>
</section>
{/if}
{if $categories}
<section class="sub_item">
<h2 class="label">
{translate key="category.category"}
</h2>
<div class="value">
<ul class="categories">
{foreach from=$categories item=category}
<li><a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="catalog" op="category" path=$category->getPath()|escape}">{$category->getLocalizedTitle()|escape}</a></li>
{/foreach}
</ul>
</div>
</section>
{/if}
</div>
{/if}
{* PubIds (requires plugins) *}
{foreach from=$pubIdPlugins item=pubIdPlugin}
{if $pubIdPlugin->getPubIdType() == 'doi'}
{continue}
{/if}
{assign var=pubId value=$article->getStoredPubId($pubIdPlugin->getPubIdType())}
{if $pubId}
<section class="item pubid">
<h2 class="label">
{$pubIdPlugin->getPubIdDisplayType()|escape}
</h2>
<div class="value">
{if $pubIdPlugin->getResolvingURL($currentJournal->getId(), $pubId)|escape}
<a id="pub-id::{$pubIdPlugin->getPubIdType()|escape}" href="{$pubIdPlugin->getResolvingURL($currentJournal->getId(), $pubId)|escape}">
{$pubIdPlugin->getResolvingURL($currentJournal->getId(), $pubId)|escape}
</a>
{else}
{$pubId|escape}
{/if}
</div>
</section>
{/if}
{/foreach}
{* Licensing info *}
{if $currentContext->getLocalizedData('licenseTerms') || $publication->getData('licenseUrl')}
<div class="item copyright">
<h2 class="label">
{translate key="submission.license"}
</h2>
{if $publication->getData('licenseUrl')}
{if $ccLicenseBadge}
{if $publication->getLocalizedData('copyrightHolder')}
<p>{translate key="submission.copyrightStatement" copyrightHolder=$publication->getLocalizedData('copyrightHolder') copyrightYear=$publication->getData('copyrightYear')}</p>
{/if}
{$ccLicenseBadge}
{else}
<a href="{$publication->getData('licenseUrl')|escape}" class="copyright">
{if $publication->getLocalizedData('copyrightHolder')}
{translate key="submission.copyrightStatement" copyrightHolder=$publication->getLocalizedData('copyrightHolder') copyrightYear=$publication->getData('copyrightYear')}
{else}
{translate key="submission.license"}
{/if}
</a>
{/if}
{/if}
{$currentContext->getLocalizedData('licenseTerms')}
</div>
{/if}
{call_hook name="Templates::Article::Details"}
</div><!-- .entry_details -->
</div><!-- .row -->
</article>
@@ -0,0 +1,106 @@
{**
* templates/frontend/objects/article_summary.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief View of an Article summary which is shown within a list of articles.
*
* @uses $article Article The article
* @uses $authorUserGroups Traversible The set of author user groups
* @uses $hasAccess bool Can this user access galleys for this context? The
* context may be an issue or an article
* @uses $showDatePublished bool Show the date this article was published?
* @uses $hideGalleys bool Hide the article galleys for this article?
* @uses $primaryGenreIds array List of file genre ids for primary file types
* @uses $heading string HTML heading element, default: h2
*}
{assign var=publication value=$article->getCurrentPublication()}
{assign var=articlePath value=$publication->getData('urlPath')|default:$article->getId()}
{if !$heading}
{assign var="heading" value="h2"}
{/if}
{if (!$section.hideAuthor && $publication->getData('hideAuthor') == \APP\submission\Submission::AUTHOR_TOC_DEFAULT) || $publication->getData('hideAuthor') == \APP\submission\Submission::AUTHOR_TOC_SHOW}
{assign var="showAuthor" value=true}
{/if}
<div class="obj_article_summary">
{if $publication->getLocalizedData('coverImage')}
<div class="cover">
<a {if $journal}href="{url journal=$journal->getPath() page="article" op="view" path=$articlePath}"{else}href="{url page="article" op="view" path=$articlePath}"{/if} class="file">
{assign var="coverImage" value=$publication->getLocalizedData('coverImage')}
<img
src="{$publication->getLocalizedCoverImageUrl($article->getData('contextId'))|escape}"
alt="{$coverImage.altText|escape|default:''}"
>
</a>
</div>
{/if}
<{$heading} class="title">
<a id="article-{$article->getId()}" {if $journal}href="{url journal=$journal->getPath() page="article" op="view" path=$articlePath}"{else}href="{url page="article" op="view" path=$articlePath}"{/if}>
{if $currentContext}
{$publication->getLocalizedTitle(null, 'html')|strip_unsafe_html}
{assign var=localizedSubtitle value=$publication->getLocalizedSubtitle(null, 'html')|strip_unsafe_html}
{if $localizedSubtitle}
<span class="subtitle">{$localizedSubtitle}</span>
{/if}
{else}
{$publication->getLocalizedFullTitle(null, 'html')|strip_unsafe_html}
<span class="subtitle">
{$journal->getLocalizedName()|escape}
</span>
{/if}
</a>
</{$heading}>
{assign var=submissionPages value=$publication->getData('pages')}
{assign var=submissionDatePublished value=$publication->getData('datePublished')}
{if $showAuthor || $submissionPages || ($submissionDatePublished && $showDatePublished)}
<div class="meta">
{if $showAuthor}
<div class="authors">
{$publication->getAuthorString($authorUserGroups)|escape}
</div>
{/if}
{* Page numbers for this article *}
{if $submissionPages}
<div class="pages">{$submissionPages|escape}</div>
{/if}
{if $showDatePublished && $submissionDatePublished}
<div class="published">
{$submissionDatePublished|date_format:$dateFormatShort}
</div>
{/if}
</div>
{/if}
{if !$hideGalleys}
<ul class="galleys_links">
{foreach from=$article->getGalleys() item=galley}
{if $primaryGenreIds}
{assign var="file" value=$galley->getFile()}
{if !$galley->getRemoteUrl() && !($file && in_array($file->getGenreId(), $primaryGenreIds))}
{continue}
{/if}
{/if}
<li>
{assign var="hasArticleAccess" value=$hasAccess}
{if $currentContext->getSetting('publishingMode') == \APP\journal\Journal::PUBLISHING_MODE_OPEN || $publication->getData('accessStatus') == \APP\submission\Submission::ARTICLE_ACCESS_OPEN}
{assign var="hasArticleAccess" value=1}
{/if}
{assign var="id" value="article-{$article->getId()}-galley-{$galley->getId()}"}
{include file="frontend/objects/galley_link.tpl" parent=$article publication=$publication id=$id labelledBy="{$id} article-{$article->getId()}" hasAccess=$hasArticleAccess purchaseFee=$currentJournal->getData('purchaseArticleFee') purchaseCurrency=$currentJournal->getData('currency')}
</li>
{/foreach}
</ul>
{/if}
{call_hook name="Templates::Issue::Issue::Article"}
</div>
@@ -0,0 +1,84 @@
{**
* templates/frontend/objects/galley_link.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief View of a galley object as a link to view or download the galley, to be used
* in a list of galleys.
*
* @uses $galley Galley
* @uses $parent Issue|Article Object which these galleys are attached to
* @uses $publication Publication Optionally the publication (version) to which this galley is attached
* @uses $isSupplementary bool Is this a supplementary file?
* @uses $hasAccess bool Can this user access galleys for this context?
* @uses $restrictOnlyPdf bool Is access only restricted to PDF galleys?
* @uses $purchaseArticleEnabled bool Can this article be purchased?
* @uses $currentJournal Journal The current journal context
* @uses $journalOverride Journal An optional argument to override the current
* journal with a specific context
*}
{* Override the $currentJournal context if desired *}
{if $journalOverride}
{assign var="currentJournal" value=$journalOverride}
{/if}
{* Determine galley type and URL op *}
{if $galley->isPdfGalley()}
{assign var="type" value="pdf"}
{else}
{assign var="type" value="file"}
{/if}
{* Get path for URL *}
{if $parent instanceOf \APP\issue\Issue}
{assign var="page" value="issue"}
{assign var="parentId" value=$parent->getBestIssueId()}
{assign var="path" value=$parentId|to_array:$galley->getBestGalleyId()}
{else}{* \APP\submission\Submission *}
{assign var="page" value="article"}
{if $publication}
{if $publication->getId() !== $parent->getData('currentPublicationId')}
{* Get a versioned link if we have an older publication *}
{assign var="path" value=$parent->getBestId()|to_array:"version":$publication->getId():$galley->getBestGalleyId()}
{else}
{assign var="parentId" value=$publication->getData('urlPath')|default:$article->getId()}
{assign var="path" value=$parentId|to_array:$galley->getBestGalleyId()}
{/if}
{else}
{assign var="path" value=$parent->getBestId()|to_array:$galley->getBestGalleyId()}
{/if}
{/if}
{* Get user access flag *}
{if !$hasAccess}
{if $restrictOnlyPdf && $type=="pdf"}
{assign var=restricted value="1"}
{elseif !$restrictOnlyPdf}
{assign var=restricted value="1"}
{/if}
{/if}
{* Don't be frightened. This is just a link *}
<a class="{if $isSupplementary}obj_galley_link_supplementary{else}obj_galley_link{/if} {$type|escape}{if $restricted} restricted{/if}" href="{url page=$page op="view" path=$path}"{if $id} id="{$id}"{/if}{if $labelledBy} aria-labelledby="{$labelledBy}"{/if}>
{* Add some screen reader text to indicate if a galley is restricted *}
{if $restricted}
<span class="pkp_screen_reader">
{if $purchaseArticleEnabled}
{translate key="reader.subscriptionOrFeeAccess"}
{else}
{translate key="reader.subscriptionAccess"}
{/if}
</span>
{/if}
{$galley->getGalleyLabel()|escape}
{if $restricted && $purchaseFee && $purchaseCurrency}
<span class="purchase_cost">
{translate key="reader.purchasePrice" price=$purchaseFee currency=$purchaseCurrency}
</span>
{/if}
</a>
@@ -0,0 +1,44 @@
{**
* templates/frontend/objects/issue_summary.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief View of an Issue which displays a summary for use in lists
*
* @uses $issue Issue The issue
*}
{if $issue->getShowTitle()}
{assign var=issueTitle value=$issue->getLocalizedTitle()|escape}
{/if}
{assign var=issueSeries value=$issue->getIssueSeries()}
{assign var=issueCover value=$issue->getLocalizedCoverImageUrl()}
<div class="obj_issue_summary">
{if $issueCover}
<a class="cover" href="{url op="view" path=$issue->getBestIssueId()}">
<img src="{$issueCover|escape}" alt="{$issue->getLocalizedCoverImageAltText()|escape|default:''}">
</a>
{/if}
<h2>
<a class="title" href="{url op="view" path=$issue->getBestIssueId()}">
{if $issueTitle}
{$issueTitle|escape}
{else}
{$issueSeries|escape}
{/if}
</a>
{if $issueTitle && $issueSeries}
<div class="series">
{$issueSeries|escape}
</div>
{/if}
</h2>
<div class="description">
{$issue->getLocalizedDescription()|strip_unsafe_html}
</div>
</div><!-- .obj_issue_summary -->
+147
View File
@@ -0,0 +1,147 @@
{**
* templates/frontend/objects/issue_toc.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief View of an Issue which displays a full table of contents.
*
* @uses $issue Issue The issue
* @uses $issueTitle string Title of the issue. May be empty
* @uses $issueSeries string Vol/No/Year string for the issue
* @uses $issueGalleys array Galleys for the entire issue
* @uses $hasAccess bool Can this user access galleys for this context?
* @uses $publishedSubmissions array Lists of articles published in this issue
* sorted by section.
* @uses $primaryGenreIds array List of file genre ids for primary file types
* @uses $heading string HTML heading element, default: h2
*}
{if !$heading}
{assign var="heading" value="h2"}
{/if}
{assign var="articleHeading" value="h3"}
{if $heading == "h3"}
{assign var="articleHeading" value="h4"}
{elseif $heading == "h4"}
{assign var="articleHeading" value="h5"}
{elseif $heading == "h5"}
{assign var="articleHeading" value="h6"}
{/if}
<div class="obj_issue_toc">
{* Indicate if this is only a preview *}
{if !$issue->getPublished()}
{include file="frontend/components/notification.tpl" type="warning" messageKey="editor.issues.preview"}
{/if}
{* Issue introduction area above articles *}
<div class="heading">
{* Issue cover image *}
{assign var=issueCover value=$issue->getLocalizedCoverImageUrl()}
{if $issueCover}
<div class="cover">
{capture assign="defaultAltText"}
{translate key="issue.viewIssueIdentification" identification=$issue->getIssueIdentification()|escape}
{/capture}
<img src="{$issueCover|escape}" alt="{$issue->getLocalizedCoverImageAltText()|escape|default:$defaultAltText}">
</div>
{/if}
{* Description *}
{if $issue->hasDescription()}
<div class="description">
{$issue->getLocalizedDescription()|strip_unsafe_html}
</div>
{/if}
{* PUb IDs (eg - URN) *}
{foreach from=$pubIdPlugins item=pubIdPlugin}
{assign var=pubId value=$issue->getStoredPubId($pubIdPlugin->getPubIdType())}
{if $pubId}
{assign var="resolvingUrl" value=$pubIdPlugin->getResolvingURL($currentJournal->getId(), $pubId)|escape}
<div class="pub_id {$pubIdPlugin->getPubIdType()|escape}">
<span class="type">
{$pubIdPlugin->getPubIdDisplayType()|escape}:
</span>
<span class="id">
{if $resolvingUrl}
<a href="{$resolvingUrl|escape}">
{$resolvingUrl}
</a>
{else}
{$pubId}
{/if}
</span>
</div>
{/if}
{/foreach}
{* DOI *}
{assign var=doiObject value=$issue->getData('doiObject')}
{if $doiObject}
{assign var="doiUrl" value=$doiObject->getData('resolvingUrl')|escape}
<div class="pub_id doi">
<span class="type">
DOI:
</span>
<span class="id">
<a href="{$doiUrl|escape}">
{$doiUrl}
</a>
</span>
</div>
{/if}
{* Published date *}
{if $issue->getDatePublished()}
<div class="published">
<span class="label">
{translate key="submissions.published"}:
</span>
<span class="value">
{$issue->getDatePublished()|date_format:$dateFormatShort}
</span>
</div>
{/if}
</div>
{* Full-issue galleys *}
{if $issueGalleys}
<div class="galleys">
<{$heading} id="issueTocGalleyLabel">
{translate key="issue.fullIssue"}
</{$heading}>
<ul class="galleys_links">
{foreach from=$issueGalleys item=galley}
<li>
{include file="frontend/objects/galley_link.tpl" parent=$issue labelledBy="issueTocGalleyLabel" purchaseFee=$currentJournal->getData('purchaseIssueFee') purchaseCurrency=$currentJournal->getData('currency')}
</li>
{/foreach}
</ul>
</div>
{/if}
{* Articles *}
<div class="sections">
{foreach name=sections from=$publishedSubmissions item=section}
<div class="section">
{if $section.articles}
{if $section.title}
<{$heading}>
{$section.title|escape}
</{$heading}>
{/if}
<ul class="cmp_article_list articles">
{foreach from=$section.articles item=article}
<li>
{include file="frontend/objects/article_summary.tpl" heading=$articleHeading}
</li>
{/foreach}
</ul>
{/if}
</div>
{/foreach}
</div><!-- .sections -->
</div>
@@ -0,0 +1,32 @@
{**
* templates/frontend/pages/aboutThisPublishingSystem.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief Display the page to view details about the OJS software.
*
* @uses $currentContext Journal The journal currently being viewed
* @uses $appVersion string Current version of OJS
* @uses $contactUrl string URL to the journal's contact page
*}
{include file="frontend/components/header.tpl" pageTitle="about.aboutSoftware"}
<div class="page page_about_publishing_system">
{include file="frontend/components/breadcrumbs.tpl" currentTitleKey="about.aboutSoftware"}
<h1>
{translate key="about.aboutSoftware"}
</h1>
<p>
{if $currentContext}
{translate key="about.aboutOJSJournal" ojsVersion=$appVersion contactUrl=$contactUrl}
{else}
{translate key="about.aboutOJSSite" ojsVersion=$appVersion}
{/if}
</p>
</div><!-- .page -->
{include file="frontend/components/footer.tpl"}
+36
View File
@@ -0,0 +1,36 @@
{**
* templates/frontend/pages/article.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief Display the page to view an article with all of it's details.
*
* @uses $article Submission This article
* @uses $publication Publication The publication being displayed
* @uses $firstPublication Publication The first published version of this article
* @uses $currentPublication Publication The most recently published version of this article
* @uses $issue Issue The issue this article is assigned to
* @uses $section Section The journal section this article is assigned to
* @uses $journal Journal The journal currently being viewed.
* @uses $primaryGalleys array List of article galleys that are not supplementary or dependent
* @uses $supplementaryGalleys array List of article galleys that are supplementary
*}
{include file="frontend/components/header.tpl" pageTitleTranslated=$article->getCurrentPublication()->getLocalizedFullTitle(null, 'html')|strip_unsafe_html}
<div class="page page_article">
{if $section}
{include file="frontend/components/breadcrumbs_article.tpl" currentTitle=$section->getLocalizedTitle()}
{else}
{include file="frontend/components/breadcrumbs_article.tpl" currentTitleKey="common.publication"}
{/if}
{* Show article overview *}
{include file="frontend/objects/article_details.tpl"}
{call_hook name="Templates::Article::Footer::PageFooter"}
</div><!-- .page -->
{include file="frontend/components/footer.tpl"}
@@ -0,0 +1,103 @@
{**
* templates/frontend/pages/catalogCategory.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief Display the page to view a category of the catalog.
*
* @uses $category Category Current category being viewed
* @uses $publishedSubmissions array List of published submissions in this category
* @uses $parentCategory Category Parent category if one exists
* @uses $subcategories array List of subcategories if they exist
* @uses $prevPage int The previous page number
* @uses $nextPage int The next page number
* @uses $showingStart int The number of the first item on this page
* @uses $showingEnd int The number of the last item on this page
* @uses $total int Count of all published submissions in this category
*}
{include file="frontend/components/header.tpl" pageTitleTranslated=$category->getLocalizedTitle()|escape}
<div class="page page_catalog_category">
{* Breadcrumb *}
{include file="frontend/components/breadcrumbs_catalog.tpl" type="category" parent=$parentCategory currentTitle=$category->getLocalizedTitle()|escape}
<h1>
{$category->getLocalizedTitle()|escape}
</h1>
{* Count of articles in this category *}
<div class="article_count">
{translate key="catalog.browseTitles" numTitles=$total}
</div>
{* Image and description *}
{assign var="image" value=$category->getImage()}
{assign var="description" value=$category->getLocalizedDescription()|strip_unsafe_html}
<div class="about_section{if $image} has_image{/if}{if $description} has_description{/if}">
{if $image}
<div class="cover" href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="catalog" op="fullSize" type="category" id=$category->getId()}">
<img src="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="catalog" op="thumbnail" type="category" id=$category->getId()}" alt="null" />
</div>
{/if}
<div class="description">
{$description|strip_unsafe_html}
</div>
</div>
{if $subcategories|@count}
<nav class="subcategories" role="navigation">
<h2>
{translate key="catalog.category.subcategories"}
</h2>
<ul>
{foreach from=$subcategories item=subcategory}
<li>
<a href="{url op="category" path=$subcategory->getPath()}">
{$subcategory->getLocalizedTitle()|escape}
</a>
</li>
{/foreach}
</ul>
</nav>
{/if}
<h2 class="title">
{translate key="catalog.category.heading"}
</h2>
{* No published titles in this category *}
{if empty($publishedSubmissions)}
<p>{translate key="catalog.category.noItems"}</p>
{else}
<ul class="cmp_article_list articles">
{foreach from=$publishedSubmissions item=article}
<li>
{include file="frontend/objects/article_summary.tpl" article=$article hideGalleys=true heading="h3"}
</li>
{/foreach}
</ul>
{* Pagination *}
{if $prevPage > 1}
{capture assign=prevUrl}{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="catalog" op="category" path=$category->getPath()|to_array:$prevPage}{/capture}
{elseif $prevPage === 1}
{capture assign=prevUrl}{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="catalog" op="category" path=$category->getPath()}{/capture}
{/if}
{if $nextPage}
{capture assign=nextUrl}{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="catalog" op="category" path=$category->getPath()|to_array:$nextPage}{/capture}
{/if}
{include
file="frontend/components/pagination.tpl"
prevUrl=$prevUrl
nextUrl=$nextUrl
showingStart=$showingStart
showingEnd=$showingEnd
total=$total
}
{/if}
</div><!-- .page -->
{include file="frontend/components/footer.tpl"}
+67
View File
@@ -0,0 +1,67 @@
{**
* templates/frontend/pages/indexJournal.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief Display the index page for a journal
*
* @uses $currentJournal Journal This journal
* @uses $journalDescription string Journal description from HTML text editor
* @uses $homepageImage object Image to be displayed on the homepage
* @uses $additionalHomeContent string Arbitrary input from HTML text editor
* @uses $announcements array List of announcements
* @uses $numAnnouncementsHomepage int Number of announcements to display on the
* homepage
* @uses $issue Issue Current issue
*}
{include file="frontend/components/header.tpl" pageTitleTranslated=$currentJournal->getLocalizedName()}
<div class="page_index_journal">
{call_hook name="Templates::Index::journal"}
{if !$activeTheme->getOption('useHomepageImageAsHeader') && $homepageImage}
<div class="homepage_image">
<img src="{$publicFilesDir}/{$homepageImage.uploadName|escape:"url"}"{if $homepageImage.altText} alt="{$homepageImage.altText|escape}"{/if}>
</div>
{/if}
{* Journal Description *}
{if $activeTheme->getOption('showDescriptionInJournalIndex')}
<section class="homepage_about">
<a id="homepageAbout"></a>
<h2>{translate key="about.aboutContext"}</h2>
{$currentContext->getLocalizedData('description')}
</section>
{/if}
{include file="frontend/objects/announcements_list.tpl" numAnnouncements=$numAnnouncementsHomepage}
{* Latest issue *}
{if $issue}
<section class="current_issue">
<a id="homepageIssue"></a>
<h2>
{translate key="journal.currentIssue"}
</h2>
<div class="current_issue_title">
{$issue->getIssueIdentification()|strip_unsafe_html}
</div>
{include file="frontend/objects/issue_toc.tpl" heading="h3"}
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="issue" op="archive"}" class="read_more">
{translate key="journal.viewAllIssues"}
</a>
</section>
{/if}
{* Additional Homepage Content *}
{if $additionalHomeContent}
<div class="additional_content">
{$additionalHomeContent}
</div>
{/if}
</div><!-- .page -->
{include file="frontend/components/footer.tpl"}
+76
View File
@@ -0,0 +1,76 @@
{**
* templates/frontend/pages/indexSite.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Site index.
*
*}
{include file="frontend/components/header.tpl"}
<div class="page_index_site">
{if $about}
<div class="about_site">
{$about}
</div>
{/if}
{include file="frontend/objects/announcements_list.tpl" numAnnouncements=$numAnnouncementsHomepage}
<div class="journals">
<h2>
{translate key="context.contexts"}
</h2>
{if !$journals|@count}
{translate key="site.noJournals"}
{else}
<ul>
{foreach from=$journals item=journal}
{capture assign="url"}{url journal=$journal->getPath()}{/capture}
{assign var="thumb" value=$journal->getLocalizedData('journalThumbnail')}
{assign var="description" value=$journal->getLocalizedDescription()}
<li{if $thumb} class="has_thumb"{/if}>
{if $thumb}
<div class="thumb">
<a href="{$url}">
<img src="{$journalFilesPath}{$journal->getId()}/{$thumb.uploadName|escape:"url"}"{if $thumb.altText} alt="{$thumb.altText|escape|default:''}"{/if}>
</a>
</div>
{/if}
<div class="body">
<h3>
<a href="{$url}" rel="bookmark">
{$journal->getLocalizedName()|escape}
</a>
</h3>
{if $description}
<div class="description">
{$description}
</div>
{/if}
<ul class="links">
<li class="view">
<a href="{$url}">
{translate key="site.journalView"}
</a>
</li>
<li class="current">
<a href="{url journal=$journal->getPath() page="issue" op="current"}">
{translate key="site.journalCurrent"}
</a>
</li>
</ul>
</div>
</li>
{/foreach}
</ul>
{/if}
</div>
</div><!-- .page -->
{include file="frontend/components/footer.tpl"}
+39
View File
@@ -0,0 +1,39 @@
{**
* templates/frontend/pages/issue.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief Display a landing page for a single issue. It will show the table of contents
* (toc) or a cover image, with a click through to the toc.
*
* @uses $issue Issue The issue
* @uses $issueIdentification string Label for this issue, consisting of one or
* more of the volume, number, year and title, depending on settings
* @uses $issueGalleys array Galleys for the entire issue
* @uses $primaryGenreIds array List of file genre IDs for primary types
*}
{include file="frontend/components/header.tpl" pageTitleTranslated=$issueIdentification}
<div class="page page_issue">
{* Display a message if no current issue exists *}
{if !$issue}
{include file="frontend/components/breadcrumbs_issue.tpl" currentTitleKey="current.noCurrentIssue"}
<h1>
{translate key="current.noCurrentIssue"}
</h1>
{include file="frontend/components/notification.tpl" type="warning" messageKey="current.noCurrentIssueDesc"}
{* Display an issue with the Table of Contents *}
{else}
{include file="frontend/components/breadcrumbs_issue.tpl" currentTitle=$issueIdentification}
<h1>
{$issueIdentification|escape}
</h1>
{include file="frontend/objects/issue_toc.tpl"}
{/if}
</div>
{include file="frontend/components/footer.tpl"}
+66
View File
@@ -0,0 +1,66 @@
{**
* templates/frontend/pages/issueArchive.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief Display a list of recent issues.
*
* @uses $issues Array Collection of issues to display
* @uses $prevPage int The previous page number
* @uses $nextPage int The next page number
* @uses $showingStart int The number of the first item on this page
* @uses $showingEnd int The number of the last item on this page
* @uses $total int Count of all published monographs
*}
{capture assign="pageTitle"}
{if $prevPage}
{translate key="archive.archivesPageNumber" pageNumber=$prevPage+1}
{else}
{translate key="archive.archives"}
{/if}
{/capture}
{include file="frontend/components/header.tpl" pageTitleTranslated=$pageTitle}
<div class="page page_issue_archive">
{include file="frontend/components/breadcrumbs.tpl" currentTitle=$pageTitle}
<h1>
{$pageTitle|escape}
</h1>
{* No issues have been published *}
{if empty($issues)}
<p>{translate key="current.noCurrentIssueDesc"}</p>
{* List issues *}
{else}
<ul class="issues_archive">
{foreach from=$issues item="issue"}
<li>
{include file="frontend/objects/issue_summary.tpl"}
</li>
{/foreach}
</ul>
{* Pagination *}
{if $prevPage > 1}
{capture assign=prevUrl}{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="issue" op="archive" path=$prevPage}{/capture}
{elseif $prevPage === 1}
{capture assign=prevUrl}{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="issue" op="archive"}{/capture}
{/if}
{if $nextPage}
{capture assign=nextUrl}{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="issue" op="archive" path=$nextPage}{/capture}
{/if}
{include
file="frontend/components/pagination.tpl"
prevUrl=$prevUrl
nextUrl=$nextUrl
showingStart=$showingStart
showingEnd=$showingEnd
total=$total
}
{/if}
</div>
{include file="frontend/components/footer.tpl"}
@@ -0,0 +1,53 @@
{**
* templates/frontend/pages/purchaseIndividualSubscription.tpl
*
* Copyright (c) 2013-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* User purchase individual subscription form
*
*}
{include file="frontend/components/header.tpl" pageTitle="user.subscriptions.purchaseIndividualSubscription"}
<div class="pkp_page_content pkp_page_purchaseIndividualSubscription">
<form class="cmp_form purchase_subscription" method="post" id="subscriptionForm" action="{url op="payPurchaseSubscription" path="individual"|to_array:$subscriptionId}">
{csrf}
<fieldset>
<legend>
{translate key="payment.subscription.purchase"}
</legend>
<div class="fields">
<div class="subscription_type">
<label>
<span class="label">
{translate key="user.subscriptions.form.typeId"}
</span>
<select name="typeId" id="typeId">
{foreach name=types from=$subscriptionTypes key=thisTypeId item=subscriptionType}
<option value="{$thisTypeId|escape}"{if $typeId == $thisTypeId} selected{/if}>{$subscriptionType|escape}</option>
{/foreach}
</select>
</label>
</div>
<div class="subscription_membership">
<label>
<span class="label">
{translate key="user.subscriptions.form.membership"}
</span>
<input type="text" name="membership" id="membership" value="{$membership|escape}">
</label>
</div>
</div>
</fieldset>
<div class="buttons">
<button class="submit" type="submit">
{translate key="common.save"}
</button>
</div>
</form>
</div>
{include file="frontend/components/footer.tpl"}
@@ -0,0 +1,111 @@
{**
* templates/payments/userInstitutionalSubscriptionForm.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* User purchase institutional subscription form
*
*}
{include file="frontend/components/header.tpl" pageTitle="user.subscriptions.purchaseInstitutionalSubscription"}
<div class="pkp_page_content pkp_page_purchaseInstitutionalSubscription">
<h1 class="page_title">
{translate key="user.subscriptions.purchaseInstitutionalSubscription"}
</h1>
{assign var="formPath" value="institutional"}
{if $subscriptionId}
{assign var="formPath" value="institutional"|to_array:$subscriptionId}
{/if}
<form class="cmp_form purchase_subscription" method="post" id="subscriptionForm" action="{url op="payPurchaseSubscription" path=$formPath}">
{csrf}
{include file="common/formErrors.tpl"}
<fieldset>
<legend>
{translate key="payment.subscription.purchase"}
</legend>
<div class="fields">
<div class="subscription_type">
<label>
<span class="label">
{translate key="user.subscriptions.form.typeId"}
<span class="required">*</span>
<span class="pkp_screen_reader">
{translate key="common.required"}
</span>
</span>
<select name="typeId" id="typeId" required>
{foreach name=types from=$subscriptionTypes item=subscriptionType}
<option value="{$subscriptionType->getId()}"{if $typeId == $subscriptionType->getId()} selected{/if}>{$subscriptionType->getSummaryString()|escape}</option>
{/foreach}
</select>
</label>
</div>
<div class="subscription_membership">
<label>
<span class="label">
{translate key="user.subscriptions.form.membership"}
</span>
<input type="text" name="membership" id="membership" value="{$membership|escape}" aria-describedby="subscriptionMembershipDescription">
</label>
<p class="description" id="subscriptionMembershipDescription">{translate key="user.subscriptions.form.membershipInstructions"}</p>
</div>
<div class="subscription_institution">
<label>
<span class="label">
{translate key="user.subscriptions.form.institutionName"}
</span>
<input type="text" name="institutionName" id="institutionName" value="{$institutionName|escape}">
</label>
</div>
<div class="subscription_address">
<label>
<span class="label">
{translate key="user.subscriptions.form.institutionMailingAddress"}
</span>
<textarea name="institutionMailingAddress" id="institutionMailingAddress">{$institutionMailingAddress|escape}</textarea>
</label>
</div>
</div>
</fieldset>
<fieldset>
<div class="fields">
<div class="subscription_domain">
<label>
<span class="label">
{translate key="user.subscriptions.form.domain"}
</span>
<input type="text" name="domain" id="domain" value="{$domain|escape}" aria-describedby="subscriptionDomainDescription">
</label>
<p class="description" id="subscriptionDomainDescription">{translate key="user.subscriptions.form.domainInstructions"}</p>
</div>
<div class="subscription_ips">
<label>
<span class="label">
{translate key="user.subscriptions.form.ipRange"}
</span>
<textarea name="ipRanges" id="ipRanges">{$ipRanges|escape}</textarea>
</label>
<p class="description" id="subscriptionIPDescription">{translate key="user.subscriptions.form.ipRangeInstructions"}</p>
</div>
</div>
</fieldset>
<div class="buttons">
<button class="submit" type="submit">
{translate key="common.continue"}
</button>
<a class="cmp_button_link" href="{url page="user" op="subscriptions"}">
{translate key="common.cancel"}
</a>
</div>
</form>
</div>
{include file="frontend/components/footer.tpl"}
+142
View File
@@ -0,0 +1,142 @@
{**
* templates/frontend/pages/search.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief Display the page to search and view search results.
*
* @uses $query Value of the primary search query
* @uses $authors Value of the authors search filter
* @uses $dateFrom Value of the date from search filter (published after).
* Value is a single string: YYYY-MM-DD HH:MM:SS
* @uses $dateTo Value of the date to search filter (published before).
* Value is a single string: YYYY-MM-DD HH:MM:SS
* @uses $yearStart Earliest year that can be used in from/to filters
* @uses $yearEnd Latest year that can be used in from/to filters
*}
{include file="frontend/components/header.tpl" pageTitle="common.search"}
{if !$heading}
{assign var="heading" value="h2"}
{/if}
<div class="page page_search">
{include file="frontend/components/breadcrumbs.tpl" currentTitleKey="common.search"}
<h1>
{translate key="common.search"}
</h1>
{capture name="searchFormUrl"}{url escape=false}{/capture}
{assign var=formUrlParameters value=[]}{* Prevent Smarty warning *}
{$smarty.capture.searchFormUrl|parse_url:$smarty.const.PHP_URL_QUERY|default:""|parse_str:$formUrlParameters}
<form class="cmp_form" method="get" action="{$smarty.capture.searchFormUrl|strtok:"?"|escape}" role="form">
{foreach from=$formUrlParameters key=paramKey item=paramValue}
<input type="hidden" name="{$paramKey|escape}" value="{$paramValue|escape}"/>
{/foreach}
{* Repeat the label text just so that screen readers have a clear
label/input relationship *}
<div class="search_input">
<label class="pkp_screen_reader" for="query">
{translate key="search.searchFor"}
</label>
{block name=searchQuery}
<input type="text" id="query" name="query" value="{$query|escape}" class="query" placeholder="{translate|escape key="common.search"}">
{/block}
</div>
<fieldset class="search_advanced">
<legend>
{translate key="search.advancedFilters"}
</legend>
<div class="date_range">
<div class="from">
{capture assign="dateFromLegend"}{translate key="search.dateFrom"}{/capture}
{html_select_date_a11y legend=$dateFromLegend prefix="dateFrom" time=$dateFrom start_year=$yearStart end_year=$yearEnd}
</div>
<div class="to">
{capture assign="dateFromTo"}{translate key="search.dateTo"}{/capture}
{html_select_date_a11y legend=$dateFromTo prefix="dateTo" time=$dateTo start_year=$yearStart end_year=$yearEnd}
</div>
</div>
<div class="author">
<label class="label" for="authors">
{translate key="search.author"}
</label>
{block name=searchAuthors}
<input type="text" id="authors" name="authors" value="{$authors|escape}">
{/block}
{if $searchableContexts}
<label class="label label_contexts" for="searchJournal">
{translate key="context.context"}
</label>
<select name="searchJournal" id="searchJournal">
<option></option>
{foreach from=$searchableContexts item="searchableContext"}
<option value="{$searchableContext->id}" {if $searchJournal == $searchableContext->id}selected{/if}>
{$searchableContext->name|escape}
</option>
{/foreach}
</select>
{/if}
</div>
{call_hook name="Templates::Search::SearchResults::AdditionalFilters"}
</fieldset>
<div class="submit">
<button class="submit" type="submit">{translate key="common.search"}</button>
</div>
</form>
{call_hook name="Templates::Search::SearchResults::PreResults"}
<h2 class="pkp_screen_reader">{translate key="search.searchResults"}</h2>
{* Results pagination *}
{if !$results->wasEmpty()}
{assign var="count" value=$results->count}
<div class="pkp_screen_reader" role="status">
{if $results->count > 1}
{translate key="search.searchResults.foundPlural" count=$results->count}
{else}
{translate key="search.searchResults.foundSingle"}
{/if}
</div>
{/if}
{* Search results, finally! *}
<ul class="search_results">
{iterate from=results item=result}
<li>
{include file="frontend/objects/article_summary.tpl" article=$result.publishedSubmission journal=$result.journal showDatePublished=true hideGalleys=true heading="h3"}
</li>
{/iterate}
</ul>
{* No results found *}
{if $results->wasEmpty()}
<span role="status">
{if $error}
{include file="frontend/components/notification.tpl" type="error" message=$error|escape}
{else}
{include file="frontend/components/notification.tpl" type="notice" messageKey="search.noResults"}
{/if}
</span>
{* Results pagination *}
{else}
<div class="cmp_pagination">
{page_info iterator=$results}
{page_links anchor="results" iterator=$results name="search" query=$query searchJournal=$searchJournal authors=$authors dateFromMonth=$dateFromMonth dateFromDay=$dateFromDay dateFromYear=$dateFromYear dateToMonth=$dateToMonth dateToDay=$dateToDay dateToYear=$dateToYear}
</div>
{/if}
{* Search Syntax Instructions *}
{block name=searchSyntaxInstructions}{/block}
</div><!-- .page -->
{include file="frontend/components/footer.tpl"}
+27
View File
@@ -0,0 +1,27 @@
{**
* templates/frontend/pages/submissions.tpl
*
* Copyright (c) 2014-2023 Simon Fraser University
* Copyright (c) 2003-2023 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief Display the page to view information about submissions.
*}
{capture assign="submissionChecklistAfterContent"}
{foreach from=$sections item="section"}
{if $section->getLocalizedPolicy()}
<div class="section_policy">
<h2>{$section->getLocalizedTitle()|escape}</h2>
{$section->getLocalizedPolicy()}
{if $isUserLoggedIn}
{capture assign="sectionSubmissionUrl"}{url page="submission" sectionId=$section->getId()}{/capture}
<p>
{translate key="about.onlineSubmissions.submitToSection" name=$section->getLocalizedTitle()|escape url=$sectionSubmissionUrl}
</p>
{/if}
</div>
{/if}
{/foreach}
{/capture}
{include file="core:frontend/pages/submissions.tpl"}
@@ -0,0 +1,94 @@
{**
* templates/frontend/pages/subscriptions.tpl
*
* Copyright (c) 2013-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* About the Journal Subscriptions.
*
*}
{include file="frontend/components/header.tpl" pageTitle="about.subscriptions"}
<div class="page page_subscriptions">
{include file="frontend/components/breadcrumbs.tpl" currentTitleKey="about.subscriptions"}
<h1>
{translate key="about.subscriptions"}
</h1>
{include file="frontend/components/subscriptionContact.tpl"}
<a name="subscriptionTypes"></a>
{if $individualSubscriptionTypes|@count}
<div class="subscriptions_institutional">
<h3>{translate key="about.subscriptions.individual"}</h3>
<p>{translate key="subscriptions.individualDescription"}</p>
<table class="cmp_table">
<tr>
<th>{translate key="about.subscriptionTypes.name"}</th>
<th>{translate key="about.subscriptionTypes.format"}</th>
<th>{translate key="about.subscriptionTypes.duration"}</th>
<th>{translate key="about.subscriptionTypes.cost"}</th>
</tr>
{foreach from=$individualSubscriptionTypes item=subscriptionType}
<tr>
<td>
<div class="subscription_name">
{$subscriptionType->getLocalizedName()|escape}
</div>
<div class="subscription_description">
{$subscriptionType->getLocalizedDescription()|strip_unsafe_html}
</div>
</td>
<td>{translate key=$subscriptionType->getFormatString()}</td>
<td>{$subscriptionType->getDurationYearsMonths()|escape}</td>
<td>{$subscriptionType->getCost()|string_format:"%.2f"}&nbsp;({$subscriptionType->getCurrencyStringShort()|escape})</td>
</tr>
{/foreach}
</table>
</div>
{if $isUserLoggedIn}
<div class="subscriptions_individual_purchase">
<a class="action" href="{url page="user" op="purchaseSubscription" path="individual"}">
{translate key="user.subscriptions.purchaseNewSubscription"}
</a>
</div>
{/if}
{/if}
{if $institutionalSubscriptionTypes|@count}
<h3>{translate key="about.subscriptions.institutional"}</h3>
<p>{translate key="subscriptions.institutionalDescription"}</p>
<table class="cmp_table">
<tr>
<th>{translate key="about.subscriptionTypes.name"}</th>
<th>{translate key="about.subscriptionTypes.format"}</th>
<th>{translate key="about.subscriptionTypes.duration"}</th>
<th>{translate key="about.subscriptionTypes.cost"}</th>
</tr>
{foreach from=$institutionalSubscriptionTypes item=subscriptionType}
<tr>
<td>
<div class="subscription_name">
{$subscriptionType->getLocalizedName()|escape}
</div>
<div class="subscription_description">
{$subscriptionType->getLocalizedDescription()|strip_unsafe_html}
</div>
</td>
<td>{translate key=$subscriptionType->getFormatString()}</td>
<td>{$subscriptionType->getDurationYearsMonths()|escape}</td>
<td>{$subscriptionType->getCost()|string_format:"%.2f"}&nbsp;({$subscriptionType->getCurrencyStringShort()|escape})</td>
</tr>
{/foreach}
</table>
{if $isUserLoggedIn}
<div class="subscriptions_institutional_purchase">
<a class="action" href="{url page="user" op="purchaseSubscription" path="institutional"}">
{translate key="user.subscriptions.purchaseNewSubscription"}
</a>
</div>
{/if}
{/if}
</div>
{include file="frontend/components/footer.tpl"}
@@ -0,0 +1,237 @@
{**
* templates/frontend/pages/userSubscriptions.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief Page where users can view and manage their subscriptions.
*
* @uses $paymentsEnabled boolean
* @uses $individualSubscriptionTypesExist boolean Have any individual
* subscription types been created?
* @uses $userIndividualSubscription IndividualSubscription
* @uses $institutionalSubscriptionTypesExist boolean Have any institutional
* subscription types been created?
* @uses $userInstitutionalSubscriptions array
*}
{include file="frontend/components/header.tpl" pageTitle="user.subscriptions.mySubscriptions"}
<div class="page page_user_subscriptions">
{include file="frontend/components/breadcrumbs.tpl" currentTitleKey="user.subscriptions.mySubscriptions"}
<h1>
{translate key="user.subscriptions.mySubscriptions"}
</h1>
{include file="frontend/components/subscriptionContact.tpl"}
{if $paymentsEnabled}
<div class="my_subscription_payments">
<h3>{translate key="user.subscriptions.subscriptionStatus"}</h3>
<p>{translate key="user.subscriptions.statusInformation"}</p>
<table class="cmp_table">
<tr>
<th>{translate key="user.subscriptions.status"}</th>
<th>{translate key="user.subscriptions.statusDescription"}</th>
</tr>
<tr>
<td>{translate key="subscriptions.status.needsInformation"}</td>
<td>{translate key="user.subscriptions.status.needsInformationDescription"}</td>
</tr>
<tr>
<td>{translate key="subscriptions.status.needsApproval"}</td>
<td>{translate key="user.subscriptions.status.needsApprovalDescription"}</td>
</tr>
<tr>
<td>{translate key="subscriptions.status.awaitingManualPayment"}</td>
<td>{translate key="user.subscriptions.status.awaitingManualPaymentDescription"}</td>
</tr>
<tr>
<td>{translate key="subscriptions.status.awaitingOnlinePayment"}</td>
<td>{translate key="user.subscriptions.status.awaitingOnlinePaymentDescription"}</td>
</tr>
</table>
</div>
{/if}
{if $individualSubscriptionTypesExist}
<div class="my_subscription_individual">
<h3>{translate key="user.subscriptions.individualSubscriptions"}</h3>
<p>{translate key="subscriptions.individualDescription"}</p>
{if $userIndividualSubscription}
<table class="cmp_table">
<tr>
<th>{translate key="user.subscriptions.form.typeId"}</th>
<th>{translate key="subscriptions.status"}</th>
{if $paymentsEnabled}
<th></th>
{/if}
</tr>
<tr>
<td>{$userIndividualSubscription->getSubscriptionTypeName()|escape}</td>
<td>
{assign var="subscriptionStatus" value=$userIndividualSubscription->getStatus()}
{assign var="isNonExpiring" value=$userIndividualSubscription->isNonExpiring()}
{if $paymentsEnabled && $subscriptionStatus == \APP\subscription\Subscription::SUBSCRIPTION_STATUS_AWAITING_ONLINE_PAYMENT}
<span class="subscription_disabled">
{translate key="subscriptions.status.awaitingOnlinePayment"}
</span>
{elseif $paymentsEnabled && $subscriptionStatus == \APP\subscription\Subscription::SUBSCRIPTION_STATUS_AWAITING_MANUAL_PAYMENT}
<span class="subscription_disabled">
{translate key="subscriptions.status.awaitingManualPayment"}
</span>
{elseif $subscriptionStatus != \APP\subscription\Subscription::SUBSCRIPTION_STATUS_ACTIVE}
<span class="subscription_disabled">
{translate key="subscriptions.inactive"}
</span>
{else}
{if $isNonExpiring}
{translate key="subscriptionTypes.nonExpiring"}
{else}
{assign var="isExpired" value=$userIndividualSubscription->isExpired()}
{if $isExpired}
<span class="subscription_disabled">
{translate key="user.subscriptions.expired" date=$userIndividualSubscription->getDateEnd()|date_format:$dateFormatShort}
</span>
{else}
<span class="subscription_active">
{translate key="user.subscriptions.expires" date=$userIndividualSubscription->getDateEnd()|date_format:$dateFormatShort}
</span>
{/if}
{/if}
{/if}
</td>
{if $paymentsEnabled}
<td>
{if $subscriptionStatus == \APP\subscription\Subscription::SUBSCRIPTION_STATUS_AWAITING_ONLINE_PAYMENT}
<a class="cmp_button" href="{url op="completePurchaseSubscription" path="individual"|to_array:$userIndividualSubscription->getId()}">
{translate key="user.subscriptions.purchase"}
</a>
{elseif $subscriptionStatus == \APP\subscription\Subscription::SUBSCRIPTION_STATUS_ACTIVE}
{if !$isNonExpiring}
<a class="cmp_button" href="{url op="payRenewSubscription" path="individual"|to_array:$userIndividualSubscription->getId()}">
{translate key="user.subscriptions.renew"}
</a>
{/if}
<a class="cmp_button" href="{url op="purchaseSubscription" path="individual"|to_array:$userIndividualSubscription->getId()}">
{translate key="user.subscriptions.purchase"}
</a>
{/if}
</td>
{/if}
</tr>
</table>
{elseif $paymentsEnabled}
<p>
<a class="action" href="{url op="purchaseSubscription" path="individual"}">
{translate key="user.subscriptions.purchaseNewSubscription"}
</a>
</p>
{else}
<p>
<a href="{url page="about" op="subscriptions" anchor="subscriptionTypes"}">
{translate key="user.subscriptions.viewSubscriptionTypes"}
</a>
</p>
{/if}
</div>
{/if}
{if $institutionalSubscriptionTypesExist}
<div class="my_subscriptions_institutional">
<h3>{translate key="user.subscriptions.institutionalSubscriptions"}</h3>
<p>
{translate key="subscriptions.institutionalDescription"}
{if $paymentsEnabled}
{translate key="subscriptions.institutionalOnlinePaymentDescription"}
{/if}
</p>
{if $userInstitutionalSubscriptions}
<table class="cmp_table">
<tr>
<th>{translate key="user.subscriptions.form.typeId"}</th>
<th>{translate key="user.subscriptions.form.institutionName"}</th>
<th>{translate key="subscriptions.status"}</th>
{if $paymentsEnabled}
<th></th>
{/if}
</tr>
{iterate from=userInstitutionalSubscriptions item=userInstitutionalSubscription}
<tr>
<td>{$userInstitutionalSubscription->getSubscriptionTypeName()|escape}</td>
<td>{$institutions[$userInstitutionalSubscription->getId()]->getLocalizedName()|escape}</td>
<td>
{assign var="subscriptionStatus" value=$userInstitutionalSubscription->getStatus()}
{assign var="isNonExpiring" value=$userInstitutionalSubscription->isNonExpiring()}
{if $paymentsEnabled && $subscriptionStatus == \APP\subscription\Subscription::SUBSCRIPTION_STATUS_AWAITING_ONLINE_PAYMENT}
<span class="subscription_disabled">
{translate key="subscriptions.status.awaitingOnlinePayment"}
</span>
{elseif $paymentsEnabled && $subscriptionStatus == \APP\subscription\Subscription::SUBSCRIPTION_STATUS_AWAITING_MANUAL_PAYMENT}
<span class="subscription_disabled">
{translate key="subscriptions.status.awaitingManualPayment"}
</span>
{elseif $paymentsEnabled && $subscriptionStatus == \APP\subscription\Subscription::SUBSCRIPTION_STATUS_NEEDS_APPROVAL}
<span class="subscription_disabled">
{translate key="subscriptions.status.needsApproval"}
</span>
{elseif $subscriptionStatus != \APP\subscription\Subscription::SUBSCRIPTION_STATUS_ACTIVE}
<span class="subscription_disabled">
{translate key="subscriptions.inactive"}
</span>
{else}
{if $isNonExpiring}
<span class="subscription_active">
{translate key="subscriptionTypes.nonExpiring"}
</span>
{else}
{assign var="isExpired" value=$userInstitutionalSubscription->isExpired()}
{if $isExpired}
<span class="subscription_disabled">
{translate key="user.subscriptions.expired" date=$userInstitutionalSubscription->getDateEnd()|date_format:$dateFormatShort}
</span>
{else}
<span class="subscription_enabled">
{translate key="user.subscriptions.expires" date=$userInstitutionalSubscription->getDateEnd()|date_format:$dateFormatShort}
</span>
{/if}
{/if}
{/if}
</td>
{if $paymentsEnabled}
<td>
{if $subscriptionStatus == \APP\subscription\Subscription::SUBSCRIPTION_STATUS_AWAITING_ONLINE_PAYMENT}
<a class="cmp_button" href="{url op="completePurchaseSubscription" path="institutional"|to_array:$userInstitutionalSubscription->getId()}">
{translate key="user.subscriptions.purchase"}
</a>
{elseif $subscriptionStatus == \APP\subscription\Subscription::SUBSCRIPTION_STATUS_ACTIVE}
{if !$isNonExpiring}
<a class="cmp_button" href="{url op="payRenewSubscription" path="institutional"|to_array:$userInstitutionalSubscription->getId()}">
{translate key="user.subscriptions.renew"}
</a>
{/if}
<a class="cmp_button" href="{url op="purchaseSubscription" path="institutional"|to_array:$userInstitutionalSubscription->getId()}">
{translate key="user.subscriptions.purchase"}
</a>
{/if}
</td>
{/if}
</tr>
{/iterate}
</table>
{/if}
<p>
{if $paymentsEnabled}
<a class="action" href="{url page="user" op="purchaseSubscription" path="institutional"}">
{translate key="user.subscriptions.purchaseNewSubscription"}
</a>
{else}
<a href="{url page="about" op="subscriptions" anchor="subscriptionTypes"}">
{translate key="user.subscriptions.viewSubscriptionTypes"}
</a>
{/if}
</p>
</div>
{/if}
</div>
{include file="frontend/components/footer.tpl"}