Hello,
I’m working in the IT department of the University of Bordeaux. We would have some questions and advices to customize OJS3 frontend.
At the University of Bordeaux, we host several journals in different scientific fields. We are still in version OJS 2.4.7.
The journals and the IT department choosed OJS after a benchmarking of several softwares because of these features, its open source philosophy and its network of very active users on the forums.
However, the display proposed in OJS version 2 did not satisfy them. The journals wished a more modern display of the style of Plos One journals and a personalized display per journal.
So, we made specific developments to meet their expectations, including integrating boostrap. This developments have not been made in accordance with PKP development rules, they are quite intrusive in the code and we couldn’t, for example, migrate to version 2.4.8 without overwriting the code we made. We acted this way because we knew that OJS3 will be released soon and will bring some solutions to our expectations.
I would like to explain you changes we made in OJS 2.4.7. and I would like to have some advices on how to integrate these changes in OJS3 in accordance with PKP development rules.
The main changes we made were to build a personal home page for each journal with personal menus and a personal article page.
For the home page, each journal wanted a personal display. Some of them, by highlighting covers of their 4 latest published articles, other with the 10 last articles of the last issue but also by adding graphics elements and other by displaying articles of their last issue but sorted by sections.
For the article page, they wanted a more modern display of the style of Plos One journals with several tabs (article, author, supplementary files, metrics) with title, type of article, Author(s), important article dates (Received, Accepted, Published), Abstract, References and the article body displayed with some features: references with a tooltip with details linked with the displayed metadatas references, a certain display to highlighting figures and tables.
To do that, we integrated bootsrap, created specific “js” and “css” files and changed the template article.tpl file.
We displayed some datas from metadatas as title, type of article, Author(s), Abstract, References. And we displayed article body by displaying content of HTML Galley. So we built this HTML Galley in the way we would like to display it without metadatas and with classes and features which will be defined in “js” and “css” files.
We wanted to display directly content of HTML galley in article page but for others galleys (as PDF and XML), we wanted to display a download link.
By studying OJS 3, I found it’s now possible to use the bootrap plugin which allows to create specific templates and looks by journal because templates overload default templates. And it’s exactly what we need!
I also read some similar threads such as this one:
Then I tried to integrate changes we made on “article_details.tpl” template of the boostrap plugin but I encountered some difficulties.
- We don’t find in OJS3 some functions of OJS2 to display HTML and PDF galleys the way we want (Content for HTML galley and download link for others galleys. Those missing functions are for example: isHTMLGalley(), getHTMLContents(), isPdfGalley(). Are those functions abandoned or not yet implemented ?
- We don’t find either in OJS3 some functions of OJS2 to display references one by one ($citationFactory->getCount(), $citation->getRawCitation()) and not like a unique string as the current function ($article->getCitations()). We want to display references one by one to apply to them a certain style and a certain processing of display by “js” and “css” files.
- We would like to display the accepted date of the article but there is no function to display it. We have added in OJS2 some code function to retrieve it:
$authorSubmissionDao = DAORegistry::getDAO(‘AuthorSubmissionDAO’);
$editorDecisions = $authorSubmissionDao->getEditorDecisions($article->getId(), $article->getCurrentRound());
$lastDecision = count($editorDecisions) >= 1 ? $editorDecisions[count($editorDecisions) - 1] : null;
$dateAccepted = $lastDecision[‘decision’] == 1 ? $lastDecision[‘dateDecided’] : null;
Is it possible to integrate this code somewhere ?
We did some other changes we can discuss with you or suggest you. And we would like to know how to suggest PKP/OJS a new feature, a change or a modification? Is it by this forum or on github site? If it’s on github site, is there a guide which explains the steps to follow before suggesting some change or some code ?
If you want to have a look to our scholarly journals portal and of the looks of our journals, voilà the address:
http://open.u-bordeaux.fr/journals/
Thanks in advance for your answers.
Helene