Today I released wp-SwimTeam v1.45 which fixes a possible security problem I was alerted to as well as addresses a number of bugs. The CSV roster export bug was the primary issue holding up getting this release out, I fixed the security problem last week.
It turns out I had implemented a method in both a parent class and (redundantly) in a child class as well. The RE1, SDIF, and HY3 exports all (properly) used the method from the parent class but the CSV export was using the child class version. It took me a while to sort it out as I was staring at the wrong code trying to determine what was wrong. It turns out, nothing was wrong, I was just looking in the wrong place. Once I removed the redundant method declaration, everything resumed working as it should.
I think I have resolved all of the multi-site issues, please let me know if you run into any more.
Earlier today I received a report of a security bug in wp-SwimTeam. While the security flaw is true, I believe the ability to take advantage of the exploit is pretty hard is it would require knowing the value of a WordPress site’s ABSPATH value. It is certainly possible to guess the value in some cases but without knowing the proper value, the exploit simply fails.
Swim Team season must be approaching because I’ve had a couple more bugs reports and found two more myself while looking into other issues. A couple these are limited to running under WordPress Multi-Site so most people / teams won’t run into them but there are some issues with report generation as well. I am looking into these and will issue an update as quickly as I can.
This morning I have posted a new build, v1.42 beta-6 of the Swim Team plugin. This beta release makes a major change to how the plugin includes the various files the plugin uses. Historically, Swim Team modified the PHP include_path as part of the initialization to include the paths where included files are expected. In newer versions of PHP this seems to cause some problems for some users.
I have changed the plugin to eliminate the need to modify the PHP include_path however the process of doing so required touching almost 100 files within the plugin. I have been through all of the menus and tabs and believe I found accounted for every file which included but there is always a chance I have missed something.
Please report any problems and I will do my best to fix it quickly.
This afternoon I released beta-3 for wp-SwimTeam v1.42. This builds adds a new option to allow control of the temporary storage used when exporting data to use outside of WordPress. For now, this new functionality is limited to Roster Export only however if it works, I’ll do it for everything.
Historically wp-SwimTeam has used PHP’s temporary file facility to store the constructed export data and it then sends it to the browser for download. In a few corner cases, it appears the server configuration won’t allow doing this so I have added a new option to use WordPress transients as temporary storage. It is a little slower than using temporary files so be patient for the download dialog box to display. I am hoping this is a viable solution and will allow users who run into this issue, which I assume is security related, to use wp-SwimTeam.
This morning I uploaded beta-2 of wp-SwimTeam v1.41. This build adds intelligence and error messages during the export process (rosters only for now) to detect an unusual, but critical situation, which occurs when the plugin is unable to generate a temporary file. The temporary files are used to hold the generated data which is eventually sent to the browser for download.
This afternoon I released an update to wp-SwimTeam. This latest update continues work on the new Event Model. Events can now be imported from a Hy-tek Events File (.hyv) and connected to a swim meet. I also made a number of GUI improvements to fix flow control and be more intuitive. Other changes include:
Fixed wp-SwimTeam so it will work in sub-directory installations and WordPress multi-site.
Added new option to toggle message verbosity. Some actions generate numerous messages, this option will reduce and summarize messages.
Fixed Event Opt-In/Opt-Out which was broken with Event Model changes in v1.18.
Added ability to load Meet Events from an Event Group into a swim meet.
Fixed broken GUI controls for Events (expand, collapse, page forward and back).
Tightened up flow control between Event Groups and Events and Swim Meets and Events.
Changed buttons on for some actions (events, swim meets) to return to a logical place. “Back” and “Home” didn’t really mean anything in most cases. In particular, “Back” has been a reliability challenge so in most cases it has been eliminated.
Fixed several bugs in report generator which manifested themselves when User or Swimmer optional field count was set to zero.
Fixed bug which resulted in broken Opt-In and Opt-Out actions on the drop down lists.
Fixed bug which incorrectly entered Opt-In/Opt-Out information in Stroke format even when set for Event Mode.
If you run into any problems, please let me know and I will try and fix them ASAP. We’re gearing up for swim team season so I am actively engaged in adding features and fixing bugs right now. My next effort, which I’ve already started, is what I refer to as Phase 3 of the new Event Model which will provide the ability to export a Meet Entries file accounting for scratches and/or registrations which can be loaded directly into one of the various Swimming applications (e.g. Hy-tek, WinSwim, and others).
I’ve expressed my disdain for a number of things, primarily Hy-tek’s poor SDIF support in this forum so I guess it is appropriate that I also note some things I find useful and work well. DropBox is one of them. It solves a problem and solves it very well.
A lot of swim team files are shared among a group of people and e-mailing them around can be problematic. We’re using DropBox to share some of the files and I am planning to store our WinSwim database in DropBox so the Swim Team’s computer and my computer will have access to the same database file. I am optimistic that doing this will allow us to collaborate on the meet line up and heat sheet process without having to mail files around. I’ll report back later on how it works out.
In the mean time, if you want to check out DropBox (free for 2GB of storage), use this DropBox referal link and I will get some extra space as will you when you sign up!