What is New?

  • Big question. To save from writing everything on this one topic, I'll just highlight some of the New stuff.
  • Module Creation

    Its hard not to talk about the new module system in JR5, because it is the base for everything in the system.

    One of the goals for JR5 was to cut down on some of the more tedious parts of module development, like building out html forms to then be submitted and processed.

    Its a necessary part of building a module to have form submission and processing, JR5 tries to make that a little smoother by offering a form creation and processing functions to help in this area.

  • Check out the docs on how to build a module for more in-depth details on how module creation has changed in JR5
  • DataStores

    This is a real cool concept.

    Brian came up with it, and it had half the team scratching their heads over how it worked, and why we needed it in the beginning.

    Now that I understand it too, it's Awesome!

    So quickly.

    A datastore is a database table. Each module can have one. It stores information that that module wants to store.

    Example: The datastore for the audio module will store key->value pairs of information about audio items.

    Key value pairs look like this:
    * song_name = "thriller"
    * artist_name = "michael jackson"
    * release_date = "Dec 2, 1983"
    * etc......

    And this is Awesome why?:
    It is awesome because combined with the "Form Designer" it allows the admin to add any other values to be collected that they want to collect.

    * It means, that you don't need a new module to change the way a module works.
    * It means, that forms are now really customizable without changing code.
    * It means, that you can add any other fields you want when bands upload a song to the form that they use.

    It also means that instead of having JR4's {jr_ranking} template function that only worked on things it was setup to use, JR5's {jrCore_list} function will also work on any module that was created by anyone.

    It also means that you can search on anything in a datastore and are no longer restricted to existing listing definitions.

    It makes Jamroom much more open to 3rd party developers developing modules and JR5 skin designers instantly knowing how to use those modules because they work the same as all other modules with datastores.

    ah, ok, that's pretty awesome. :)

  • Form Designer

    JR4 had 'custom form fields'. In JR4 this was a section in the admin control panel where you would choose to add extra fields to the existing forms of Jamroom.

    If you added an extra input field to the 'Artist Profile', then when the bands were filling out their profile form, they would have that extra form field to fill in.

    This same concept exists in JR5 but has been expanded on and made more powerful.

    The location has changed too. Where 'custom form fields' was in the admin control panel, the Form Designer is on every form that allows it.
  • screenshot of the Form Designer button
  • Clicking on the Form Designer button will take you to the form designer screen where you can add extra fields to the form directly.

    Fill in the 'New Field Name' to add a new field for the users of your site to fill in.
  • screenshot of the form designer, ready to create a new field.
  • Where the JR5 Form Designer excels over the custom form fields is in the customizability of it.

    You are able to set all sorts of validation on the form and even add uploads to the form.

    Here is an example of the addition of a form field to allow the artists to upload a FLAC format song for download by the visitors along with the main file for listening to via streaming.
  • There are many types of fields that can be added with the Form Designer.
  • screenshot of the addition of a File type input field to the form.
  • Here is a list of the different available options.
  • screenshot of the available types of fields that can be added with the Form Designer
  • No more Control Panel

    JR4 gave each band a control panel to upload their songs, edit their blog, add videos, etc...

    JR5 has no Control Panel. Instead the buttons to add and update stuff are on the same page where the stuff is displayed.

    This should make it much easier to know where to go when you want to edit or add something.

    Q: "Where do I go to add a song?"
    A: "Go to the page were other songs are displayed."
  • screenshot of the add an album and add an audio file buttons
  • Events and Listeners

    JR4 had nothing like this. Its totally new to JR5.

    Jamroom 5 has a system called 'Events' and 'Listeners'.

    An 'Event' is a point in a module that allows other modules to add stuff.

    A 'Listener' is another module waiting for something to happen so it can add its stuff.

    Here is a screenshot of the "Create Album" form generated by the jrAudio module.

    Into this form, 2 extra fields have been injected by using 'Events' and 'Listeners'.

    The jrFoxyCart module has injected a form field for "Price (per item)" and the jrFoxyCartBundle module has injected a field for "Album Price (for all items)".

    If those two other modules are not active, then the form will not have those extra fields.
  • screenshot of extra form fields added by modules. Injected with events and listeners system.
  • More Social Interaction

    With JR4 there were various social interaction systems like the Forums, the comments system, star rating etc...

    With JR5 there are even more, and they are easy to use.

    One prime example of this is the jrPlaylist module that allows listeners of songs on your site to add these songs to a playlist of their own that gets displayed on their profile.

    The focus of the feature helps facilitate the spread of the artists music to a larger audience.

    On the playlist creators profile there can be another full section of comments and discussion going on in a different context. The links will always link back to the creators profile, so there is no danger of your songs being lost to obscurity.

    Another example of social interaction comes from the jrTags module that allows the users of your site to tag items they find with any keyword they find relevant.

    These tags can be found via the Tag Cloud and provides another avenue of navigation around your site.

    Yet another social module is the jrFollower module that gives each profile a twitter like timeline to show visitors what they have been up to. use of other profiles @name will show up in their mentions timeline so you can have a public conversation.