OJS 3: Add menu items to top navigation bar

In OJS, a URL is formed of {url journal="myJournal" page="myPage" ... }.

To get to the site index, set the “journal” parameter to “index”, and the “page” parameter to “index”.

1 Like


Could you please suggest me the way : i have multijournal site, i want a menu item for example about page for the whole journal on multisite index page putting the link next to register : how do i create that? n.b static page not working on multisite jounal at least for me nd also better to find another way of doing it. Thanks bw i am using 0js 3.0.2

Please follow the instruction above from MARCH 9, and then you need to make the related changes in LOCAL/language folder for any languages that have been activated in your site. Here you can check how we have done it for two languages


I assume that in upcoming version of OJS these issues will be solved.

Thanks for the reply, Yes i have used that and able to create a link to index page. but this time like your menus AssociateEditors i want to create some page where i can put content. you mentioned The page=“AssociateEditors” the PATH name of the created static page., but in my multijournal i cant create static page, how can i create a page?

You will need to enable your desired languages in OJS then when you create the STATIC pages, you will be able to see the fields to provide same content in other enabled languages, so the path will be the same, the system will do the language switch for you.

it is not possible to use the static pages plugin on multisite journal, it is only possible for single journal sites.so how do i create the static page?

Is there a way to add a new item do the menu just as a journal manager? I dont have access to the php or the server where it is installed and we dont have IT people to do it either.

If its not possible, thats terrible, it was one of the only few things that worked in the 2.X versions without a hitch. That should exist also in the upgraded version of 3.0

Hi @thaysecantanhede,

See above.

Alec Smecher
Public Knowledge Project Team

I’m sorry, but what do I do with this? I just have access as journal manager.

Hi @thaysecantanhede,

Tools for managing the menu without needing to modify templates will be added in the next release (OJS 3.1).

Alec Smecher
Public Knowledge Project Team

1 Like

Thanks for the quick reply. I’ll wait for the next release then. Thanks again!

We waiting that better OJS 3.1. Success Always for You.
Best Regards

@ctgraham where that exactly page address edit to get address single journal (site index) like http://ijtech.eng.ui.ac.id/
(Sample file edit Button: lib/pkp/templates/frontend/components/footer.tpl) Thank You Very Much for You Help <3

I don’t think the example you provided is an OJS site. What specific feature of the example are you hoping to replicate in your own site, and what version of OJS are you using?

We use OJS 3.0.2 on our web site Indonesia Prime we wont just https://indonesiaprime.or.id Thank You Very Much For You help :heart_eyes:

There are a number of walkthroughs in this forum for removing index.php from your URL, for example:


This thread is about managing menus in OJS 3. To keep the forum organized, read through the threads related to your question and either follow up there, or post a new forum topic with your specific situation.

Running We would like a frontend menu item that always shows a particular issue “Surveys” (similar to “Current”, but always the same issue). That issue is always visible at HOST/ojs/index.php/eljc/issue/view/Surveys .

We have our own theme “eljc” which is a child of the default theme. We copied templates/frontend/components/primaryNavMenu.tpl to plugins/themes/eljc/templates/frontend/components/primaryNavMenu.tpl. Then (following the instructions at the top of this page) we added a section:

{if $currentJournal->getSetting('publishingMode') != $smarty.const.PUBLISHING_MODE_NONE}
                <a href="{url router=$smarty.const.ROUTE_PAGE page="issue" op="current"}">
                        {translate key="navigation.current"}
                <a href="{url router=$smarty.const.ROUTE_PAGE page="issue" op="archive"}">
                        {translate key="navigation.archives"}
        <li>  {* This section added *}
                <a href="{url router=$smarty.const.ROUTE_PAGE page="issue" op="view" path="Surveys"}">

Cleared the cache, refreshed the page. No menu appears.

“Surveys” is the “public URL identifier”. The numerical specs are volume=1000, issue=0 (which will give trouble to editors in the year 2994). But how to specify that? Thanks.

Hi @bdm

The easy way would be just add a new menu button inside dashboard: Settings -> Website -> Navigation Menus -> Add item -> Remote URL. Then assign item into the primaryMenu.

The hard way: override .../frontend/components/navigationMenu.tpl

Thanks. The first one works, though it would be nice if a local URL could be used. Brendan.

If from the template, you were on the right path but other file should be customized. If the theme uses custom menus, the code responsible for front-end is inside navigationMenu.tpl. But remember to specify the menu, in which item should be added, e.g., {if $id==="navigationPrimary"}<li><a href="{url...}"></a></li>{/if}