Jamroom Module Developer Guide
Welcome to the Jamroom Module Developer Guide!
With the release of Jamroom 4, Jamroom now has a module API that allows for much easier development of add-on Jamroom Modules.
Who should develop a Jamroom Module?
This guide was created to help those interested in developing or modifying Jamroom modules, as well as provide a document for future reference. This document will assume that you possess the following skill set:
- Intermediate to Advanced knowledge of Jamroom - how it functions and works. This means you know what Jamroom templates are, you understand the Jamroom Ranking System, you understand how Jamroom Settings and Quotas are configured, and in general you know your way around Jamroom and are familiar with Jamroom's feature set.
- Intermediate to Advanced HTML and Template knowledge - to get the most out of Jamroom you should have a strong understanding of HTML, and also understand how the look and feel of your Jamroom is broken down into "templates", how they work, and their syntax. (Jamroom uses "Smarty" templates - you should be familiar with Smarty template functions and modifiers).
- Intermediate to Advanced PHP programming skills - Jamroom is developed in the PHP scripting language, and this is the language a Jamroom module must be created in as well. You should have a good understanding of how PHP works, and know how to use PHP functions.
- Beginning to Intermediate MySQL (SQL) knowledge - while direct knowledge of the intricacies of MySQL is likely not needed, if your module will take advantage of the Jamroom Database, you will need to understand how to contruct an SQL query, including JOIN queries.
If you are not familiar with these technologies or skills, it doesn't mean you cannot develop your own module - it just means you will likely need to learn some new things in order to understand what this module guide is covering.
What can be developed as a Jamroom Module?
The Jamroom Module API was designed to allow the creation of modules that are really only limited by your imagination. However, the main "thrust" of a Jamroom Module is to allow the introduction of new "items" into Jamroom. For example - in Jamroom there are "songs" (audio files) - this can be thought of as an "item", along with Videos, Photos, Calendar Events, etc. - basically anything can be considered an "item". If you wanted to create a Classified Ads module, then "ads" would be the item. If you wanted to create a PDF file module, then "PDF Files" would be the item, etc.
It is highly recommended that you limit a module to working with ONE ITEM only. If you need multiple types, then you would want to create additional modules to handle those types - this allows for the greatest flexibility in the configuration and Quota options.
Example Module: jrYouTube
In order to help make the following documentation easier to understand, we'll be developing a sample Jamroom module called "jrYouTube" that allows your users to add You Tube videos to their profile. It is a very simple module, and one that you'll likely want to expand on, but it covers almost every area of the module API and gives you something to look at when looking for a real world example of how developing a module for Jamroom works.
You can download the jrYouTube module in ZIP format here
So you can have a local set of files to reference as you go through this guide.