OJS 3 theme structure

ojs 3 using parent-child templates mechanisms just like wordpress done in the way to manage the template.

the reference to understand such thing is just like the explanation in ojs forum :

Yes, although you should rename it. For instance, if you wanted to call it Paul’s Theme, you’d change:

  • Directory from default-child to pauls-theme
  • File DefaultChildThemePlugin.inc.php to PaulsChildThemePlugin.inc.php
  • This class name1 from DefaultChildThemePlugin to PaulsChildThemePlugin (it’s used in several files)
  • … and so on. You’ll need to walk through each line of the code, but it’s pretty small so it shouldn’t be too difficult to get a grip on.

Yes. Each theme can contain a templates directory which will mirror the templates directory in OJS 3 as well as the pkp-lib library.

For example, when OJS 3 loads a template with a path of /frontend/page/about.tpl it searches in the following locations:

  • The currently active theme: /plugins/themes/<the-currently-active-theme>/templates/frontend/pages/about.tpl
  • Any parent theme of the currently active theme: /plugins/themes/<the-currently-active-theme's-parent-theme>/templates/frontend/pages/about.tpl
  • The OJS template directory: /templates/frontend/pages/about.tpl
  • The pkp-lib template directory: /lib/pkp-lib/templates/frontend/pages/about.tpl

It performs the search in that order, so that the currently active theme has the highest priority and the pkp-lib templates will only be loaded if no other matching template is found.

Once you’ve got your child theme in place, you’ll need to enable it from Settings > Website > Plugins. Then you’ll need to activate it on a journal under Settings > Website > Appearance.

Good News if you need ojs 3 theme with modern and clean looks please check this site :



reference :