OJS美化

XIAO Qinghe
XIAO Qinghe
管理员
1779
文章
0
粉丝
建站资源评论388字数 3246阅读10分49秒阅读模式

1、汉化问题

需要先安装Default Translation Plugin,大部分都已汉化。
不同的插件plugins和主题(也在plugins里)都有locale文件夹,可以补充zh_CN文件夹,把en文件夹里的locale.po文件拷贝进去,然后一一修改即可。
如:修改make a submission中文名字,在plugins/blocks里面找到makeSubmission,修改
msgid "plugins.block.makeSubmission.linkLabel"
msgstr "提交文章"
三个地方有汉化文件:
(1)根文件locale
(2)lib/pkp/locale
(3)plugins/~/locale
另外,出现##default.groups.name.translator##
需要在网站后台Roles里面修改,将其修改为“译者”即可。
如果不是插件,直接在根目录locale中修改zh_CN
如修改文稿为投稿
另外一例:中文版显示“期22,2024”,显然不符合规则,但不好改,不如将期改回No.
需要在根目录locale中zh_CN文件夹中locale.po将issue.number; issue. no中的“期”改为“No.”;
另外,how to cite中还有“期”,在插件文件夹lib/vendor/cite-style-language/locale中把“期”改为“No.”即可。

2、修改字体

部分theme的字体无法显示,可以在custom stylesheet中进行修改,如把所有字体都改成arial:
body {
  font-family: Arial, Helvetica, sans-serif;
}
h1,h2,h3,h4,h5,h6 {
 font-family: Arial, Helvetica, sans-serif;
}
.h1,.h2,.h3,.h4,.h5,.h6 {
 font-family: Arial, Helvetica, sans-serif;
}
.btn {
 font-family: Arial, Helvetica, sans-serif
}
.card-title {
 font-family: Arial, Helvetica, sans-serif
}
.dropdown-header {
 font-family: Arial, Helvetica, sans-serif
}
.navbar-logo-text {
 font-family: Arial, Helvetica, sans-serif
}
#connect-orcid-button {
 font-family: Arial, Helvetica, sans-serif
}
.form-register .list-group-item-heading {
font-family: Arial, Helvetica, sans-serif
}
.article-summary-title {
 font-family: Arial, Helvetica, sans-serif
}
.article-summary-date {
font-family: Arial, Helvetica, sans-serif
}
.article-details-issue-identifier {
font-family: Arial, Helvetica, sans-serif
}
.author-symbol {
font-family: Arial, Helvetica, sans-serif
}
.issue-toc-section-title {
font-family: Arial, Helvetica, sans-serif
}
.announcement-summary-date {
font-family: Arial, Helvetica, sans-serif
}
.homepage-issue-published {
font-family: Arial, Helvetica, sans-serif
}
.page-announcement .announcement0date {
font-family: Arial, Helvetica, sans-serif
}
.page-search .pagination strong,
.page-search .pagination a {
font-family: Arial, Helvetica, sans-serif
}
.author-details-issue {
font-family: Arial, Helvetica, sans-serif
}
.category-title {
font-family: Arial, Helvetica, sans-serif
}
.category-subcategories-list li a {
font-family: Arial, Helvetica, sans-serif
}
.block_make_submission .block_make_submission_link {
font-family: Arial, Helvetica, sans-serif
}

3、增加一个scroll up 的图标

由于文章比较长,所以在底部增加一个scroll up图标就很有必要,首先安装custom header plugin
在header加入:
<button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
在footer加入:
<script>
// Get the button
let mybutton = document.getElementById("myBtn");
// When the user scrolls down 20px from the top of the document, show the button
window.onscroll = function() {scrollFunction()};
function scrollFunction() {
  if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
    mybutton.style.display = "block";
  } else {
    mybutton.style.display = "none";
  }
}
// When the user clicks on the button, scroll to the top of the document
function topFunction() {
  document.body.scrollTop = 0;
  document.documentElement.scrollTop = 0;
}
</script>
然后再在style sheet中加入如下css,并上传即可:
#myBtn {
  display: none; /* Hidden by default */
  position: fixed; /* Fixed/sticky position */
  bottom: 20px; /* Place the button at the bottom of the page */
  right: 30px; /* Place the button 30px from the right */
  z-index: 99; /* Make sure it does not overlap */
  border: none; /* Remove borders */
  outline: none; /* Remove outline */
  background-color: red; /* Set a background color */
  color: white; /* Text color */
  cursor: pointer; /* Add a mouse pointer on hover */
  padding: 15px; /* Some padding */
  border-radius: 10px; /* Rounded corners */
  font-size: 18px; /* Increase font size */
}
#myBtn:hover {
  background-color: #555; /* Add a dark-grey background on hover */
}

4、修改页脚logo

 

只需要替换templates/images中的相关图片即可。
另外,可以删除页脚的logo:
lib/pkp/templates/frontend/components
Demo: journals.chinesecs.cn

5、更换域名

 

除了在网站设置里更换域名之外,需要修改config.inc.php
注意有两个地方需要修改;除了更换域名,也可以添加域名:
base_url = "https://jrcc1.chinesecs.cc";"https://journals.chinesecs.cc"
allowed_hosts = "[\"jrcc1.chinesecs.cc\","\journals.chinesecs.cc\"]"

6、更换服务器

1、备份ojs所有文件,包括files(如果列在别处);
2、备份数据库;
3、以上都可以通过宝塔面板进行;
4、在新服务器,通过宝塔面板新建网站,输入新网址,并申请ssl;(提前解析好);
5、将ojs所有文件上传到新网站文件夹;上传备份数据库,并导入;
6、注意修改config.inc.php内容如下:

1)修改网址,有两个地方:

base_url = "https://journals.chinesecs.cc"
allowed_hosts = "[\"journals.chinesecs.cc\"]"

2)修改数据库

name以及password修改成新数据库的名称与密码;

3)修改files路径(如果在根目录,可以不用修改)

如果不成功,如500错误,可能是文件解压不完全或者丢失,可以再次上传。

注意服务器环境:需要用apache

具体参考:

https://docs.pkp.sfu.ca/faq/en/site-administration#:~:text=How%20can%20I%20move%20an%20installation%20to%20a,the%20base%20install%20directory%20and%20non-public%20files%20directory

 

7、移除index.php

首先在config.inc.php中把restful_Url设置成on

其次,在htacess中加入:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
</IfModule>

 

参考:https://docs.pkp.sfu.ca/faq/en/site-administration#how-can-i-remove-indexphp-from-the-urls-in-ojs

 

8、修改菜单字体大小

一般是在主题中修改相关代码,如healthscience主题,路径是:

~/plugins/themes/~/styles/components/header.less

 

9、修改custom style sheet

路径是~/public/journals/1(此为杂志所在文件夹);site中的sheet可以删除。

 

注意:修改css后,需要清除缓存。

 

10、升级ojs

(1)注意首先做好备份;

(2)新建文件夹,更改网站目录;

(3)上传新系统,解压;

(4)复制cache、files文件,覆盖;

(5)修改inc文件;

(6)修改install=on 为off;

(7)https://你的域名/ojs/index.php/install/upgrade

或者将cache、files、inc文件全部覆盖新系统?

 

1、新建文件夹
2、剪切旧文件到新建文件夹
3、原文件夹上传新系统
4、解压
5、复制旧Cache、files、plugins文件覆盖
6、复制其他文件如favicon、hitaccess
7、修改inc文件,主要是网址、数据库、文件夹
8、访问/index.php/index/upgrade
9、install=off 改成on

 

然后全部覆盖

不成功:全部覆盖?

如果出现上传错误,修改files权限为777

 

11、增加下载、浏览数量(如果是其他主题,参见下文)

文章页:

<section class="item abstract">
<span>
<h2 class="lable">Counts</h2>
{assign var=galleys value=$article->getGalleys()}
Views: {$article->getViews()}
{if $galleys}
{foreach from=$galleys item=galley name=galleyList}
/ Downloads: {$galley->getViews()}
{/foreach}
</span>
</section>
{/if}

templates/frontend/objects/article_details.tpl

 

列表页:

{assign var=galleys value=$article->getGalleys()}
Views: {$article->getViews()}
{if $galleys}
    {foreach from=$galleys item=galley name=galleyList}
       /
    {/foreach}
{/if}
{if $galleys}
{foreach from=$galleys item=galley name=galleyList}
{$galley->getGalleyLabel()} Downloaded: {$galley->getViews()} times
{/foreach}
{/if}
</div>
{/if}
templates/frontend/objects/article_summary.tpl

 

注意:只有官方默认主题才有效。

 

12、修改页脚(全部)

 

路径:/lib/pkp/templates/frontend/components

如增加在 {$pageFooter}增加:© 2025 is licensed under <a href="https://creativecommons.org/licenses/by/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer">CC BY 4.0 <img src="https://docs.pkp.sfu.ca/img/creativecommons.svg" alt="知识共享标志" /><img src="https://docs.pkp.sfu.ca/img/attribution.svg" alt="归因图标" /></a>

 

13、下载量汉化:

路径:/templates/frontend/objects

<section class="item abstract">
<span>
<h2 class="lable">{translate key="article.Counts"}</h2>
{assign var=galleys value=$article->getGalleys()}
{translate key="article.Views"}: {$article->getViews()}
{if $galleys}
{foreach from=$galleys item=galley name=galleyList}
/ {translate key="article.Downloads"}: {$galley->getViews()}
{/foreach}
</span>
</section>
{/if}

 

第一步:locale/en/locale

msgid "article.Counts"
msgstr "Counts"

msgid "article.Views"
msgstr "Views"

msgid "article.Downloads"
msgstr "Downloads"

第二步:locale/zh_CN/locale

msgid "article.Counts"
msgstr "统计"

msgid "article.Views"
msgstr "浏览"

msgid "article.Downloads"
msgstr "下载"

 

14、其他主题增加下载量

路径:/plugins/themes/classic/templates/frontend/objects

details.tpl: (放在 {call_hook name="Templates::Article::Main"}之后)

<span>
<h2 class="lable">{translate key="article.Counts"}</h2>
{assign var=galleys value=$article->getGalleys()}
{translate key="article.Views"}: {$article->getViews()}
{if $galleys}
{foreach from=$galleys item=galley name=galleyList}
/ {translate key="article.Downloads"}: {$galley->getViews()}
{/foreach}
</span>
</section>
{/if}

 

summary.tpl:(放在 {call_hook name="Templates::Issue::Issue::Article"}</article>之前)

{assign var=galleys value=$article->getGalleys()}
{translate key="article.Views"}: {$article->getViews()}
{if $galleys}
{foreach from=$galleys item=galley name=galleyList}
/ {translate key="article.Downloaded"}: {$galley->getViews()}
{/foreach}
{/if}

 

参加:https://forum.pkp.sfu.ca/t/how-to-get-total-pdf-downloads-count-in-ojs-3-3-x-x/70449/7

15、开启文章下载量图示

在website主题设置中打开Use bar type of the chart for usage statistics display.

汉化Downloads

在locale增加:plugins.themes.healthSciences.displayStats.downloads

为“下载”

其他主题改为:msgid "plugins.themes.classic.displayStats.downloads"
msgstr "下载"

 

16、给期刊图片增加阴影

1)journals主页:~/plugins/themes/default/styles/pages/indexSite.less

增加:

box-shadow: 6px 5px 5px -4px rgba(0, 0, 0, 0.37);
width: 100%;
border: 1px solid #e0dddd;

2)其他主题,如classic

~/plugins/themes/classic/less/objects/issue-summary.less

以及issue-toc.less

 

17、文章页面增加“基金项目”

/plugins/themes/classic/templates/frontend/objects/article_details/tpl

 

在keywords下面增加如下代码:

 

{if !empty($publication->getLocalizedData('supportingAgencies'))}
<div class="item published">
<div class="label"><h3>
{translate key="submission.supportingAgencies"}</h3>
</div>
<div class="value"><p>
{foreach name="supportingAgencies" from=$publication->getLocalizedData('supportingAgencies') item="supportingAgency"}
{$supportingAgency|escape}{if !$smarty.foreach.supportingAgencies.last}{translate key="common.commaListSeparator"}{/if}
{/foreach}</p>
</div>
</div>
{/if}
汉化:

/locale/en

msgid "submission.supportingAgencies"
msgstr "Funding & Acknowledgements"

zh_hans

msgid "submission.supportingAgencies"
msgstr "基金项目与致谢"

参考:https://forum.pkp.sfu.ca/t/ojs-3-3-0-6-show-supporting-agencies-field-on-article-abstract-page/67758/4

以上主要针对ojs 3.4。

 

18、修改期间集成页面页脚。

实用default主题:plugins/themes/[你的主题名]/templates/frontend/components/footer.tpl

可从 lib/pkp/... 复制一份到主题目录再修改。

然后删除代码: <img alt="{translate key="about.aboutThisPublishingSystem"}" src="{$baseUrl}/{$brandImage}">

 

19、升级后报错

需要使用default主题,删除旧主题(应该是修改了代码导致出错),再安装新主题使用。

 

20、升级后报错

代码:ojs系统错误:Deprecated: Using unregistered static method "PKP\components\forms\site\PKPSiteConfigForm::FORM_SITE_CONFIG" in a template is deprecated and will be removed in a future release. Use Smarty::registerClass to explicitly register a class for access. in

Ini, TOML

修改 OJS 的 config.inc.php 配置文件
; Show PHP errors, notices and warnings in browser output.
display_errors = Off
show_stacktrace = Off

 

21、OJS 3.5 系统升级

1、需要使用默认default主题,使用其他主题一开始会出错;可以先删除其他主题,再安装一遍(之前的美化、修改会消失);

2、如果出现错误提示,可以关闭error提示;

3、使用quicksubmit不能直接出版,还需要回到编辑页面;

4、ORCID不能手动输入链接,只能让作者验证;

5、在user一栏设置orcid api,可以在orcid官网developer申请,可以输入多个返回url;

6、自己投稿不能直接出版,可以换一个管理员账号登录后才能出版;

7、出版按钮改成schedule;

8、升级后citationstylelanguage插件不见了,可以从源文件将安装包上传到服务器,删除系统缓存就可以出现;

9、 3.5系统中文为Chinese (Simplified),要把 (Simplified)去掉,使用如下方式:

用 Custom Header

<script>
document.addEventListener("DOMContentLoaded", function() {
// 检查当前是否在英文界面下
if (document.documentElement.lang === "en" || window.location.pathname.includes("/en/")) {
// 查找下拉菜单中的简体中文选项
var zhOption = document.querySelector('select option[value="zh_CN"]');
if (zhOption && zhOption.textContent.includes("Chinese (Simplified)")) {
zhOption.textContent = "Chinese";
}

// 扩大范围:替换页面中可能残余的文本链接
document.body.innerHTML = document.body.innerHTML.replace(/Chinese \(Simplified\)/g, "Chinese");
}
});
</script>

 

10. 修改中文页面:期25为No. 25

路径:/locale/zh_Hans/locale.po

msgid "issue.number"
msgstr "No."

msgid "issue.no"
msgstr "No."

 

22、全站增加分享图标

在custom header插件增加代码:

【header】

<script type="text/javascript" src="https://platform-api.sharethis.com/js/sharethis.js" defer></script>

 

【footer】

<!-- ShareThis BEGINS -->
<div class="sharethis-share-buttons" data-type="sticky-share-buttons" data-alignment="right" data-labels="cta" data-show_total="false">
<span data-network="facebook"></span>
<span data-network="twitter"></span>
<span data-network="email"></span>
<span data-network="wechat"></span>
<span data-network="sharethis"></span>
</div>
<!-- ShareThis ENDS -->

 

23、Top与去除Chinese (Simplified)冲突,改成以下代码:

 

<button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>

<script>
(function() {
// ==========================================
// 1. 文本替换逻辑:将 Chinese (Simplified) 替换为 Chinese
// ==========================================
function removeSimplifiedText() {
if (document.documentElement.lang === "en" || window.location.pathname.includes("/en/")) {
// 替换链接/按钮中的文本
var links = document.getElementsByTagName('a');
for (var i = 0; i < links.length; i++) {
if (links[i].textContent.includes('Chinese (Simplified)')) {
links[i].innerHTML = links[i].innerHTML.replace('Chinese (Simplified)', 'Chinese');
}
}

// 替换其他零散文本
var elements = document.querySelectorAll('option, span, div, p');
elements.forEach(function(el) {
if (el.children.length === 0 && el.textContent.includes('Chinese (Simplified)')) {
el.textContent = el.textContent.replace('Chinese (Simplified)', 'Chinese');
}
});
}
}

// 安全地监听页面加载
document.addEventListener("DOMContentLoaded", removeSimplifiedText);
window.addEventListener("load", removeSimplifiedText);

// ==========================================
// 2. 返回顶部(Top)逻辑 —— 使用安全监听,不冲突
// ==========================================
// 这里使用 DOMContentLoaded 确保页面加载完能抓到 myBtn 元素
document.addEventListener("DOMContentLoaded", function() {
let mybutton = document.getElementById("myBtn");
if (!mybutton) return;

// 使用 addEventListener 替代原本的 window.onscroll,完美解决冲突
window.addEventListener('scroll', function() {
if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
mybutton.style.display = "block";
} else {
mybutton.style.display = "none";
}
});
});
})();

// 全局函数,确保按钮上的 onclick="topFunction()" 能够顺利调用
function topFunction() {
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
}
</script>

 

24、期刊页面显示DOI链接

插件doiInsummary无效,只好增加代码:

路径:plugins/themes/你的主题名/templates/frontend/objects/article_summary.tpl

在 {call_hook name="Templates::Issue::Issue::Article"}
</div>上面添加代码:

{* OJS 3.5 目录页专用:获取当前文章的已激活 DOI 字符串 *}
{assign var=publication value=$article->getCurrentPublication()}
{if $publication && $publication->getData('doiObject')}
{assign var=doiObject value=$publication->getData('doiObject')}
{assign var=doiResolvingUrl value=$doiObject->getResolvingUrl()}
{if $doiResolvingUrl}
<div class="article-summary-doi" style="margin-top: 5px; font-size: 0.9em;">
<span class="label"><strong>DOI:</strong></span>
<a href="{$doiResolvingUrl|escape}" target="_blank">{$doiResolvingUrl|escape}</a>
</div>
{/if}
{/if}

增加浏览器、下载量代码失败。

25、文章页两端对齐

路径:plugins/themes/classic/less/typography.less

p, li, a, blockquote

加入如下代码:

text-align: justify;

 

26、部分汉化

路径:/locale/zh_Hans/locale.po

msgid "about.onlineSubmissions.submitToSection"
msgstr "向<a href=\"{$url}\"> {$ name} </a> 栏目投稿。"

{$ name} 改成:{$name}

这样投稿页完整显示栏目信息.

msgid "about.submissions"
msgstr "稿件"

改成:投稿

这样栏目显示成:投稿,而非稿件。

 

参考:

 

https://dev.bdhostit.com/category/ojs/

 

PKP社区:

 

https://forum.pkp.sfu.ca/

继续阅读
 
匿名

发表评论

匿名网友
确定

拖动滑块以完成验证