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,19 @@
{**
* templates/frontend/components/announcements.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 announcements
*
* @uses $announcements array List of announcements
*}
<ul class="cmp_announcements">
{foreach from=$announcements item=announcement}
<li>
{include file="frontend/objects/announcement_summary.tpl"}
</li>
{/foreach}
</ul>
@@ -0,0 +1,36 @@
{**
* templates/frontend/components/breadcrumbs.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">
<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 class="current">
<span aria-current="page">
{if $currentTitleKey}
{translate key=$currentTitleKey}
{else}
{$currentTitle|escape}
{/if}
</span>
</li>
</ol>
</nav>
@@ -0,0 +1,33 @@
{**
* templates/frontend/components/breadcrumbs_announcement.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 for announcements.
*
* @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 cmp_breadcrumbs_announcement" role="navigation">
<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 page="announcement" router=\PKP\core\PKPApplication::ROUTE_PAGE}">
{translate key="announcement.announcements"}
</a>
<span class="separator">{translate key="navigation.breadcrumbSeparator"}</span>
</li>
<li class="current">
<span aria-current="page">{$currentTitle|escape}</span>
</li>
</ol>
</nav>
@@ -0,0 +1,44 @@
{**
* templates/frontend/components/breadcrumbs_catalog.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 location in the catalog.
* This only supports one-level of nesting, as does the category hierarchy data.
*
* @uses $type string What kind of page should we use to construct urls
* (category, series, new)?
* @uses $parent Category A parent category if one exists
* @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 cmp_breadcrumbs_catalog" role="navigation">
<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>
{if $parent}
<li>
<a href="{url op=$type path=$parent->getPath()}">
{$parent->getLocalizedTitle()|escape}
</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,33 @@
{**
* templates/frontend/components/editLink.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 edit link.
*
* @uses $page string Page to pass to the url constructor
* @uses $op string Op to pass to the url constructor
* @uses $path string Path to pass to the url constructor
* @uses $anchor string Anchor to pass to the url constructor
* @uses $sectionTitle string Translated name of section to be edited
* @uses SectionTitleKey string A key that must be translated to get the
* $sectionTitle
*}
{if in_array(\PKP\security\Role::ROLE_ID_MANAGER, (array) $userRoles)}
{* Render the $sectionTitle if we only have a translation key *}
{if $sectionTitleKey}
{capture assign='sectionTitle'}{translate key=$sectionTitleKey}{/capture}
{/if}
<a href="{url page=$page op=$op path=$path anchor=$anchor}" class="cmp_edit_link">
{translate key="common.edit"}
{* Screen readers need more context *}
<span class="pkp_screen_reader">
{translate key="help.goToEditPage" sectionTitle=$sectionTitle}
</span>
</a>
{/if}
@@ -0,0 +1,53 @@
{**
* templates/frontend/components/footer.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 Common site frontend footer.
*
* @uses $isFullWidth bool Should this page be displayed without sidebars? This
* represents a page-level override, and doesn't indicate whether or not
* sidebars have been configured for thesite.
*}
</div><!-- pkp_structure_main -->
{* Sidebars *}
{if empty($isFullWidth)}
{capture assign="sidebarCode"}{call_hook name="Templates::Common::Sidebar"}{/capture}
{if $sidebarCode}
<div class="pkp_structure_sidebar left" role="complementary">
{$sidebarCode}
</div><!-- pkp_sidebar.left -->
{/if}
{/if}
</div><!-- pkp_structure_content -->
<div class="pkp_structure_footer_wrapper" role="contentinfo">
<a id="pkp_content_footer"></a>
<div class="pkp_structure_footer">
{if $pageFooter}
<div class="pkp_footer_content">
{$pageFooter}
</div>
{/if}
<div class="pkp_brand_footer">
<a href="{url page="about" op="aboutThisPublishingSystem"}">
<img alt="{translate key="about.aboutThisPublishingSystem"}" src="{$baseUrl}/{$brandImage}">
</a>
</div>
</div>
</div><!-- pkp_structure_footer_wrapper -->
</div><!-- pkp_structure_page -->
{load_script context="frontend"}
{call_hook name="Templates::Common::Footer::PageFooter"}
</body>
</html>
@@ -0,0 +1,102 @@
{**
* lib/pkp/templates/frontend/components/header.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 Common frontend site header.
*
* @uses $isFullWidth bool Should this page be displayed without sidebars? This
* represents a page-level override, and doesn't indicate whether or not
* sidebars have been configured for thesite.
*}
{strip}
{* Determine whether a logo or title string is being displayed *}
{assign var="showingLogo" value=true}
{if !$displayPageHeaderLogo}
{assign var="showingLogo" value=false}
{/if}
{/strip}
<!DOCTYPE html>
<html lang="{$currentLocale|replace:"_":"-"}" xml:lang="{$currentLocale|replace:"_":"-"}">
{if !$pageTitleTranslated}{capture assign="pageTitleTranslated"}{translate key=$pageTitle}{/capture}{/if}
{include file="frontend/components/headerHead.tpl"}
<body class="pkp_page_{$requestedPage|escape|default:"index"} pkp_op_{$requestedOp|escape|default:"index"}{if $showingLogo} has_site_logo{/if}" dir="{$currentLocaleLangDir|escape|default:"ltr"}">
<div class="pkp_structure_page">
{* Header *}
<header class="pkp_structure_head" id="headerNavigationContainer" role="banner">
{* Skip to content nav links *}
{include file="frontend/components/skipLinks.tpl"}
<div class="pkp_head_wrapper">
<div class="pkp_site_name_wrapper">
<button class="pkp_site_nav_toggle">
<span>Open Menu</span>
</button>
{if !$requestedPage || $requestedPage === 'index'}
<h1 class="pkp_screen_reader">
{if $currentContext}
{$displayPageHeaderTitle|escape}
{else}
{$siteTitle|escape}
{/if}
</h1>
{/if}
<div class="pkp_site_name">
{capture assign="homeUrl"}
{url page="index" router=\PKP\core\PKPApplication::ROUTE_PAGE}
{/capture}
{if $displayPageHeaderLogo}
<a href="{$homeUrl}" class="is_img">
<img src="{$publicFilesDir}/{$displayPageHeaderLogo.uploadName|escape:"url"}" width="{$displayPageHeaderLogo.width|escape}" height="{$displayPageHeaderLogo.height|escape}" {if $displayPageHeaderLogo.altText != ''}alt="{$displayPageHeaderLogo.altText|escape}"{/if} />
</a>
{elseif $displayPageHeaderTitle}
<a href="{$homeUrl}" class="is_text">{$displayPageHeaderTitle|escape}</a>
{else}
<a href="{$homeUrl}" class="is_img">
<img src="{$baseUrl}/templates/images/structure/logo.png" alt="{$applicationName|escape}" title="{$applicationName|escape}" width="180" height="90" />
</a>
{/if}
</div>
</div>
{capture assign="primaryMenu"}
{load_menu name="primary" id="navigationPrimary" ulClass="pkp_navigation_primary"}
{/capture}
<nav class="pkp_site_nav_menu" aria-label="{translate|escape key="common.navigation.site"}">
<a id="siteNav"></a>
<div class="pkp_navigation_primary_row">
<div class="pkp_navigation_primary_wrapper">
{* Primary navigation menu for current application *}
{$primaryMenu}
{* Search form *}
{if $currentContext && $requestedPage !== 'search'}
<div class="pkp_navigation_search_wrapper">
<a href="{url page="search"}" class="pkp_search pkp_search_desktop">
<span class="fa fa-search" aria-hidden="true"></span>
{translate key="common.search"}
</a>
</div>
{/if}
</div>
</div>
<div class="pkp_navigation_user_wrapper" id="navigationUserWrapper">
{load_menu name="user" id="navigationUser" ulClass="pkp_navigation_user" liClass="profile"}
</div>
</nav>
</div><!-- .pkp_head_wrapper -->
</header><!-- .pkp_structure_head -->
{* Wrapper for page content and sidebars *}
{if $isFullWidth}
{assign var=hasSidebar value=0}
{/if}
<div class="pkp_structure_content{if $hasSidebar} has_sidebar{/if}">
<div class="pkp_structure_main" role="main">
<a id="pkp_content_main"></a>
@@ -0,0 +1,23 @@
{**
* templates/frontend/components/headerHead.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Common site header <head> tag and contents.
*}
<head>
<meta charset="{$defaultCharset|escape}">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
{$pageTitleTranslated|strip_tags}
{* Add the journal name to the end of page titles *}
{if $requestedPage|escape|default:"index" != 'index' && $currentContext && $currentContext->getLocalizedName()}
| {$currentContext->getLocalizedName()}
{/if}
</title>
{load_header context="frontend"}
{load_stylesheet context="frontend"}
</head>
@@ -0,0 +1,42 @@
{**
* templates/frontend/components/navigationMenu.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 Primary navigation menu list for the application
*
* @uses navigationMenu array Hierarchical array of navigation menu item assignments
* @uses id string Element ID to assign the outer <ul>
* @uses ulClass string Class name(s) to assign the outer <ul>
* @uses liClass string Class name(s) to assign all <li> elements
*}
{if $navigationMenu}
<ul id="{$id|escape}" class="{$ulClass|escape} pkp_nav_list">
{foreach key=field item=navigationMenuItemAssignment from=$navigationMenu->menuTree}
{if !$navigationMenuItemAssignment->navigationMenuItem->getIsDisplayed()}
{continue}
{/if}
<li class="{$liClass|escape}">
<a href="{$navigationMenuItemAssignment->navigationMenuItem->getUrl()}">
{$navigationMenuItemAssignment->navigationMenuItem->getLocalizedTitle()}
</a>
{if $navigationMenuItemAssignment->navigationMenuItem->getIsChildVisible()}
<ul>
{foreach key=childField item=childNavigationMenuItemAssignment from=$navigationMenuItemAssignment->children}
{if $childNavigationMenuItemAssignment->navigationMenuItem->getIsDisplayed()}
<li class="{$liClass|escape}">
<a href="{$childNavigationMenuItemAssignment->navigationMenuItem->getUrl()}">
{$childNavigationMenuItemAssignment->navigationMenuItem->getLocalizedTitle()}
</a>
</li>
{/if}
{/foreach}
</ul>
{/if}
</li>
{/foreach}
</ul>
{/if}
@@ -0,0 +1,15 @@
{**
* templates/frontend/components/navigationMenus/dashboardMenuItem.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 Dashboard menuItem Template
*
*}
{$navigationMenuItem->getLocalizedTitle()|escape}
<span class="task_count">
{$unreadNotificationCount}
</span>
@@ -0,0 +1,29 @@
{**
* templates/frontend/components/pagination.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 Common template for displaying pagination
*
* @uses $prevUrl string URL to the previous page
* @uses $nextUrl string URL to the next page
* @uses $showingStart int The number of the first item shown on this page
* @uses $showingEnd int The number of the last item shown on this page
* @uses $total int The total number of items available
*}
{if $prevUrl || $nextUrl}
<div class="cmp_pagination" aria-label="{translate|escape key="common.pagination.label"}">
{if $prevUrl}
<a class="prev" href="{$prevUrl}">{translate key="help.previous"}</a>
{/if}
<span class="current">
{translate key="common.pagination" start=$showingStart end=$showingEnd total=$total}
</span>
{if $nextUrl}
<a class="next" href="{$nextUrl}">{translate key="help.next"}</a>
{/if}
</div>
{/if}
@@ -0,0 +1,127 @@
{**
* templates/frontend/components/registrationForm.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 basic registration form fields
*
* @uses $locale string Locale key to use in the affiliate field
* @uses $givenName string First name input entry if available
* @uses $familyName string Last name input entry if available
* @uses $countries array List of country options
* @uses $country string The selected country if available
* @uses $email string Email input entry if available
* @uses $username string Username input entry if available
*}
<fieldset class="identity">
<legend>
{translate key="user.profile"}
</legend>
<div class="fields">
<div class="given_name">
<label>
<span class="label">
{translate key="user.givenName"}
<span class="required" aria-hidden="true">*</span>
<span class="pkp_screen_reader">
{translate key="common.required"}
</span>
</span>
<input type="text" name="givenName" autocomplete="given-name" id="givenName" value="{$givenName|default:""|escape}" maxlength="255" required aria-required="true">
</label>
</div>
<div class="family_name">
<label>
<span class="label">
{translate key="user.familyName"}
</span>
<input type="text" name="familyName" autocomplete="family-name" id="familyName" value="{$familyName|default:""|escape}" maxlength="255">
</label>
</div>
<div class="affiliation">
<label>
<span class="label">
{translate key="user.affiliation"}
<span class="required" aria-hidden="true">*</span>
<span class="pkp_screen_reader">
{translate key="common.required"}
</span>
</span>
<input type="text" name="affiliation" autocomplete="organization" id="affiliation" value="{$affiliation|default:""|escape}" required aria-required="true">
</label>
</div>
<div class="country">
<label>
<span class="label">
{translate key="common.country"}
<span class="required" aria-hidden="true">*</span>
<span class="pkp_screen_reader">
{translate key="common.required"}
</span>
</span>
<select name="country" id="country" autocomplete="country-name" required aria-required="true">
<option></option>
{html_options options=$countries selected=$country}
</select>
</label>
</div>
</div>
</fieldset>
<fieldset class="login">
<legend>
{translate key="user.login"}
</legend>
<div class="fields">
<div class="email">
<label>
<span class="label">
{translate key="user.email"}
<span class="required" aria-hidden="true">*</span>
<span class="pkp_screen_reader">
{translate key="common.required"}
</span>
</span>
<input type="email" name="email" id="email" value="{$email|default:""|escape}" maxlength="90" required aria-required="true" autocomplete="email">
</label>
</div>
<div class="username">
<label>
<span class="label">
{translate key="user.username"}
<span class="required" aria-hidden="true">*</span>
<span class="pkp_screen_reader">
{translate key="common.required"}
</span>
</span>
<input type="text" name="username" id="username" value="{$username|default:""|escape}" maxlength="32" required aria-required="true" autocomplete="username">
</label>
</div>
<div class="password">
<label>
<span class="label">
{translate key="user.password"}
<span class="required" aria-hidden="true">*</span>
<span class="pkp_screen_reader">
{translate key="common.required"}
</span>
</span>
<input type="password" name="password" id="password" password="true" maxlength="32" required aria-required="true" autocomplete="new-password">
</label>
</div>
<div class="password">
<label>
<span class="label">
{translate key="user.repeatPassword"}
<span class="required" aria-hidden="true">*</span>
<span class="pkp_screen_reader">
{translate key="common.required"}
</span>
</span>
<input type="password" name="password2" id="password2" password="true" maxlength="32" required aria-required="true" autocomplete="new-password">
</label>
</div>
</div>
</fieldset>
@@ -0,0 +1,84 @@
{**
* templates/frontend/components/registrationFormContexts.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 role selection for all of the journals/presses on this site
*
* @uses $contexts array List of journals/presses on this site that have enabled registration
* @uses $readerUserGroups array Associative array of user groups with reader
* permissions in each context.
* @uses $authorUserGroups array Associative array of user groups with author
* permissions in each context.
* @uses $reviewerUserGroups array Associative array of user groups with reviewer
* permissions in each context.
* @uses $userGroupIds array List group IDs this user is assigned
*}
{* Only display the context role selection when registration is taking place
outside of the context of any one journal/press. *}
{if !$currentContext}
{* Allow users to register for any journal/press on this site *}
<fieldset name="contexts">
<legend>
{translate key="user.register.contextsPrompt"}
</legend>
<div class="fields">
<div id="contextOptinGroup" class="context_optin">
<ul class="contexts">
{foreach from=$contexts item=context}
{assign var=contextId value=$context->getId()}
{assign var=isSelected value=false}
<li class="context">
<div class="name">
{$context->getLocalizedName()}
</div class="name">
<fieldset class="roles">
<legend>
{translate key="user.register.otherContextRoles"}
</legend>
{foreach from=$readerUserGroups[$contextId] item=userGroup}
{if $userGroup->getPermitSelfRegistration()}
{assign var="userGroupId" value=$userGroup->getId()}
<label>
<input type="checkbox" name="readerGroup[{$userGroupId}]"{if in_array($userGroupId, $userGroupIds)} checked="checked"{/if}>
{$userGroup->getLocalizedName()}
</label>
{if in_array($userGroupId, $userGroupIds)}
{assign var=isSelected value=true}
{/if}
{/if}
{/foreach}
{foreach from=$reviewerUserGroups[$contextId] item=userGroup}
{if $userGroup->getPermitSelfRegistration()}
{assign var="userGroupId" value=$userGroup->getId()}
<label>
<input type="checkbox" name="reviewerGroup[{$userGroupId}]"{if in_array($userGroupId, $userGroupIds)} checked="checked"{/if}>
{$userGroup->getLocalizedName()}
</label>
{if in_array($userGroupId, $userGroupIds)}
{assign var=isSelected value=true}
{/if}
{/if}
{/foreach}
</fieldset>
{* Require the user to agree to the terms of the context's privacy policy *}
{if !$enableSiteWidePrivacyStatement && $context->getData('privacyStatement')}
<div class="context_privacy {if $isSelected}context_privacy_visible{/if}">
<label>
<input type="checkbox" name="privacyConsent[{$contextId}]" id="privacyConsent[{$contextId}]" value="1"{if $privacyConsent[$contextId]} checked="checked"{/if}>
{capture assign="privacyUrl"}{url router=\PKP\core\PKPApplication::ROUTE_PAGE context=$context->getPath() page="about" op="privacy"}{/capture}
{translate key="user.register.form.privacyConsentThisContext" privacyUrl=$privacyUrl}
</label>
</div>
{/if}
</li>
{/foreach}
</ul>
</div>
</div>
</fieldset>
{/if}
@@ -0,0 +1,28 @@
{**
* templates/frontend/objects/announcement_full.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 full view of an announcement, when the announcement is
* the primary element on the page.
*
* @uses $announcement Announcement The announcement to display
*}
<article class="obj_announcement_full">
<h1>
{$announcement->getLocalizedTitle()|escape}
</h1>
<div class="date">
{$announcement->getDatePosted()|date_format:$dateFormatShort}
</div>
<div class="description">
{if $announcement->getLocalizedDescription()}
{$announcement->getLocalizedDescription()|strip_unsafe_html}
{else}
{$announcement->getLocalizedDescriptionShort()|strip_unsafe_html}
{/if}
</div>
</article><!-- .obj_announcement_full -->
@@ -0,0 +1,37 @@
{**
* templates/frontend/objects/announcement_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 Display a summary view of an announcement
*
* @uses $announcement Announcement The announcement to display
* @uses $heading string HTML heading element, default: h2
*}
{if !$heading}
{assign var="heading" value="h2"}
{/if}
<article class="obj_announcement_summary">
<{$heading}>
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="announcement" op="view" path=$announcement->getId()}">
{$announcement->getLocalizedTitle()|escape}
</a>
</{$heading}>
<div class="date">
{$announcement->getDatePosted()|date_format:$dateFormatShort}
</div>
<div class="summary">
{$announcement->getLocalizedDescriptionShort()|strip_unsafe_html}
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="announcement" op="view" path=$announcement->getId()}" class="read_more">
<span aria-hidden="true" role="presentation">
{translate key="common.readMore"}
</span>
<span class="pkp_screen_reader">
{translate key="common.readMoreWithTitle" title=$announcement->getLocalizedTitle()|escape}
</span>
</a>
</div>
</article><!-- .obj_announcement_summary -->
@@ -0,0 +1,42 @@
{**
* templates/frontend/objects/announcements_list.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 a list of announcements
*
* @uses $numAnnouncements int The number of announcements to display in the list
* @uses $announcements Announcement[] The list of announcements
*}
{if $numAnnouncements && $announcements|@count}
<section class="cmp_announcements highlight_first">
<a id="homepageAnnouncements"></a>
<h2>
{translate key="announcement.announcements"}
</h2>
{foreach name=announcements from=$announcements item=announcement}
{if $smarty.foreach.announcements.iteration > $numAnnouncements}
{break}
{/if}
{if $smarty.foreach.announcements.iteration == 1}
{include file="frontend/objects/announcement_summary.tpl" heading="h3"}
<div class="more">
{else}
<article class="obj_announcement_summary">
<h4>
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="announcement" op="view" path=$announcement->getId()}">
{$announcement->getLocalizedTitle()|escape}
</a>
</h4>
<div class="date">
{$announcement->getDatePosted()|date_format:$dateFormatShort}
</div>
</article>
{/if}
{/foreach}
</div><!-- .more -->
</section>
{/if}
@@ -0,0 +1,25 @@
{**
* templates/frontend/pages/about.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 journal's or press's description, contact
* details, policies and more.
*
* @uses $currentContext Journal|Press The current journal or press
*}
{include file="frontend/components/header.tpl" pageTitle="about.aboutContext"}
<div class="page page_about">
{include file="frontend/components/breadcrumbs.tpl" currentTitleKey="about.aboutContext"}
<h1>
{translate key="about.aboutContext"}
</h1>
{include file="frontend/components/editLink.tpl" page="management" op="settings" path="context" anchor="masthead" sectionTitleKey="about.aboutContext"}
{$currentContext->getLocalizedData('about')}
</div><!-- .page -->
{include file="frontend/components/footer.tpl"}
@@ -0,0 +1,23 @@
{**
* templates/frontend/pages/announcements.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 which represents a single announcement
*
* @uses $announcement Announcement The announcement to display
*}
{include file="frontend/components/header.tpl" pageTitleTranslated=$announcement->getLocalizedTitle()|escape}
<div class="page page_announcement">
{include file="frontend/components/breadcrumbs_announcement.tpl" currentTitle=$announcement->getLocalizedTitle()|escape}
{* Display book details *}
{include file="frontend/objects/announcement_full.tpl"}
</div><!-- .page -->
{include file="frontend/components/footer.tpl"}
@@ -0,0 +1,26 @@
{**
* templates/frontend/pages/announcements.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 the latest announcements
*
* @uses $announcements array List of announcements
*}
{include file="frontend/components/header.tpl" pageTitle="announcement.announcements"}
<div class="page page_announcements">
{include file="frontend/components/breadcrumbs.tpl" currentTitleKey="announcement.announcements"}
<h1>
{translate key="announcement.announcements"}
</h1>
{include file="frontend/components/editLink.tpl" page="management" op="settings" path="announcements" anchor="announcements" sectionTitleKey="announcement.announcements"}
{$announcementsIntroduction}
{include file="frontend/components/announcements.tpl"}
</div><!-- .page -->
{include file="frontend/components/footer.tpl"}
@@ -0,0 +1,118 @@
{**
* templates/frontend/pages/contact.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 the press's contact details.
*
* @uses $currentContext Journal|Press The current journal or press
* @uses $mailingAddress string Mailing address for the journal/press
* @uses $contactName string Primary contact name
* @uses $contactTitle string Primary contact title
* @uses $contactAffiliation string Primary contact affiliation
* @uses $contactPhone string Primary contact phone number
* @uses $contactEmail string Primary contact email address
* @uses $supportName string Support contact name
* @uses $supportPhone string Support contact phone number
* @uses $supportEmail string Support contact email address
*}
{include file="frontend/components/header.tpl" pageTitle="about.contact"}
<div class="page page_contact">
{include file="frontend/components/breadcrumbs.tpl" currentTitleKey="about.contact"}
<h1>
{translate key="about.contact"}
</h1>
{include file="frontend/components/editLink.tpl" page="management" op="settings" path="context" anchor="contact" sectionTitleKey="about.contact"}
{* Contact section *}
<div class="contact_section">
{if $mailingAddress}
<div class="address">
{$mailingAddress|nl2br|strip_unsafe_html}
</div>
{/if}
{* Primary contact *}
{if $contactTitle || $contactName || $contactAffiliation || $contactPhone || $contactEmail}
<div class="contact primary">
<h2>
{translate key="about.contact.principalContact"}
</h2>
{if $contactName}
<div class="name">
{$contactName|escape}
</div>
{/if}
{if $contactTitle}
<div class="title">
{$contactTitle|escape}
</div>
{/if}
{if $contactAffiliation}
<div class="affiliation">
{$contactAffiliation|strip_unsafe_html}
</div>
{/if}
{if $contactPhone}
<div class="phone">
<span class="label">
{translate key="about.contact.phone"}
</span>
<span class="value">
{$contactPhone|escape}
</span>
</div>
{/if}
{if $contactEmail}
<div class="email">
{mailto address=$contactEmail encode='javascript'}
</div>
{/if}
</div>
{/if}
{* Technical contact *}
{if $supportName || $supportPhone || $supportEmail}
<div class="contact support">
<h2>
{translate key="about.contact.supportContact"}
</h2>
{if $supportName}
<div class="name">
{$supportName|escape}
</div>
{/if}
{if $supportPhone}
<div class="phone">
<span class="label">
{translate key="about.contact.phone"}
</span>
<span class="value">
{$supportPhone|escape}
</span>
</div>
{/if}
{if $supportEmail}
<div class="email">
{mailto address=$supportEmail encode='javascript'}
</div>
{/if}
</div>
{/if}
</div>
</div><!-- .page -->
{include file="frontend/components/footer.tpl"}
@@ -0,0 +1,23 @@
{**
* templates/frontend/pages/editorialTeam.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 the editorial team.
*
* @uses $currentContext Journal|Press The current journal or press
*}
{include file="frontend/components/header.tpl" pageTitle="about.editorialTeam"}
<div class="page page_editorial_team">
{include file="frontend/components/breadcrumbs.tpl" currentTitleKey="about.editorialTeam"}
<h1>
{translate key="about.editorialTeam"}
</h1>
{include file="frontend/components/editLink.tpl" page="management" op="settings" path="context" anchor="masthead" sectionTitleKey="about.editorialTeam"}
{$currentContext->getLocalizedData('editorialTeam')}
</div><!-- .page -->
{include file="frontend/components/footer.tpl"}
@@ -0,0 +1,28 @@
{**
* templates/frontend/pages/error.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Generic error page.
* Displays a simple error message and (optionally) a return link.
*}
{include file="frontend/components/header.tpl"}
<div class="page page_error">
{include file="frontend/components/breadcrumbs.tpl" currentTitleKey=$pageTitle}
<h1>
{translate key=$pageTitle}
</h1>
<div class="description">
{translate key=$errorMsg params=$errorParams}
</div>
{if $backLink}
<div class="cmp_back_link">
<a href="{$backLink}">{translate key=$backLinkLabel}</a>
</div>
{/if}
</div>
{include file="frontend/components/footer.tpl"}
@@ -0,0 +1,29 @@
{**
* templates/frontend/pages/information.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.
*
* Information page.
*
*}
{if !$contentOnly}
{include file="frontend/components/header.tpl" pageTitle=$pageTitle}
{/if}
<div class="page page_information">
{include file="frontend/components/breadcrumbs.tpl" currentTitleKey=$pageTitle}
<h1>
{translate key=$pageTitle}
</h1>
{include file="frontend/components/editLink.tpl" page="management" op="settings" path="website" anchor="setup/information" sectionTitleKey="manager.website.information"}
<div class="description">
{$content}
</div>
</div>
{if !$contentOnly}
{include file="frontend/components/footer.tpl"}
{/if}
@@ -0,0 +1,32 @@
{**
* templates/frontend/pages/message.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Generic message page.
* Displays a simple message and (optionally) a return link.
*}
{include file="frontend/components/header.tpl"}
<div class="page page_message">
{include file="frontend/components/breadcrumbs.tpl" currentTitleKey=$pageTitle}
<h1>
{translate key=$pageTitle}
</h1>
<div class="description">
{if $messageTranslated}
{$messageTranslated}
{else}
{translate key=$message}
{/if}
</div>
{if $backLink}
<div class="cmp_back_link">
<a href="{$backLink}">{translate key=$backLinkLabel}</a>
</div>
{/if}
</div>
{include file="frontend/components/footer.tpl"}
@@ -0,0 +1,19 @@
{**
* frontend/pages/navigationMenuItemViewContent.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.
*
* Display NavigationMenuItem content
*}
{include file="frontend/components/header.tpl" pageTitleTranslated=$title}
{include file="frontend/components/breadcrumbs.tpl" currentTitle=$title}
<div class="page">
<h1 class="page_title">{$title|escape}</h1>
{$content}
</div>
{include file="frontend/components/footer.tpl"}
@@ -0,0 +1,22 @@
{**
* templates/frontend/pages/privacy.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 the privacy policy.
*
* @uses $currentContext Journal|Press The current journal or press
*}
{include file="frontend/components/header.tpl" pageTitle="manager.setup.privacyStatement"}
<div class="page page_privacy">
{include file="frontend/components/breadcrumbs.tpl" currentTitleKey="manager.setup.privacyStatement"}
<h1>
{translate key="manager.setup.privacyStatement"}
</h1>
{$privacyStatement}
</div><!-- .page -->
{include file="frontend/components/footer.tpl"}
@@ -0,0 +1,84 @@
{**
* templates/frontend/pages/submissions.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 information about submissions.
*
* @uses $currentContext Journal|Press The current journal or press
* @uses $submissionChecklist array List of requirements for submissions
* @uses $submissionChecklistAfterContent string Optional data to include after the checklist
*}
{include file="frontend/components/header.tpl" pageTitle="about.submissions"}
<div class="page page_submissions">
{include file="frontend/components/breadcrumbs.tpl" currentTitleKey="about.submissions"}
<h1>
{translate key="about.submissions"}
</h1>
<div class="cmp_notification">
{if $sections|@count == 0 || $currentContext->getData('disableSubmissions')}
{translate key="author.submit.notAccepting"}
{else}
{if $isUserLoggedIn}
{capture assign="newSubmission"}<a href="{url page="submission"}">{translate key="about.onlineSubmissions.newSubmission"}</a>{/capture}
{capture assign="viewSubmissions"}<a href="{url page="submissions"}">{translate key="about.onlineSubmissions.viewSubmissions"}</a>{/capture}
{translate key="about.onlineSubmissions.submissionActions" newSubmission=$newSubmission viewSubmissions=$viewSubmissions}
{else}
{capture assign="login"}<a href="{url page="login"}">{translate key="about.onlineSubmissions.login"}</a>{/capture}
{capture assign="register"}<a href="{url page="user" op="register"}">{translate key="about.onlineSubmissions.register"}</a>{/capture}
{translate key="about.onlineSubmissions.registrationRequired" login=$login register=$register}
{/if}
{/if}
</div>
{if $currentContext->getLocalizedData('authorGuidelines')}
<div class="author_guidelines" id="authorGuidelines">
<h2>
{translate key="about.authorGuidelines"}
{include file="frontend/components/editLink.tpl" page="management" op="settings" path="workflow" anchor="submission/instructions" sectionTitleKey="about.authorGuidelines"}
</h2>
{$currentContext->getLocalizedData('authorGuidelines')}
</div>
{/if}
{if $submissionChecklist}
<div class="submission_checklist">
<h2>
{translate key="about.submissionPreparationChecklist"}
{include file="frontend/components/editLink.tpl" page="management" op="settings" path="workflow" anchor="submission/instructions" sectionTitleKey="about.submissionPreparationChecklist"}
</h2>
{$submissionChecklist}
</div>
{/if}
{if isset($submissionChecklistAfterContent)}
{$submissionChecklistAfterContent}
{/if}
{if $currentContext->getLocalizedData('copyrightNotice')}
<div class="copyright_notice">
<h2>
{translate key="about.copyrightNotice"}
{include file="frontend/components/editLink.tpl" page="management" op="settings" path="workflow" anchor="submission/authorGuidelines" sectionTitleKey="about.copyrightNotice"}
</h2>
{$currentContext->getLocalizedData('copyrightNotice')}
</div>
{/if}
{if $currentContext->getLocalizedData('privacyStatement')}
<div class="privacy_statement" id="privacyStatement">
<h2>
{translate key="about.privacyStatement"}
{include file="frontend/components/editLink.tpl" page="management" op="settings" path="website" anchor="setup/privacy" sectionTitleKey="about.privacyStatement"}
</h2>
{$currentContext->getLocalizedData('privacyStatement')}
</div>
{/if}
</div><!-- .page -->
{include file="frontend/components/footer.tpl"}
@@ -0,0 +1,108 @@
{**
* templates/frontend/pages/userLogin.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* User login form.
*
*}
{include file="frontend/components/header.tpl" pageTitle="user.login"}
<div class="page page_login">
{include file="frontend/components/breadcrumbs.tpl" currentTitleKey="user.login"}
<h1>
{translate key="user.login"}
</h1>
<p>
{translate key="common.requiredField"}
</p>
{* A login message may be displayed if the user was redireceted to the
login page from another request. Examples include if login is required
before dowloading a file. *}
{if $loginMessage}
<p>
{translate key=$loginMessage}
</p>
{/if}
<form class="cmp_form cmp_form login" id="login" method="post" action="{$loginUrl}" role="form">
{csrf}
{if $error}
<div class="pkp_form_error">
{translate key=$error reason=$reason}
</div>
{/if}
<input type="hidden" name="source" value="{$source|default:""|escape}" />
<fieldset class="fields">
<legend class="pkp_screen_reader">{translate key="user.login"}</legend>
<div class="username">
<label>
<span class="label">
{translate key="user.usernameOrEmail"}
<span class="required" aria-hidden="true">*</span>
<span class="pkp_screen_reader">
{translate key="common.required"}
</span>
</span>
<input type="text" name="username" id="username" value="{$username|default:""|escape}" required aria-required="true" autocomplete="username">
</label>
</div>
<div class="password">
<label>
<span class="label">
{translate key="user.password"}
<span class="required" aria-hidden="true">*</span>
<span class="pkp_screen_reader">
{translate key="common.required"}
</span>
</span>
<input type="password" name="password" id="password" value="{$password|default:""|escape}" password="true" maxlength="32" required aria-required="true" autocomplete="current-password">
<a href="{url page="login" op="lostPassword"}">
{translate key="user.login.forgotPassword"}
</a>
</label>
</div>
<div class="remember checkbox">
<label>
<input type="checkbox" name="remember" id="remember" value="1" checked="$remember">
<span class="label">
{translate key="user.login.rememberUsernameAndPassword"}
</span>
</label>
</div>
{* recaptcha spam blocker *}
{if $recaptchaPublicKey}
<fieldset class="recaptcha_wrapper">
<div class="fields">
<div class="recaptcha">
<div class="g-recaptcha" data-sitekey="{$recaptchaPublicKey|escape}">
</div><label for="g-recaptcha-response" style="display:none;" hidden>Recaptcha response</label>
</div>
</div>
</fieldset>
{/if}
<div class="buttons">
<button class="submit" type="submit">
{translate key="user.login"}
</button>
{if !$disableUserReg}
{capture assign=registerUrl}{url page="user" op="register" source=$source}{/capture}
<a href="{$registerUrl}" class="register">
{translate key="user.login.registerNewAccount"}
</a>
{/if}
</div>
</fieldset>
</form>
</div><!-- .page -->
{include file="frontend/components/footer.tpl"}
@@ -0,0 +1,60 @@
{**
* templates/frontend/pages/userLostPassword.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* Password reset form.
*
*}
{include file="frontend/components/header.tpl" pageTitle="user.login.resetPassword"}
<div class="page page_lost_password">
{include file="frontend/components/breadcrumbs.tpl" currentTitleKey="user.login.resetPassword"}
<h1>
{translate key="user.login.resetPassword"}
</h1>
<p>{translate key="user.login.resetPasswordInstructions"}</p>
<form class="cmp_form lost_password" id="lostPasswordForm" action="{url page="login" op="requestResetPassword"}" method="post" role="form">
{csrf}
{if $error}
<div class="pkp_form_error">
{translate key=$error reason=$reason}
</div>
{/if}
<div class="fields">
<div class="email">
<label>
<span class="label">
{translate key="user.login.registeredEmail"}
<span class="required" aria-hidden="true">*</span>
<span class="pkp_screen_reader">
{translate key="common.required"}
</span>
</span>
<input type="email" name="email" id="email" value="{$email|escape}" required aria-required="true" autocomplete="email">
</label>
</div>
<div class="buttons">
<button class="submit" type="submit">
{translate key="user.login.resetPassword"}
</button>
{if !$disableUserReg}
{capture assign=registerUrl}{url page="user" op="register" source=$source}{/capture}
<a href="{$registerUrl}" class="register">
{translate key="user.login.registerNewAccount"}
</a>
{/if}
</div>
</div>
</form>
</div><!-- .page -->
{include file="frontend/components/footer.tpl"}
@@ -0,0 +1,170 @@
{**
* templates/frontend/pages/userRegister.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 registration form.
*
* @uses $primaryLocale string The primary locale for this journal/press
*}
{include file="frontend/components/header.tpl" pageTitle="user.register"}
<div class="page page_register">
{include file="frontend/components/breadcrumbs.tpl" currentTitleKey="user.register"}
<h1>
{translate key="user.register"}
</h1>
<p>
{translate key="common.requiredField"}
</p>
<form class="cmp_form register" id="register" method="post" action="{url op="register"}" role="form">
{csrf}
{if $source}
<input type="hidden" name="source" value="{$source|escape}" />
{/if}
{include file="common/formErrors.tpl"}
{include file="frontend/components/registrationForm.tpl"}
{* When a user is registering with a specific journal *}
{if $currentContext}
<fieldset class="consent">
{if $currentContext->getData('privacyStatement')}
{* Require the user to agree to the terms of the privacy policy *}
<legend class="pkp_screen_reader">{translate key="user.register.form.privacyConsentLabel"}</legend>
<div class="fields">
<div class="optin optin-privacy">
<label>
<input type="checkbox" name="privacyConsent" value="1"{if $privacyConsent} checked="checked"{/if}>
{capture assign="privacyUrl"}{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="about" op="privacy"}{/capture}
{translate key="user.register.form.privacyConsent" privacyUrl=$privacyUrl}
</label>
</div>
</div>
{/if}
{* Ask the user to opt into public email notifications *}
<div class="fields">
<div class="optin optin-email">
<label>
<input type="checkbox" name="emailConsent" value="1"{if $emailConsent} checked="checked"{/if}>
{translate key="user.register.form.emailConsent"}
</label>
</div>
</div>
</fieldset>
{* Allow the user to sign up as a reviewer *}
{assign var=contextId value=$currentContext->getId()}
{assign var=userCanRegisterReviewer value=0}
{foreach from=$reviewerUserGroups[$contextId] item=userGroup}
{if $userGroup->getPermitSelfRegistration()}
{assign var=userCanRegisterReviewer value=$userCanRegisterReviewer+1}
{/if}
{/foreach}
{if $userCanRegisterReviewer}
<fieldset class="reviewer">
{if $userCanRegisterReviewer > 1}
<legend>
{translate key="user.reviewerPrompt"}
</legend>
{capture assign="checkboxLocaleKey"}user.reviewerPrompt.userGroup{/capture}
{else}
{capture assign="checkboxLocaleKey"}user.reviewerPrompt.optin{/capture}
{/if}
<div class="fields">
<div id="reviewerOptinGroup" class="optin">
{foreach from=$reviewerUserGroups[$contextId] item=userGroup}
{if $userGroup->getPermitSelfRegistration()}
<label>
{assign var="userGroupId" value=$userGroup->getId()}
<input type="checkbox" name="reviewerGroup[{$userGroupId}]" value="1"{if in_array($userGroupId, $userGroupIds)} checked="checked"{/if}>
{translate key=$checkboxLocaleKey userGroup=$userGroup->getLocalizedName()}
</label>
{/if}
{/foreach}
</div>
<div id="reviewerInterests" class="reviewer_interests">
<label>
<span class="label">
{translate key="user.interests"}
</span>
<input type="text" name="interests" id="interests" value="{$interests|default:""|escape}">
</label>
</div>
</div>
</fieldset>
{/if}
{/if}
{include file="frontend/components/registrationFormContexts.tpl"}
{* When a user is registering for no specific journal, allow them to
enter their reviewer interests *}
{if !$currentContext}
<div class="fields">
<div class="reviewer_nocontext_interests">
<label>
<span class="label">
{translate key="user.register.noContextReviewerInterests"}
</span>
<input type="text" name="interests" id="interests" value="{$interests|default:""|escape}">
</label>
</div>
</div>
{* Require the user to agree to the terms of the privacy policy *}
{if $siteWidePrivacyStatement}
<div class="fields">
<div class="optin optin-privacy">
<label>
<input type="checkbox" name="privacyConsent[{\PKP\core\PKPApplication::CONTEXT_ID_NONE}]" id="privacyConsent[{\PKP\core\PKPApplication::CONTEXT_ID_NONE}]" value="1"{if $privacyConsent[\PKP\core\PKPApplication::CONTEXT_ID_NONE]} checked="checked"{/if}>
{capture assign="privacyUrl"}{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="about" op="privacy"}{/capture}
{translate key="user.register.form.privacyConsent" privacyUrl=$privacyUrl}
</label>
</div>
</div>
{/if}
{* Ask the user to opt into public email notifications *}
<div class="fields">
<div class="optin optin-email">
<label>
<input type="checkbox" name="emailConsent" value="1"{if $emailConsent} checked="checked"{/if}>
{translate key="user.register.form.emailConsent"}
</label>
</div>
</div>
{/if}
{* recaptcha spam blocker *}
{if $recaptchaPublicKey}
<fieldset class="recaptcha_wrapper">
<div class="fields">
<div class="recaptcha">
<div class="g-recaptcha" data-sitekey="{$recaptchaPublicKey|escape}">
</div><label for="g-recaptcha-response" style="display:none;" hidden>Recaptcha response</label>
</div>
</div>
</fieldset>
{/if}
<div class="buttons">
<button class="submit" type="submit">
{translate key="user.register"}
</button>
{capture assign="rolesProfileUrl"}{url page="user" op="profile" path="roles"}{/capture}
<a href="{url page="login" source=$rolesProfileUrl}" class="login">{translate key="user.login"}</a>
</div>
</form>
</div><!-- .page -->
{include file="frontend/components/footer.tpl"}
@@ -0,0 +1,48 @@
{**
* templates/frontend/pages/userRegisterComplete.tpl
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @brief A landing page displayed to users upon successful registration
*}
{include file="frontend/components/header.tpl"}
<div class="page page_register_complete">
{include file="frontend/components/breadcrumbs.tpl" currentTitleKey=$pageTitle}
<h1>
{translate key=$pageTitle}
</h1>
<p>
{translate key="user.login.registrationComplete.instructions"}
</p>
<ul class="registration_complete_actions">
{if array_intersect(array(\PKP\security\Role::ROLE_ID_MANAGER, \PKP\security\Role::ROLE_ID_SUB_EDITOR, \PKP\security\Role::ROLE_ID_ASSISTANT, \PKP\security\Role::ROLE_ID_REVIEWER), (array)$userRoles)}
<li class="view_submissions">
<a href="{url page="submissions"}">
{translate key="user.login.registrationComplete.manageSubmissions"}
</a>
</li>
{/if}
{if $currentContext}
<li class="new_submission">
<a href="{url page="submission"}">
{translate key="user.login.registrationComplete.newSubmission"}
</a>
</li>
{/if}
<li class="edit_profile">
<a href="{url router=\PKP\core\PKPApplication::ROUTE_PAGE page="user" op="profile"}">
{translate key="user.editMyProfile"}
</a>
</li>
<li class="browse">
<a href="{url page="index"}">
{translate key="user.login.registrationComplete.continueBrowsing"}
</a>
</li>
</ul>
</div>
{include file="frontend/components/footer.tpl"}