wpGForm v0.11 beta

I am currently running a beta version of wpGForm v0.11 here on my site.  The big change for this version if the support for multi-page Google Forms.  You can see how they work using my Sample Multi-Page Google Form.

I am looking for some people to test this version and provide feedback.  If you can check it out and provide some feedback I’d really appreciate it.  There are quite a few changes in this version due to the rearchitecture required to support multi-page forms.  There shouldn’t be any changes to what is actually rendered for the user.

This version also fixes the confirmation page bug that has been present when a custom confirmation page wasn’t specified.  The behavior of the custom confirmation page is slightly different too in this version.

[download#7]

Mutli-Page GForm Update

I’ve been trying to find a solution that will allow wpGForm to support multi-page Google Forms.  I realize that this is a pretty important feature for people who use Google Forms and my lack up updates or news isn’t from lack of effort!  I’ve tried a number of things, each of which hasn’t worked out.

The single page Google Form works pretty well but even with it, there are still a couple of minor nits (e.g. properly handling optional fields).  I’ve thought that if I can find a better way to handle multi-page forms that I may also be able to eliminate the limitations that single page forms have too.

The problem with trying to do what I am trying to do is that Google Forms aren’t really designed to be anything but their own entity.  Yes, you can embed them with an IFRAME tag and they will work correctly but there is no way to modify the HTML in an IFRAME due to Cross Site Scripting (XSS) security concerns.  Yesterday I thought I had a clever solution that used jQuery and AJAX to load to the result from a form submission using a small script within the plugin to submit the form and then WordPress could load the results from the plugin script eliminating the XSS concern but I couldn’t get it to work reliably (and it was slow).

I’ve been using wp_remote_get() to retrieve the contents of the Google Form since I started this plugin.  Why it never occurred to me (until last night) to use wp_remote_post() to submit the form to Google I have no idea.  This was one of those “Doh!” moments we (at least I do and I am pretty sure I am not alone) have when you simply get caught up making the problem much harder than it needs to be.

This morning I noodled on this while I was at the gym and from my preliminary experiments, it looks like it is going to work.  No promises or commitments yet but this path is the most promising I’ve explored since I’ve started looking at the multi-page form problem.  So far I’ve been able to submit a multi-page form however only the first page of the form is styled correctly and the confirmation page isn’t working properly either.  I think both are solvable.

I am posting this because this question comes up a few times a week and I am sure the lack of progress I’ve demonstrated may result in lack of confidence for the plugin.

Assuming I get this flushed out in the next day or two, I’d like a couple volunteers to test the plugin before I release and update through the WordPress plugin repository.  Please let me know if you’d be interested in testing an early build.

WordPress 3.3 and WordPress Google Form?

The answer is:  I don’t know yet.  WordPress 3.3 came out last night and I am just playing with it now.  One of the key features of WordPress 3.3 is the inclusion of the complete JQuery UI library.  This definitely affects wpGForm because I am loading one of the UI libraries that wasn’t previously included from Microsoft’s CDN.  That will no longer be necessary (yeah!).  I guess the question now is what to do about backward compatibility with older versions of WordPress.

Historically I’ve just put a stake in the ground and moved on but wpGForm is the first WordPress theme or plugin that I’ve done that has quite a few users so I’ll probably implement some sort of version detection and conditionally load the UI library from the CDN if running an older version of WordPress.  A little more work for me but probably the right answer.

WordPress Google Form bug fix

In the process of trying to solve the multipage Google Form problem, I found a bug with the “Confirmation” page.  When a custom confirmation page isn’t supplied, the plugin is supposed to use the default Google conformation page.  It currently isn’t, instead the page the form is on is rendered again.  This is incorrect behavior and I’ve fixed it in my development thread and it will appear in the next release.

Multipage Google Forms – no solution yet

Yesterday I had some time to look at supporting multipage Google Forms.  Unfortunately it doesn’t look like it will be possible because of the way multipage forms work.  As you work through a multipage form Google adds hidden values to each successive page to facilitate moving forward and back without losing any data.  Pretty standard stuff for a “wizard-like” form implementation.

The problem is the way the plugin is implemented, the HTML code for the form is extracted and then re-processed before being added to a page within WordPress.  What I’ve implemented works fine for a single page form, actually, in my opinion, it works pretty well.  However, detecting the page transitions and obtaining the hidden form fields either isn’t easy or isn’t possible.  Right now I am leaning toward the later because the hidden fields are generated based on the prior page (Continue or Back) form submission.

What I have successfully made work is to use the “embedded” version of a Google form within a WordPress page.  It works but aesthetically it looks awful.  What I am playing with right now is some jQuery to try and manipulate the embedded form to use the styling from the site instead of from Google.  We’ll see how it goes ….

EX495 WHS Server Recovery Successful

I finally ran through the Server Recovery process on my HP EX495 Windows Home Server over the weekend.  My WHS has been acting up for a while now and I have been unable to fix it.  It was visible on my home network through \\ServerName mapping but WHS Connector wouldn’t work and the Server had stopped backing up the clients.

A WHS that doesn’t do backups isn’t real useful, it is just an expensive media and file server.  After trying to track down a solution several times over the last two months, I gave up and decided I’d have to do a Server Recovery.  I was apprehensive about doing this to say the least.  I have all of our family pictures on my WHS so I needed to copy them to another drive before I could go through the recovery process even though it is supposed to be non-destructive.  I also had some video and a reasonably large music library.  All in all, about 4.5GB of stuff to copy somewhere while I did the recovery.

Thanksgiving weekend seemed like a good weekend to do this since I would be home and could monitor the process I expected to take a while.  Copying all of the pictures took the longest – I have about 35,000 digital pictures spanning about 10 years – they pile up!  Once I got everything copied and felt that if everything disappeared I wouldn’t be completely SOL, I started the recovery process.  I followed the procedure and it went exactly as described.  The whole process took about two hours and left me with a WHS which was working again.  I was thrilled to see that none of my data was gone – everything (pictures, videos, music, etc.) was all there just as it was before I did the recovery.  Whew!

The server was a bit slow throughout the day as in addition to trying to reconfigure all of the clients, of which I have seven or eight, the WHS was also updating itself with the various Windows Updates which have been released since the media was created.

This morning I got up to check on it and was happy to see that my laptop had been backed up and my wife’s PC was almost done.  Yeah.  A level of comfort has been restored.  I am not exactly sure why my WHS went AWOL on me, I added to modules to it:  Tivo and McAfee.  I no longer use a Tivo so there is zero reason to re-install that and I am on the fence about McAfee.  Actually, based on this article, it looks like there is no reason to install McAfee again since it isn’t supported any longer.  Avast appears to be an option, I’ll have to do some digging to see if it will really work.  I have no desire to go through this process again anytime soon!

CSS for the WordPress Google Form Submit button

I was recently asked how the Submit button could be styled when using a Google Form in conjunction with my WordPress Google Form plugin.  Fortunately this was an easy question to answer because I had done something similar for another site.  Now I suspect the person asking me didn’t want to make their submit button pink but the CSS selector should be the same – it is just a matter of adding the CSS directives to achieve the desired affect!  I used the following selector to style the Submit button:

div.ss-form-entry>input[type="submit"] {
    background-color: pink;
}

This little trick should help further integrate Google Forms with your WordPress site.

Update: Recently I was asked how to style only the Submit button – all other buttons (e.g. Back, Continue, etc.) and input fields should keep their default styles. Here is some CSS which will style only the Submit button:

div.ss-form-entry>input[type="submit"][name="submit"] {
    background-color: pink;
}

United Airlines – Meh

I haven’t posted much about traveling lately.  In fact, now that I think about it, it has been quite a while.  My work travel ebbs and flows, it always has.  I can go several weeks to a month without traveling to having to travel 3-4 weeks in a row.  I do my best to keep my trips as short as possible.  I know it is cliche, but there is very little about traveling which is glamorous.  In fact there is a lot of it that just plain sucks.

I have been a loyal American Airlines passenger for 20 years but as AA’s service out of RDU has scaled back, I sometimes have to fly other airlines.  Spreading oneself around a bunch of airlines is (IMNSHO) a bad idea as there is nothing worse than traveling a lot and not having and status to show for it.  For a number of years Continental has been my second choice airline.  A few years ago I became a OnePass Gold member on Continental which was nice because their upgrade policy is waaaaaaay better than AA’s is.  Of course, I then didn’t fly enough on Continental to retain my status, in fact, I didn’t fly enough to even keep Silver (big mistake on my part).

I have Lifetime Platinum status with American Airlines so there really isn’t a lot of motivation for me to fly AA.  They treat me well and I like the fact that their planes have more spacing between the seats and most have power in them but I have zero desire to travel enough to qualify for Executive Platinum.  This year I’ve flown on Continental again quite a bit so I am in the ballpark for qualifying for OnePass Gold.  The United-Continental merger is a great unknown so I’ve tried really hard to keep my Continental flying on real Continental flights.

This week I had to fly United (best price, best schedule) to SFO but I booked it as a Continental flight.  I was curious to see how this turned out.  For the most part it was fine although moving my seat worked sometimes and didn’t work other times.  Not real sure what is going on there.  I ended up with an exit row aisle seat from IAD to SFO (yeah) only to find a huge guy in the middle seat when I boarded the plane (ugh).  I spent most of the flight leaning into the aisle (bleh).

The thing which bothered me the most about these United flights (on United equipment) was the lack of seat power on any of them.  Most AA flights have seat power in all rows up to the exit row and then pretty much every other row from the exit row on to back.  The AA seating map on their web site denotes which seats have power so you can move yourself around to get one that does.  I like power.  I like to be able to use my laptop while I am on the plane.  I get lots done.  Many of the CO flights I’ve taken this year have power in the seats.  The four United flights I was on this week had none.  Even in First Class (I was upgraded once).

I was thinking that the UA-CO merger might be ok because it might offer some more options for me but if none of the planes have power, I may have to rethink it.  It may all be a moot point as I am inline to get a new laptop soon (mine is 3+ years old) so whatever I get will likely have plenty of battery for a 6-7 hour flight.

Still, the United equipment was visibly old.  I thought the merger would address some of it but it looks like all they did was paint the planes with the Continental colors.

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.