Open Journal Systems 3.0.0
Welcome to the OJS API Reference. This resource contains documentation generated automatically from the OJS source code.
The design of Open Journal Systems 2.x is heavily structured for maintainability, flexibility and robustness. Those familiar with Sun's Enterprise Java Beans technology or the Model-View-Controller (MVC) pattern will note similarities.
As in a MVC structure, data storage and representation, user interface presentation, and control are separated into different layers. The major categories, roughly ordered from "front-end" to "back-end," follow:
Additionally, many of the concerns shared by multiple PKP applications are implemented in the shared "pkp-lib" library, shipped in the lib/pkp subdirectory. The same conventions listed above apply to lib/pkp as well.
As the system makes use of inheritance and has consistent class naming conventions, it is generally easy to tell what category a particular class falls into.
For example, a Data Access Object class always inherits from the DAO class, has a Class name of the form [Something]DAO, and has a filename of the form [Something]DAO.inc.php.
To learn more about developing OJS, there are several additional resources that may be useful: