Sandbox-SwimTeam theme v3.0.360 available

It has been a while since I touched my Sandbox-SwimTeam theme but with Swim Team season gearing up, it was time I did some maintenance as I had put it off last season.  A lot has changed in WordPress since I originally put this together almost four years ago.

I have just released v3.0.360 of the theme which you can download from the Sandbox-SwimTeam theme page.  This update has a lot of bug fixes, most of which bring it update to date with WordPress 3.3.  The big new feature is support for WordPress Navigation menus.

Important:  You will need to re-enter your theme settings!  The way theme settings are stored is different from the original implementation and there is much more checking done now.  The theme now properly  uses the WordPress Settings API.

I had wanted to build a new theme for our Swim Team this season but time to do so is elusive.  I’ve decided to do a short term fix and update Sandbox-SwimTeam which will give me some breathing room to work on a new theme over the next few months without impacting the swim team adversely.

TwentyEleven Child Theme Learnings

For the past week or so I’ve been playing around with a TwentyEleven child theme for a soccer team project I am fiddling with.  For the most part I’ve been able to accomplish what I want using a TwentyEleven child theme.  Using TwentyEleven as a base for this project isn’t bad but it certainly is different than using a theme framework (e.g. Thematic).

Last week I had posted that I didn’t care much for how the header was constructed and after working with it for a week, I still feel that way.  TwentyEleven has a number of filters and actions but customizing the header isn’t among them.  I also find it very odd how the default behavior is to use featured images as the header if there is one available.  I can’t imagine what application that turns out to be a good thing.  Fortunately it is fairly easy to disable that and set your own header.

TwentyEleven has a showcase template that is sort of like a magazine style but not exactly.  For it to work it requires that posts be tagged as “sticky” which also means they appear at the top of the list in a standard chronological post view.  What I really wanted was functionality like the showcase for the latest articles and let that view become the default home page.  I was able to accomplish this by copying the showcase.php file from TwentyEleven into my child theme directory and calling it latest-news.php.  I now have a new template that shows the five latest posts using the featured content slider which TwentyEleven has built into the showcase template.

Now that I have it working, I am finding that images in the showcase template are wonky and adding a featured image really messes things up.  I am sure I’ll figure it out but the decisions the theme designer(s) made in this area are odd.  It’s like having an 80% solution but the other 20% will take a while to work out.

The one thing I am pretty happy with though is how well it seems to work on my iPad and I didn’t have to do anything special to make it work.  It just works which is nice.  Once I am done with this I will probably turn it into a generic soccer theme but for now it is really only useful for CASL teams.

TwentyEleven Child Themes

Yesterday I was perusing one of the WordPress feeds that I follow and saw a mention of WordPress and Responsive design.  In a nutshell, Responsive Design means that the theme will work well on a variety of displays from large screens to laptops to Tablets (e.g. iPad), to SmartPhones (e.g. iPhone).  Since I own both an iPhone and iPad, I was intrigued by the presentation.

I haven’t had time to watch the whole video yet but later in the day I started playing around with a TwentyEleven child theme thinking it might be a good basis for a new Soccer Team site I am playing around with. I had planned to use Thematic but the more I think about it, the more I want to make sure that whatever I do will be easy to keep up to date and actual be a minimal amount of code.  A TwentyEleven child theme may just be the ticket.

While there is a lot to like in TwentyEleven, I really dislike the way the header is constructed.  So far it doesn’t look like it is easily overridden with filters and hooks either.  I hope I am wrong but that is my perception after looking through some code and several Google searches.

How to have a Meta Box appear before the Visual Editor

I am working on a new theme where I have defined a Custom Post Type.  This is my first time working with Custom Post Types and I must say they are pretty slick.  I wish they had existed back when I first started working on my Swim Team plugin!  I have far too much invested in my Swim Team plugin so I’ll stick with the custom database tables but for this new project, CPTs are working great.

Once I got my CPT defined and basically working, I wanted to add some custom fields to it using a Meta Box.  There are numerous articles that outline how to do it, I referenced this one quite a bit and found it very helpful.  In my instance, the Meta Box that holds all of the custom fields I want to collect is more important that the Visual Editor is so I wanted it to appear higher on the screen.

After poking through the Codex and number of Google searches, it appears that doing what I want to do isn’t native WordPress functionality.  I did however find this post which outlines an idea for moving the Meta Box so it appears on top of the Visual Editor.  Awesome.  Exactly what I was looking for. Except the code fragment didn’t work.  After looking at it, I decided the idea was sound but the implementation wasn’t correct or at least wasn’t correct in my application.

I tweaked the Javascript to make sure the document was ready before rearranging the Meta Box and Visual Editor and got the result I was looking for.  Here is the code I am using in my functions.php file.

/**
 * Set up a footer hook to rearrange the post editing screen
 * for the 'CPT' custom post type.  The meta box which has all
 * of the custom fields in it will appear before the Visual Editor.
 * This is accomplished using a simple jQuery script once the
 * document is loaded.
 */
function CPT_admin_footer_hook()
{
    global $post ;

    if (get_post_type($post) == 'CPT')
    {
?>
<script type="text/javascript">
    jQuery(document).ready(function($) {
        $('#normal-sortables').insertBefore('#postdivrich') ;
    }) ;
</script>

<?php
    }
}

/**  Hook into the Admin Footer */
add_action('admin_footer','CPT_admin_footer_hook');

Child theme or not? That is the question …

Off and on over the past few weeks I’ve been working on a Thematic child theme.  I’ve always had a hesitation with child themes in that you need the parent theme in order for the child theme to work.  Duh.  While it may be pretty obvious to anyone who is familiar with WordPress, it isn’t so for the casual user.

When I was working with Sandbox I figured out a way to essentially build a child theme while ensuring that the parent theme dependency wasn’t an issue by including all of the Sandbox code  using a SVN external reference to Sandbox and some other tricks to include the code.  It worked well and I was able to distribute my themes without concern as to whether or not Sandbox was installed.  It simply didn’t matter.

I was not planning to do that with the Thematic child theme I am working on right now but am having second thoughts.  It turns out that the version of Thematic that I need (0.9.8) is not the version which is in the WordPress Theme Repository and I have no idea when this will change.

If I got the SVN external route again I can ensure that my child theme will work with a known revision of Thematic.  However, it is a fundamental shift in my approach and I don’t know if it will work the same way I did it with Sandbox.  Decisions, decisions.

It looks like there have been some recent commits to the Thematic SVN repository so maybe it will be updated and released soon.  That would help address my dilemma.

My Thematic project is progressing

The more I play with Thematic, the more I like it.  I have been working on a Thematic child theme for a few weeks now.  I have the basic functionality up and running (see GoLufkin.com).  I still need to do some tweaking to clean up a few things (e.g. I want the post date formatted like a small calendar box) but for the most part, I am pretty happy with what I have.

I’ve been playing with CSS3 drop shadow and gradient features – they work fine with Chrome and Firefox.  I have not tested with Safari but the BODY tag gradient doesn’t seem to work on IE.  I am speculating that i have an error somewhere but haven’t chased it down yet as I find it hard to believe IE would implement gradient support for some tags but not others.

I am planning on reusing the custom header code I developed for my Sandbox-LEGO theme as the Dashboard part of it should work with minimal changes leaving me with just some work to do on the header.php file.  The code I did for the Sandbox-LEGO theme allows a user to choose a left, center, and/or right header image from their existing media library and add some CSS overrides to tweak placement.

The integration with Google Calendar is working pretty well, I think it is the right call for this sort of site.  It will be easy for people to add events to the appropriate Google Calendar and have them reflected on the site.  I may look into some jQuery to dink with the GCal style as I still would like the calendar to better integrate with the theme.

The theme color scheme (skin) is currently hard coded for the GoLufkin site but ultimately choosing a color scheme will be possible through the theme options panel.

Moving forward with Thematic

I haven’t had much time to work on any of my theme projects but in the last week or so I’ve been trying spend some free cycles on something I am called “Middle School – High School Boosters Club” theme.

My wife is the president of our Middle School Boosters Club this year and much like the swim team was years ago when I got involved, the Boosters Club has no web presence and just about everything is done on paper.  Bleh.  She has asked me to build a web site for the Boosters Club so I am  using it as an opportunity to choose a new theme framework (I’ve settled on Thematic) and see how much stuff I can leverage from Google Apps to build them a solution that doesn’t require me to babysit it all the time. We’ll see how that goes!

As I noted in a prior post, the Wicked WordPress Themes book has been a good resource to get me going with Thematic.  I also found a Thematic Child Theme called Byty which caught my eye and I decided I wanted something similar.  The downside of Byty is a lot of the nice gradient effects have been achieved with images as opposed to CSS.  That is understandable as gradients were not available until CSS3.  However, I want whatever I build to be fairly modern so I’ve decided to go down the CSS3 route.

I am specifically not building a theme for our school but instead and building one which can be tailored for any school by selecting a color scheme.  We’ll see how well I accomplish that!  These are some of the requirements that I am working against which I suspect would be similar for any other school boosters club that may want a web site.

  1. Online Store with PayPal/Credit Card Payments
  2. Support for Twitter and Facebook Fan Pages
  3. Color schemes
  4. Custom Logo(s)
  5. Calendar(s) for game and practice schedules
  6. Sport specific pages featuring just the posts relevant to that sport

Since Google Calendar is dead simple to use and with so many people using Gmail already, it seemed like the logical choice to base the calendar solution on.  Google Apps is free for organizations like a boosters club to  use to registering our domain with Google Apps was the first thing I did.  This also makes it easy to create e-mail accounts for the various people associated with the club (president, secretary, etc.) so they can perform their task without polluting their personal email.

Once Google Apps was configured, I created a Calendar for each of the sports we will support (Football, Volleyball, Boys and Girls Soccer, Softball, Boys and Girls Basketball, etc.).  These calendars can be viewed separately or combined making it easy to view the whole calendar or just the calendar for a specific sport.  Even better, WordPress supports Google Calendar vias oEmbed turning a Google Calendar URL into a Gcal short code!  About the only downside I have found so far is it is very hard to style the Google Calendar, I’d really like the light blue Google uses to be a different color to match the rest of the site but I will live with it based on how easy managing the calendar will be!

I’ve decided to use Simple Twitter Connect and Simple Facebook Connect, both from Otto, for Twitter and Facebook integration.  I’ve used them before so they were familiar to me.  Based on the recommendation from the Wicked WordPress  Themes, I also tried AddThis but it is a  bit more invasive than I want so I went back to SFC and STC.

For an online shop, I am going with eShop which is a very simple shopping cart plugin.  Since we’re selling just a few items (e.g. t-shirts, sweatshirts, etc.), we don’t need anything complex and eShop looks like it will do what we need.

The site isn’t online yet so there isn’t anything to see but hopefully I will have a demo up and running fairly soon.  I need to do some more CSS work and get the custom page loops I want.  I am impressed with how easy Thematic has been to work with.

Season over, what next?

Our 2011 Summer Season is over and I will actually have some time to get back to work on wp-SwimTeam.  I find it hard to work on it during the season as I spend a lot of time doing swim team stuff.  Other than fixing something serious, I don’t have much free time to work on the plugin during the season.

But now the season is over and I won’t be working with our coach on line ups, spending time at the pool, etc, and I can spend some time on it again.  After our season there are a number of things I want to implement that I know we need for the MacDolphins:

  1. GUI improvements – there are a number of places the GUI can be confusing and needs some help.  I also hope to add some icons to make things a bit more intuitive.
  2. Export Meet Entries – all of the information can be stored with wp-SwimTeam, there is no reason why a Meet Entries file can’t be exported per the SDIF specification.
  3. Swimmer Reminders – similar to the volunteer reminder e-mails that can be sent in bulk, I plan to add the ability to send out swimmer reminder emails.  I am hoping that these reminder e-mails will improve the scratch process for us and eliminate our no-shows.
  4. Results – I have some work done (see the Flip-Turn demo) but do not have it integrated with wp-SwimTeam yet.  It isn’t complicated work but there is a lot of it to do.
  5. Hy-tek compatibility – there is some work done by others that should enable better Hy-tek compatibility.  I am hopeful that I can actually generate and/or process Hy3 and HYV files for entries, result, and events.
  6. New Theme – the MacDolphins theme needs to be updated.  It is based on the Sandbox theme and WordPress has evolved quite a bit since Sandbox was developed and even my extensions to Sandbox for the Sandbox-SwimTeam theme are showing their age.

Looking at Thematic for new projects

I built a number of WordPress themes based on the Sandbox theme.  Unfortunately I think it is time to migrate to a new theme framework.  I need to update a couple themes and I’ve been putting it off knowing that continuing to invest in Sandbox was probably a dead end.

After reading a bit and finding a book I like, Wicked WordPress Themes, I’ve decided to develop a child theme based on Thematic for my Middle School web project.  I should have bought the book from Amazon.com, it was $15 cheaper than my local Barnes and Noble but I wanted it immediately.

Looking for a WordPress Swim Team theme?

If you are looking for a swim team theme for your WordPress site, take a look at my Sandbox Swim Team theme.  This is the theme I use for the wp-Swim Team Demo site as well as the MacDolphins site.

Sandbox Swim Team is a fluid layout which has several color schemes to choose from, supports custom headers, has a facility to modify the header with CSS and is widget ready.  You can find Sandbox Swim Team with some other WordPress stuff I have done on my catch all site.