Why creating a custom room type in OpenMeetings
If you want to create your own styled room the best thing to do in order to be "update-save" is to create your own custom room type. There is an empty configuration by default shipped with every release of OpenMeetings, the room type "custom" (ID = 5).
You can use that and extend it, or you can add more room types to fit your use case.
Create your own room type class (User Interface)
Lets start by creating your custom room type class.
You could for example duplicate an existing room class, from
src/modules/conference/flexibleConferenceRoom folder, for example the flexibleConferenceRoom.lzx: Generate a duplicate, change the name, for example to myCustomConferenceRoom.lzx and edit the class name inside the file name="flexibleConferenceRoom" to name="myCustomConferenceRoom". Also don't miss to add an entry to library.lzx so that the compiler will find your new class.
Create nesseccary entries in configuration tables
You first need to create a number of configuration files
- To have your roomtype available everytime you install OpenMeetings you need to add it to the default rooms: ImportInitvalues.java Method: loadDefaultRooms(). Add your entry here. You can choose any random name for the room. The ID is the important trigger for the room type to identify later. You need to run the installer so that your new room type is in the database.
- Add your room type in the default module configuration: src/base/moduleConfiguration.lzx, here you need to add a default class name for your room type
- Add your room type in the real configuration: public/config.xml, add a new entry.
You should fix also the file public/config.xsd that is the Schema file for the public/config.xml.
- Add a parser entry to modify the room type mapping: base/mainMethods.lzx method: myinit. You can see some example parsing, you should add your one similar to the existing room types.
Link your room type config with your room type class
Now you need to make sure that everytime the conference room is created your new class "myCustomConferenceRoom" is used. There are 3 places you need to add your mapping.
- In the global mapping: base/mainMethods.lzx method name="setRoomValues"
- In file: modules/conference/conference/roomListItem.lzx method name="initRoom"
- In file: modules/invitation/autoloaderBarOnly.lzx netRemoteCallHib name="setUsernameAndSession"
Thats it. You can add/edit/delete your room with the new room type in the Administration > Rooms interface of OpenMeetings like any other room.
If you need to have this room type available as option in the Calendar UI, you need to add it to the combobox manually.