Academic publication manager for Joomla! - Component & plugin.
Download (Joomla 4.x) | Download (Joomla 3.x)
For installation and usage instructions please refer to the documentation.
Paper Manager is a Joomla extension allowing the management of scientific publications. The extension is useful for websites related to research laboratories and organizations. Lists of scientific papers are commonly present in such websites. A single paper can be included in more than one of these lists. For example it can be shown on a page dedicated to the conference publications of the lab and also on the profile pages of the authors. Paper Manager allows a specific paper entry to be displayed on multiple pages without copying html code on all the relative articles. The extension consists of a component and a content plugin. The component is used for CRUD operations on papers, paper categories and authors while the plugin displays lists of papers inside content (ex. articles), using special code snippets.
Paper Manager is developed for Joomla 4.x and any future updates will be checked for compatibility only with 4.x. If you need to install Paper Manager on Joomla 3.x, use version 0.0.1-joomla3.x.
The following notes are for development purposes only. For installation and usage instructions please refer to the documentation.
Docker
&Docker Compose
for the development environment.Bash
,Make
&PHP
for running the development scripts.- WSL2 and Git Bash can both be used to run the development scripts on Windows.
- (Optionally)
PhpStorm
for step debugging.
git clone git@github.com:papermanager/papermanager.git
to clone this repository.cd papermanager
to go into the papermanager directory../scripts/dependencies.sh
to check if the dependencies are installed.make up
to run the Docker containers.- If running for the first time, wait until the files in
JOOMLA_INSTALLATION_DIR
(see./scripts/environment.sh
) are generated. - Navigate to
http://localhost:8080
and set Joomla up. make build
to build the extension. A zip file will be generated in the./dist
directory. Install it manually in the Joomla development environment.
- Make sure all steps in the Build Setup section were followed.
- Install one of the Xdebug browser extensions: https://xdebug.org/docs/step_debug#browser-extensions
make map
to start the docker containers with the files in./src
mapped to the joomla installation. This will automatically generatedocker-compose.map.yml
.- Open the project in PhpStorm, go to
File -> Settings -> PHP -> Frameworks -> Joomla!
and set:- The absolute path to
docker/www
as the Joomla installation path. (e.g.C:\MyProjects\papermanager\docker\www
on Windows or/home/user/MyProjects/papermanager/docker/www
on Linux) - The absolute path to
docker/www/configuration.php
as the Path to JConfig. (e.g.C:\MyProjects\papermanager\docker\www\configuration.php
on Windows or/home/user/MyProjects/papermanager/docker/www/configuration.php
on Linux)
- The absolute path to
- Go to
File -> Settings -> PHP -> Servers
, click on the Add/Insert button (+
) and make the following configuration:
# Start joomla docker environment without mapping ./src files
make up
# Start joomla docker environment & map ./src files to the joomla installation
# (generates docker-compose.map.yml)
# Run this after the extension is installed
make map
# Stop joomla docker environment
make down
# Copy ./src files in the joomla installation
make copy
# Build the package. The resulting zip file will be placed in the ./dist directory
make build
# Remove the ./dist directory
make clean
# Add/update copyright headers + XML metadata in ./src (edit ./scripts/environment.sh before running)
make headers
# Watch the ./src directory and copy files in the joomla installation
make watch
inotifywait is required for the watch target. On windows (Git Bash), the following port of inotifywait can be used: https://github.com/thekid/inotify-win.
The <languages>
tag is not used in the manifests to copy the language files in /language
and /administrator/language
. <folder>language</folder>
is added instead, to copy the language folder directly into the component or plugin directory. More on the language files: https://docs.joomla.org/Manifest_files#Language_Files
Before installation:
src
├── com_papermanager
│ ├── admin
│ │ ├── assets
│ │ ├── controllers
│ │ ├── helpers
│ │ ├── language (!)
│ │ ├── models
│ │ ├── sql
│ │ ├── tables
│ │ ├── views
│ │ ├── access.xml
│ │ ├── config.xml
│ │ ├── controller.php
│ │ ├── papermanager.php
│ │ └── index.html
│ ├── site
│ │ ├── papermanager.php
│ │ └── index.html
│ ├── papermanager.xml (component manifest)
│ └── media (! NOT USED)
│ ├── css
│ ├── images
│ └── js
├── plg_papermanager
│ ├── language (!)
│ ├── papermanager.php
│ ├── papermanager.xml (plugin manifest)
│ └── index.html
└── pkg_papermanager.xml (package manifest)
After installation:
mytestjoomlawebsite
├── language (! NOT COPIED HERE)
├── administrator
│ ├── language (! NOT COPIED HERE)
│ ├── components
│ │ └── com_papermanager
│ │ ├── assets
│ │ ├── controllers
│ │ ├── helpers
│ │ ├── language
│ │ ├── models
│ │ ├── sql
│ │ ├── tables
│ │ ├── views
│ │ ├── access.xml
│ │ ├── config.xml
│ │ ├── controller.php
│ │ ├── papermanager.php
│ │ ├── index.html
│ │ └── papermanager.xml (component manifest)
│ └── manifests
│ └── packages
│ └── pkg_papermanager.xml (package manifest)
├── components
│ └── com_papermanager
│ ├── papermanager.php
│ └── index.html
├── plugins
│ └── content
│ └── papermanager
│ ├── language
│ ├── papermanager.php
│ ├── papermanager.xml (plugin manifest)
│ └── index.html
└── media (! NOT USED)
└── com_papermanager
├── css
├── images
└── js
This project is licensed under the GPL-2.0 License - see the LICENSE file for details.