This manual is being depreciated. Much of the information here is out of date.

The new Jomres Documentation, updated in 2022, can be found at Jomres.net/documentation.

I want to modify a plugin

Files in the remote_plugins directory are never touched by Jomres during an upgrade, so they shouldn't be affected (that said, you should ALWAYS backup before upgrading just in case your server suffers a catastrophic disk problem during the upgrade, not something I can program to watch for, but better safe than sorry).

Basically, the load order is Core Minicomponents -> Core Plugins -> Remote Plugins. So, if you've got a file in core minicomponents called j01010listpropertys.class.php then as a provider of plugins for Jomres, I can easily override that by creating a plugin that drops a modified copy of j01010listpropertys.class.php into /core-plugins/whatever (I wouldn't, the maintenance cost of that as a plugin is too high, but it serves as an example).

Now, you as a third party developer or integrator might want to customise that file. Assuming that you intend to upgrade the system at a later point, then the appropriate way to store the changes is to copy your customised version of j01010listpropertys.class.php into /remote_plugins/subdirectory_withthenameofyourchoice/ (I always tell people to create /remote_plugins/custom_code but you can call it whatever you want). Once you've copied that file, remember to rebuid the registry though.

The same applies to plugins. Say you've downloaded a Jomres plugin that you want to modify heavily. The safest course of action is to copy the contents of that plugin from /jomres/core_plugins/whatever/ to /jomres/remote_plugins/whatever/, but only the files that you need to modify, not all of them. That way you can upgrade the plugin at a later date, and you only really need to worry then about the files you copied and modified.

So, for example, if you wanted to modify the search order of the ajax search composite plugin, you'd create a new subdirectory in remote_plugins called ajax_search_composite. You'd then copy j06110ajax_search_composite.class.php into that directory, then (only when you copy a file, not every time you edit it) rebuild the registry. That'll tell Jomres that it can use j06110ajax_search_composite.class.php in /jomres/remote_plugins/ajax_search_composite instead of the one in the core-plugins directory.