Download & Installation


The wp-SwimTeam plugin will only work (for now, subject to change) with WordPress 3.5.xand later.  Development is currently being done against WordPress 3.6.1 will likely yield the best results.


The wp-SwimTeam plugin is very much in a state of active development, particularly during the months leading up to Summer Swim Season in Raleigh, North Carolina (February through July).  The current stable version plugin is available from the WordPress plugin repository.  I strongly recommend using the Plugin Installer from the WordPress Dashboard as you get automatic update notfications and the process is much, much easier.

The plugin is also available for download here and occasionally I release an early or beta version of it here prior to making it available from the plugin repository.  The current stable release is usually what typically drives the wp-SwimTeam Demo site.

For the really brave, you can reference the work in progress source from the Subversion repository on SourceForge.  Be sure to find the correct trunk for the plugin as the SourceForge project encompasses a couple other sub-projects within the larger wp-SwimTeam project!   Additional notes on using the development thread from Subversion appear below.

The wp-SwimTeam plugin is dependent on the phpHtmlLib plugin so download and install it first.  I recommend using the plugin installer from the WordPress Dashboard or installing it directly from the WordPress plugin respository.


wp-SwimTeam plugin – updated 10/29/2013 @ 11:34
Google Forms Beta (21769 downloads )
phpHtmlLib plugin – updated 9/30/2013 @ 11:18
Email Users Beta (16522 downloads )

Subversion Repository

To obtain the latest version from Subversion, use the following Subversion command:

svn export wp-swimteam

This will export the latest version (aka trunk) of the plugin to a directory called wp-swimteam.  The plugin is dependent on the 2_X_X thread of phpHtmlLib however it makes use of code which is in the phpHtmlLib respository but hasn’t been released yet.  Similarly, you will need to get the latest version of phpHtmlLib’s 2_X_X thread from it’s SVN repository.

svn export phphtmllib

Manual Installation

The wp-SwimTeam plugin is dependent on the phpHtmlLib plugin so download and install it first.  I recommend using the plugin installer from the WordPress Dashboard, in particular for the phpHtmlLib plugin.  The download version on this page includes examples and documentation which are useful for plugin developers but of zero value for actual usage.  The version from the WordPress plugin repository does not have the documentation and examples and is significantly smaller.

Manual installation of phpHtmlLib is simple as it is now a WordPress plugin:  Install it like any other WordPress plugin.  Drop the plugin in the wp-content/plugins directory and activate it from the Plugins menu.  The phpHtmlLib plugin must be installed and activated in order for wp-SwimTeam to run correctly.

Installation of the wp-SwimTeam plugin is simple – it is installed like any other WordPress plugin.  Drop the plugin in the wp-content/plugins directory and activate it from the Plugins menu.  Upon activation the plugin will create all of the necessary tables.  Before using the plugin, make sure you set the various settings under the Settings->Swim Team menu.

91 thoughts on “Download & Installation

  1. Pingback: wp-SwimTeam » Blog Archive » Downloadable ZIP files

  2. This plugin sounds amazing!! It was exactly what I was looking for!

    Would it be possible to email me a zip of it so I could try it out and let you know my thoughts on it?

    BTW: I am a swimmer and a coach.

  3. @Chris Goodwin
    Absolutely, check your e-mail for some additional information. I’ll also try and get a ZIP bundled up and posted later today.

  4. Pingback: wp-SwimTeam » wp-Swimteam v0.0.307 posted

  5. Pingback: wp-SwimTeam » wp-SwimTeam v0.0.310 available

  6. Pingback: wp-SwimTeam » wp-SwimTeam v0.0.313

  7. Pingback: wp-SwimTeam » phpHtmlLib v2.6.1.3248 now available

  8. Pingback: wp-SwimTeam » wp-SwimTeam v0.0.326 available

  9. Pingback: wp-SwimTeam » wp-SwimTeam v0.1.389 released

  10. Pingback: wp-SwimTeam » wp-SwimTeam v0.1.390 - minor bug fix release

  11. Pingback: wp-SwimTeam » wp-SwimTeam v0.1.399 available

  12. Pingback: wp-SwimTeam » wp-SwimTeam v0.1.400

  13. I am the webmaster of the website of the SHAPE Seals swim team ( in the EFSL (, we probably could use your plugin (besides the existing Hy-Tek) for registrations for example. Thanks you for the hard work you have done so far!

    Here is my first experience with the plugin:

    – The installation was easy without problems.
    – The initial configuration I had just one issue: The team is in Europe, no State here, but it was required (not really an issue).
    – During the test fill I have created some meets, some parents, jobs and swimmers. I was not able to figure out which is the right configuration for the meet, because in our league there are usually 2-4 teams invited, so I set it to Invitational instead of Dual (but I do not think it matters – at least at the beginning – because we do not want to maintain the teams for the meets). Almost all of our meets are “Opt In”, i.e. the swimmers/parents have to register at the Head Coach if they attend. When I wanted to register a swimmer in the plugin (Swim Team/Swim Meets/Register) the swimmers check list was empty. The quick solution was to change the getAllSwimmerId (I removed the meat table from the select):

    //$query = sprintf(“SELECT DISTINCT id AS swimmerid FROM %s, %s”,
    $query = sprintf(“SELECT DISTINCT id AS swimmerid FROM %s”,

    I do not know that my configuration was/is wrong or the registration should be used in a different way, but the above change solves the empty swimmer box problem.

    But I had another problem with the meet registration: The swimmer is registered just for a stroke (or event type) and not a real event: For example instead of 50 FR (Girls 9-10) just Freestyle is in the dialog (Swim Meets : Register)). Is this on purpose?

    Finally one more question: I have added a Job, but I haven’t found where to assign the parents to the jobs. Is there such feature, or it is under development?

    Thank you again for the plugin, it is almost exactly what I was looking for.


    • Thanks for all of the feedback, I really appreciate it.

      I should probably disable or hide some of the things which are still work-in-progress. The jobs (volunteers) is one of those areas that isn’t finished as is events.

      The question about which event a swimmer is registered for is based on the USA Swimming specification, or at least my understanding of it. Hopefully it works for your European type meets too. A swimmer would register for a stroke (e.g. Breaststroke) and which ever Breaststroke event for their age group they are eligible for they would be assigned to. In our league we swim very few meet, usually just one, that involves more than one team.

      Do you know which version you ran into the table problem with? Another team reported a similar problem which I fixed in v0.1.406 in the last day or two.

      More comments when I get back home later tonight …

  14. @Mike Walsh
    I will take a look at the State or Province issue – I thought I had made that optional when the Geography was non-US. It could have slipped through though.

    This plugin is very much a work-in-progress. We are just gearing up for swim season here in North Carolina so there will likely be 1-2, possibly more, updates each week through the end of July. After that our season is over and I’ll work on it but not with the same urgency. I am hopeful that by next season it will be pretty close to feature complete. That is my hope anyway!

  15. Thank you for your comments. I have v0.1.406. Right now I am using the plugin just locally, so just take your time. The registration email for the next reason has been posted already, I don’t think it has sense to replace the entire site (we have WordPress 2.6) in the last minute. I keep testing it locally when I will have time.

    Some more information about the meets in the EFSL:

    The meet season is September-February, therre are a couple of invitational meets among the teams in the same division almost every weekend (we will have 16 meets). Some meets are dual, but if more teams are located close to each other, than often 3-4 teams attends a meet.

    End of January there is a divisional meet (final) and in February we have the EFSL Final. To attend the final the swimmer has qualify herself/himself on one of the meet in the season.

    Usually each swimmer can register up to 3 events in every meet, but there are pentathlon meets as well where everybody has to swim 5 fix events (FR,FL,BK,BR,IM).

    In our team the swimmers can select the 3 events they want to swim.

    My kids are 9 and they can register in (50 m FR,FL,BK,BR + 100 FR,IM+200FR,IM). For older swimmers there more 100 m strokes…

    Thank you again for the good work, I will let you know if I find something.

  16. Pingback: wp-SwimTeam

  17. Pingback: wp-SwimTeam » wp-SwimTeam 0.1.441 available

  18. #1 message: “this website needs a different google maps api key”
    #2 I get the Key
    #3 Plugin / Swim team options / miscell./ enter Key
    #4 Still having the message…

    • Google API keys can be tricky – I had problems getting one to work for another side I worked on. Make sure the case of the URL you submitted is correct and the domain matches where you want to display it on the web. I can’t think of anything else to try. In my experience it either works or doesn’t and there isn’t much feedback from Google when it doesn’t work.

  19. Good morning. I am hoping that your plug-in will help meet some needs of our synchro club. I am a volunteer and am looking for a registration solution. Is there an updated version? I have installed per your directions and am getting the following error when I try to activate the plug-in. Fatal error: Cannot redeclare html_link() (previously declared in /home/synchro/webapps/wordpres/wp-content/plugins/wp-pagenavi/scb/Util.php:137) in /home/synchro/webapps/wordpres/wp-content/plugins/phphtmllib/tag_utils/ on line 952

    Thanks for your work!

    • Sheila –

      Based on the error you are reporting, it looks like the plugin “wp-pagenavi” has defined a function called html_link() which is also defined in the phpHtmlLib plugin library. A quick temporary solution would be to disable the wp-pagenavi plugin and try it again, it should work. Off the top of my head I am not sure how to resolve two plugins defining a function by the same name, I will have to investigate and get back to you.


  20. Mike,

    Thanks for your help – your software looks amazing but it isn’t quite wheat I am hoping to find.


  21. The demo site says “If you are interested in exploring the demo – feel free to register with this web site as a user. ” I would like to try the demo, but do not see how I can register. Any advice would be appreciated.


  22. Hi Mike,

    I’m working on a Drupal based site and would like to be able to import meet results from Meet Manager. I’d like to be able to read meet results exported by Meet Manager and/or Team Manager. From what I can gather they output a CL2 or HY3 format. Does your plug in have a class that can handle parsing these files?

    I see that it can handle SDIF files but from what I’m reading that’s not quite the same as CL2 (just enough of a difference to cause problems at times).

    Could you point me to any PHP source code that can handle reading CL2 or HY3 files? I’d hate to have to reinvent the wheel.



    • I’ve looked for PHP (or any other language) source code which parses Hy-tek files and came up empty. That said, the .CL2 file is almost exactly the same SDIF and if you only want to extract information from it, looking at it as an SDIF file is probably ok. The HY3 format is entirely different and requires a parser. I’d recommend joining the SDIF Google Group I created, one of the members recently published a very thorough analysis of the HYV file format and there is talk about tackling the others as well.

      One of the PHP source files in my wp-SwimTeam plugin defines all of the table values in the SDIF specification – that alone would be useful for processing a CL2 file. Are you sure you don’t want to use WordPress instead of Drupal? 😉

  23. Sorry, I’m stuck in the Drupal universe for the moment.

    Thanks for the info. I’ll post anything I come up with.

  24. Mike:

    I’m looking for a swim team management component and found yours. It looks really interesting so I want to see if I could arrange access to the site as a registered user. I notice you let a few folks in above. Can I arrange the same. Thanks.

  25. Mike:

    I’ve installed wp-swimteam on my test site, and can’t seem to get anything to show up. on the back end, I don’t even have Settings>Swim Team as an option (although I do have a lovely Swim Team section). I can’t figure out how to get anything to show up on the front end. Help!

    Maybe if I could register on the demo site, it might help me?


    • Sheila – if you are only seeing the “Swim Team” menu on the Dashboard it means your WordPress username doesn’t have sufficient permissions to see the “Manage”, “Reports”, or “Options” section OR you haven’t expanded the Swim Team menu on the Dashboard. There should be a small down arrow to the right side of the “Swim Team” menu which will expand the Swim Team menu section of the plugin. Only a WordPress Administrator can change the Swim Team Options and a Contributor or Editor can modify the items in the Manage menu. Check your e-mail for information on getting access to the Demo site.

  26. Thanks, Mike! I was making a silly mistake, and I think I have a good bit of my previous (PEBCAC) issue sorted out. One final question I have is whether you can import information to the system… like last years list of swimmers and volunteer jobs to decrease data entry?

    • Right now there isn’t a mechanism to import any data although I have considered building the ability to import a roster as a CSV or SD3 file. If I did this, initially all swimmers would assigned to the Admin or Importing User as their Parent/Guardian. Jobs would be a lower priority but may be something I can look at in the future.

  27. Hi Mike,

    is the plugin able to generate the hy3 entry roster file that hy-tek meet manager expects to see to import entries for swimmers?

  28. Hi,

    I am feeling a bit dumb here, but….

    How do I use the plugin? I can see it all in the dashboard, I can make all of the changes for settings, I just can’t figure out how to get to the “stuff”.

    I guess I mean; How do I integrate the plugin into my site? Would I have a link that people would click on? A menu option? Do I use a theme?

    Where I am at now is the two required plug-ins are installed, everything shows up in dashboard, but where does it show or how do integrate into the site/blog?

    Thanks for any direction,

    • Sorry for the delayed response, I was out in the mountains on vacation and not checking email.

      The bulk of the interaction with the plugin for users and administrators is via the Dashboard. There is a new menu on the Dashboard called “Swim Team” that allows for various actions depending on the capabilities of the user. For example, a standard user or subscriber in the WordPress sense, is able to enter their contact data and register their swimmers, sign up for jobs, scratch their swimmers from swim meets, etc. An administrator has all of the user capabilities and much more including the ability to define a season and all of the swim meets that go with it, define the jobs that are required, and other administrative tasks.

      On the front facing web site you can use a number of short codes within posts or pages to display information from the swim team as part of the outward facing web content. Most of the short codes are described on the Demo Site. Just looks through the posts to see examples.

  29. Hi. I am a bit of a loss. Starting with a brand new WordPress installation, with the 2010 theme, I install phpHtmlLib plugin and then the wp-SwimTeam plugin, and I am left with…a brand new WordPress installation with a 2010 theme.

    The dashboard has the updates to change all sorts of settings for the newly installed plugin, but the site itself is unchanged.

    I thought maybe I had to have the sandbox swim team theme installed, but that just changed the site to a text version of the 2010 theme.

    I figure I must be doing something wrong, but I just can’t figure it out.

    It does not seem like this should be hard to do, I must have something wrong somwhere.

    Can anyone help?

    • I just responded to a similar comment a few minutes ago so please see that for some information on some of your questions.

      You do not need the Sandbox Swim Team theme to use the plugin, they are independent efforts. I use the Swim Team theme on the MacDolphins site but the site would work just as well with any other theme.

      Hope this helps, I am back online after vacation and can answer questions.

  30. Hey Mike,

    your plugin looks awesome and i was think if i could translate it into German? And maybe it would be possible to make some changes to use it for a running team.
    I think there should be just a few changes to be done.

    I really would love to help you with the translation and help changing to make it suitable for runners 😉

    Altough i get some strange errors via the backend. Here ist the error log:
    PHP Fatal error: Call to undefined method FEListBox::FEListBox() in /wp-content/plugins/phphtmllib/form/form_elements/ on line 92, referer: http://DOMAIN/wp-admin/admin.php?page=swimteam_options_page&tab=9
    PHP Fatal error: Call to undefined method FEListBox::FEListBox() in /wp-content/plugins/phphtmllib/form/form_elements/ on line 1260, referer: http://DOMAIN/wp-admin/admin.php?page=swimteam_options_page&tab=9
    PHP Fatal error: Call to undefined method FEListBox::FEListBox() in /wp-content/plugins/phphtmllib/form/form_elements/ on line 92, referer: http://DOMAIN/wp-admin/admin.php?page=swimteam_options_page&tab=9
    PHP Fatal error: Call to undefined method FEListBox::FEListBox() in /wp-content/plugins/phphtmllib/form/form_elements/ on line 1260, referer: http://DOMAIN/wp-admin/admin.php?page=swimteam_options_page&tab=1
    PHP Fatal error: Call to undefined method FEListBox::FEListBox() in /wp-content/plugins/phphtmllib/form/form_elements/ on line 92
    PHP Fatal error: Call to undefined method FEListBox::FEListBox() in /wp-content/plugins/phphtmllib/form/form_elements/ on line 92, referer: http://DOMAIN/wp-admin/admin.php?page=swimteam_options_page&tab=4
    PHP Fatal error: Call to undefined method FEListBox::FEListBox() in /wp-content/plugins/phphtmllib/form/form_elements/ on line 1260
    PHP Fatal error: Call to undefined method FEListBox::FEListBox() in /wp-content/plugins/phphtmllib/form/form_elements/ on line 92, referer: http://DOMAIN/wp-admin/admin.php?page=swimteam_options_page&tab=6

    On some Option Tabs i just get a blank screen.

    Thanks a lot for your plugin anyway 🙂

    • Regarding the PHP error you are seeing, what version of PHP are you running?

      As for using this plugin for runners, I assume you mean for managing a running or track and field team where you have runners in various heats for races of diffent distances – is that correct? If so, I think it would work based on my limited knowledge of track and field events. As for the German translation, I had originally started coding wp-SwimTeam with translation support but have gotten prettly lazy about making sure all of the strings are wrapped in the proper language translation functions. There would be a lot of strings to go back and re-visit but it wouldn’t be impossible.

  31. Im using PHP Version 5.3.2-1ubuntu4.7

    about the running them you were right…. The most part whould stay the same like male and femal age groups (maybe different size of groups im not that familiar with swimming^^) and instead of swim laps you would have a distance 10km= 10936Yards 5km=5468 Yards Marathon and Halfmarathon something like this.

    • I would have suspected that you had run into a PHP 5.3.x issue as i found a few of those when my swim team ISP moved to 5.3.3. I am running PHP 5.3.3 on IIS and haven’t seen this issue but I will go back and look at the code for FEListBox again in case I missed something.

  32. Ok… i just done a php update to 5.3.5 and know everything works fine for me. I just recognized that the max age for a swimmer is 18 🙂 Would it maybe possible to raise the age to maybe 80?
    That plugin really looks awesome… would love to have something like this for the running sports.

    • You can set the Max Age (which tops out at 125) under the Options->Swim Team section. You can set the minimum and maximum ages as fit your needs. Glad to hear upgrading PHP resolved the other problem because I couldn’t replicate it!

  33. Pingback: wp-SwimTeam » wp-SwimTeam v1.11.659 now available

  34. Can you send me info to sign up on the demo site? Thank you.

  35. This sounds like a fantastic plug-in. Thank you so much for creating it. I am not able to complete my profile to start using the program. The to blank input fields under “City” which I’m sure are for “State” & “Zip” give me an error when I try to fill them in with the corresponding information. If I leave it blank, it gives me the error as well. I am using using WordPress 3.2.1. which might be the issue.

    • There is a minor configuration bug where the “State or Province” and “Postal Code” fields won’t work correctly until their labels are set correctly. You can do this by setting the field labels in the “Swim Team->Options” settings page. Once this is done, this error will go away.

  36. Tried using MS ASP.NET Club site template for our boy’s high school team site. Way to time intensive to maintain. May I have a login to explore your swim team plugin? It looks like it may have more functions than we need, but I assume I can disable and trim down to meet our needs. Thanks for all your efforts, it looks like you’ve put in massive amounts of time fine-tuning your plugin!

    • Check your email for a login. There is a lot of functionality, much of which you don’t have to use if it doesn’t make sense for your application. Thanks for the support.

  37. Can you email me a installation zip folder and some instructions?

  38. Hi,

    Just did a fresh install of your plugin with WordPress 3.3

    After activating the plugin, I try to enter my info in the PROFILE tab and I can never save. It seems to be a problem with the State/ZIP fields.

    † First Name:
    † Last Name:
    † E-Mail Address:
    † Street 1:
    Street 2:
    Street 3:
    † City:
    † :
    † :
    † Country:
    † Home Phone:
    Mobile Phone:
    † Contact Information:

    • I thought I had written up this issue previously but it looks like I did it via e-mail – sorry about that. This is a known bug which is very simple to work around. The problem is the default settings for the “Postal Code” and “State or Province” settings aren’t set correctly and their setting drives the form field labels. To work around this, go to the Swim Team -> Options setting page and choose the “Swim Team” tab. At the bottom of the form are two fields, one for “State or Province” and one for “Postal Code”. Set them to the appropriate value for your geography (e.g. “State” and “Zip Code” for the United States). Once you’ve done this, the registration will work properly.

  39. Hi Mike, can i get a link to the demo site at all please. Plugin Looks great!!!

  40. Hi Mike.

    Finally figured out the State / Postcode issue thanks to this page. Busy setting up various options, and I have a bug that keeps occurring on the test machine. My default IP address/URL is, and when I use Re-Order events (which is quick – a great option), it doesn’t matter if I use Back or Home, it won’t save, and it may be because it is trying to append an additional :8080 to the IP address –

    • I suspect the :8080 suffix is indeed causing the problem. I am not sure if there is a quick fix for that bug. I’ll have to take a look at how the URL processing is accounting (or more likely not accounting for the suffix. I know I have never tested it that way.

  41. Pingback: wp-SwimTeam » wp-SwimTeam v1.13.669 available

  42. Pingback: wp-SwimTeam » wp-SwimTeam v1.14.674 now available

  43. Pingback: wp-SwimTeam » phpHtmlLib v2.6.3.3563 released

  44. Hi Mike,

    when I activate the wp-swimteam I get a white admin page and it stays until I remove the plugin. My main page looks fine, I just can not admin the backend. My guess is I am doing something wrong, could you help me please. I have downloaded the newest wp-swimteam and phpHtmlLib, with the same results. The WordPress I am running is WordPress 3.3.1.

    Thanks for all your help

    • What version of WordPress are you using? A white Admin page is usually the result of some sort of plugin conflict. Can you try deactivating all plugins except phpHtmlLib and then try activating wp-SwimTeam and see if you still get the white admin screen?

  45. Flip turn is missing swimmer sql from the ft sql file

  46. Pingback: wp-SwimTeam » wp-SwimTeam v1.18.747 released

  47. Pingback: wp-SwimTeam » wp-SwimTeam v1.19.783 released

  48. Pingback: wp-SwimTeam » wp-SwimTeam v1.20.786 released

  49. Pingback: wp-SwimTeam » wp-SwimTeam v1.23.838 now available

  50. You Need to Add a function to scratch from ENTIRE meet, our team does not want kids to be able to scratch from individual events

    • This already exists. It was in the plugin before the ability to partially scratch from a meet. If you put wp-SwimTeam in “Stroke” mode for “Opt-In/Opt-Out” on the Options->Swim Team page, by default it will allow both “Full” and “Partial” scratches. If you set it to “Full”, then the swimmer can only scratch from a full meet.

  51. Is WP 3.5 supported? I’ve installed the latest version fro and I can’t do much, there doesn’t appear to be any buttons to add meets for example. And on the page I’m getting an jQuery error related to #contextual-help-wrap not being found. I’m running PHP 5.3.6 and I’m sure if its a WP version issue or PHP related…


    • I am not seeing the same behavior you’re describing on my demo site which is running PHP 5.2.17 and WordPress 3.5. Later this morning I’ll boot up my development Virtual Machine which is running PHP 5.3.x (not sure off the top of my head) and see if it is having the same problems. Are you running any other plugins that could potentially create a conflict?

    • I just checked my Development site where I am running WordPress 3.5 and PHP 5.3.13. I am not seeing the issues you are describing. If you are seeing a jQuery error another plugin may have a jQuery problem that is manifested when wp-SwimTeam tries to load jQuery. I do need to do some work on the Contextual Help area because WordPress has changed since I first implemented it but what is there is still working on my Demo site and in my Development area.

  52. Only running the wp-swimteam and phphtmllib plugins, it’s a clean WP 3.5 install otherwise. The controls are working now though so that issue is resolved. I’m still seeing the jQuery error and the contextual help is not displaying…

  53. I feel like an idiot for asking, but not sure where the parent/volunteer signup page or short code for that kind of activity might be. I found several of the others…

    • You aren’t finding them because they don’t exist. There are short codes for displaying information (e.g. swim meets, jobs, results, etc.) on posts and/or pages but not for registering, adding swimmers, etc. All of the actions that create data are performed through the WordPress Dashboard. The plugin assumes that all parents (or guardian as appropriate) are registered WordPress users and can login to the web site. Once they login a series of Swim Team related options are available on the Dashboard from the SwimTeam menu.

  54. OK, so do I need to add a WordPress plugin for register and somehow guide them to a specific member type that gives them that access? Or, do you manually setup the parents in WP, then send them access info to add their info and kids? Just trying to figure out the process I guess. Thanks in advance for your input. I like what I am seeing with the swimteam plugin and just trying to figure out the best way to manage everything.

    • WordPress has user registration built in. Unless you change how WordPress works with another plugin, when a user registers for the site, they come in as a “subscriber” which is all the capabilities they need in order to use wp-SwimTeam as a parent/guardian. If you have a subset of users who you want to have more capabilities, you can assign them the “Editor” role and they can do everything but change the wp-SwimTeam Options.

      Whether you allow people to self register or register for them doesn’t really matter, I have seen both ways work. For our team we had people self register and it worked pretty well. We had a set of instructions for people to follow and for the most part, it worked very well. Once your parents self register and login to the web site, they will have a “Swim Team” menu on their Dashboard. The Dashboard is much less cluttered for a “Subscriber” than it is for a Admin or Editor but there is an option that will redirect users to the main Swim Team Dashboard page in Swim Team->Options if you want to use it. From there the user would complete their family profile (address, phone number, etc.) and add their swimmers.

  55. Hi Mike.

    Great work. A couple of questions…

    Am I correct in assuming that the Age Cut Off Day & Month sets the “Age” of the swimmer? If not, what does that function do?

    Also, can you please explain the format of the “Swimmer Label Format”? My preference would be the “Meet Manager ID” format which is used in Australia – 3characters of the surname, 2 of firstname, DDMMYY (Date of Birth). So John Smith 13 March 2004, would be SMIJO130304.

    “Swim SDIF Team Profile” basically forces me to load a US based LSC and Team Code. Any chance of adding a “Non-US” option to LSC, thereby allowing any Team Code?

    Also, the Google API Key is now unable to be generated, as the version has changed. Is there a workaround?

    Finally, how does the Register/Scratch function work?

    Thanks in advance, Matt

    • To answer you questions:

      1. The age cutoff date sets the swimmers age per league rules. For example, if today, May 13, 2013, a swimmer born on May 20, 2004 would be 8 years old, turning 9 in a week. If the league rules state July 1st is the age up date (also know as age cutoff date), then wp-SwimTeam will consider the swimmer to be 9 for Age Group related actions because the swimmer would turn 9 before the age up date.
      2. Swimmer Label Format is a field that can be used to number swimmers. I think the Meet Manager format you describe is the same as the USA Swiming SDIF ID format but I would have to double check it as I can’t be sure off the top of my head. The prefix and suffix options allow teams to number their swimmers in a variety of formats from a simple sequence (100, 101, 102, etc), to a gender based prefix (G100, G101, B100, B101, etc.), to other combinations. If the Meet Manager ID format isn’t the same as SDIF ID format then it would be pretty simple to add it.
      3. All of the international LSCs are in the system. The demo site is set up as a “US” site which reduces the number of choices. If the LSC you want is defined in the SDIF specification, it will be available when the system is set to International mode (which is on the Options tab only available to Admin).
      4. With the number of specialized Google Maps plugins available, maybe this feature is obsolete? I’ll check into this and see if there is a simple solution to get a Google Maps API key.
      5. The Register/Scratch function depends on how you have the meet set up. If you want your swimmers to sign up to swim, you would set the meet up for Register. If you assume all of your swimmers are swimming unless they scratch, you set it up for scratch mode. An admin can register or scratch any swimmer in the system where a parent can only affect their own swimmers. The “available” swimmers are used to construct meet entries based on the type of meet and whether it was a Register or Scratch meet. Reports work the same way.

      Let me know if I can answer anything else.

  56. I am trying to import events into a group and I am getting the following errors. Any thoughts on where I might be going wrong?

    Hy-tek Event File
    Invalid event record encountered in hy-tek event file on line 2.
    Hy-tek Event File
    Error: Invalid gender in Event Record, found ‘X’, should be ‘M’, or ‘F’

  57. Hi Mike, I am looking a plugin similar to and I am new to this domain. I was assigned a project from a Swimming organization. Is your plugin 100% cover their features? If not roughly how much covered? Is it possible to customized to enrich the features?

    Thank you so much! Appreciate your amazing plugin! How to access your demo site?

    • I have been out of the swimming business for a while now since all of my kids aged out but when I was moving on, the woman who took over the Swim Team technical stuff was a big proponent of Team Unify so I had some interaction with them. Maybe it has improved in the 3-4 years but I found it pretty cumbersome to use. The big appeal for our Team Chairwoman was the one-stop shopping for web site, timing, etc. I don’t have any experience with but I have heard of it.

      My plugin was intended to facilitate the capture of swimmer registration and use that data to manage the team when running an actual swim meet. Knowing who was and was not going to swim so entries could easily be created was really important. Manually managing the scratch process was something we really struggled with until moving the whole thing online. Volunteers were a similar problem and these aren’t problems that were covered by Hy-tek’s online solution or Team Unify at the time (3+ years ago).

      What I developed was not intended to replace tools like Hy-tek TeamManager, MeetManager, or WinSwim but work collaboratively with them. It can export rosters and meet entry files in Hy-tek format. The plugin has largely been static for a while and it was built on a PHP library which I used for form processing (there are a lot of forms to collect data). I developed most of it long before WordPress Custom Post Types were a viable option so there are quite a few extra tables to support the swim team data.

      When I last did any enhancements I added support for Meet Manager and to the best of my knowledge, the ability to import entries and swimmers into both Hy-tek tools was working correctly. What I never implemented was the results import from SDIF back into the plugin so they could be connected to swimmers.

      So how viable is it going forward? While there is a lot of good stuff in the plugin, I developed a lot of it not knowing how to develop a WordPress plugin back in the WordPress 2.7/2.8 time frame so there are some issues and old usage models in it. The phpHtmlLib library I use for form processing was originally developed for PHP4 (yep, it that is old) and it works for PHP5 with some warning and I’ve fixed some of the issues over the years but I’ve never tried it with PHP7. I have no idea what, if anything, will happen with PHP7.

      If I were to do it all over again, I would write it based on WordPress Custom Post Types. It would make some things harder as doing queries against CPT data isn’t nearly as simple as doing queries against a table specifically designed to store Swim Team data but would eliminate some of the form processing and pickup the consistent Dashboard UI for free. I’d have to really play with that to see if that makes sense or not.

      Things like volunteer descriptions, swim clubs, etc, would be easy to define as a CPT but when you think of a swim meet being a collection of two or more teams with many swimmers of different age groups and genders each swimming multiple events of different lengths and strokes, the number of records created for a swim meet adds up very quickly. Trying to keep track of it all with Custom Post Types will be non-trivial. I have no doubt it could be done but how easily it could be done I don’t know. In fact, as I think about it now, I’d probably do some sort of hybrid approach where some of the basic data (volunteer descriptions, swim clubs, strokes, etc.) which is fairly static but other records build on probably could be done with Custom Post Types pretty easily.

      Look for an email with login credentials for the demo site. You should be able to play around with it. Let me know if you have any issues.

Leave a Reply