2
At this point my initial plans are to change/add the following areas. I expect to totally rewrite the profile module but plan to reuse code when possible. The new profile will be designed around php 5.2 and xoops 2.4.5. Should work with 2.5 plus anything else that comes along. I am also going to encapsulate ALL xoops related functions within module objects. This will allow for easy transition to another framework when available without major recoding of the main module. So if there is a fork of xoops that uses a different setup than xoops does with the xoopsobject and xoopsobjecthandler it will be rather simple to "port" the module over. Yes this comes from my recent introduction to a certain fork of xoops but it makes sense because by doing this it will allow easily transferring not only to that cms but should make updating the module easy for any upgrades in x3 or other future enhancements to the xoops family.
Data fields:
Currently there is a somewhat flexible setup that allows new data types to be added by hard coding them into the code. I want to make this more flexible and allow through plugins to allow for ANY type of data to be included in the profile. While this doesn't sound like much on the surface, the intention is that you will be able to attach ANY type of data to your profile. So plugins for video, audio, or any module would be an easy thing. This would be taking coding for these out of the module and place it into the plug ins. I haven't decided yet the best way to add support for plug ins and will be looking at other modules and such to see how they have done it. Likely it will be done by setting up an object.
Verification/authentication:
Will likely look at adding plugins here as well. I want to make the verification system somewhat transparent and allow much flexibility. I have some ideas for making a dynamic system that will make bot registrations virtually a thing of the past. It will be very difficult for a bot without using AI to get around the system I have in mind. By using hidden fields, generalized field names, CAPTCHA style through out the form, jquery fields, XML tracking, graphic field titles, and some other things a normal user should not be able to tell the difference but a bot will not be able to easily guess this system. There will be plug ins to also allow other types of validation as well. I am thinking here that there will be two kinds of verifications available to the system. Static and dynamic. The static verifications would be like having captcha being a requirement each time. The dynamic ones would be like having captcha one time and recaptcha the next time or some other random verification or combinations.
Groups:
I want to expand the flexibility of groups and I think profile is the place to do it as it deals with users. I want to add group based themes. These would allow you to have different themes available to different groups. These would include both the user and admin themes. A simple example would be a theme dependent on if the user is male or female(different groups still). I also want to add support for memberships as well. Will likely add support to use a payment system such as the one wishcraft is developing to allow memberships to be totally automatic through a payment system.
Registration:
I want to provide a little different system here. There will likely be a common first step registration that will be used for the initial activation. Beyond that, after activation further steps will be available. The registration steps will be setup with the availability to set them according to group. Selection for the group they should belong to will be available for the initial step. Again think here, women would belong to one group men to another and they would have slightly different registrations. Or for a team you would have different registrations dependent on if the person was a player or a fan or a coach etc.
profile permissions:
I want to add more of a permissions system to the fields than just "visibility" or "editing". More of a "roster" thing but will use this example to explain the intention. On a team site you have fans, players, coaches and team management. You want each of them to be able to view different portions of a profile and to be able to edit or change things. Plus you may want the coaches and management to be able to view phone numbers and all team people able to view addresses. These types of things will be addressed with profile permissions by field.
user interface:
With the first few versions I will want to get the base core of the module to work without issue. Once that has been accomplished I want to make the display of profiles totally dynamic. At first the admin will be able to design a few base designs that the people will be able to choose from. Eventually I am thinking along the lines of what myspace did with the "profile 2.0" for those familiar with it. For those NOT familiar with it think of how the block management is done with xoops 2.5 and then you are on the right track. Basically the display would be made up of blocks that you order by dragging around on the screen. The blocks will be able to be defined for what you want to display. Not unlike how categories are now. And I would hopefully be able to also define some CSS items in this as well so you can change the background and colors for the profile when it is displayed. This may also extend into the editing portion of the profile but the user interface will only be able to be modified by the admin.
Wishcraft has been making some changes to profile to accommodate some modules he has come out with. I will be looking at those changes to make sure those still work with this module. I will be looking at developing the plug in system to support plugins for datatypes, validation, and whatever else I can do. Discussion on this will probably become more active when I actually am building the code for the plugins.