Announcing Games Collector, a tabletop game management plugin for WordPress

I’ve been quietly building something under the radar for a couple weeks. It’s been really just a passion project that came out of a conversation after the holidays.

Basically, we own a lot of games. Blame Wil Wheaton’s Tabletop for some of it, but, really, we’re frequently finding excuses to get new games. In fact, getting a new game for the family has become an annual tradition. We have so many games that it’s sometimes hard for other people to keep track of what we have and what we don’t have. And that’s where the nugget of an idea for a plugin for WordPress came in.

It started off as just a way to list the games that we own. But as I was thinking of ways to display the games, I started thinking about the user experience a bit more. Lists aren’t fun, but you know what is fun? Stuff that moves around. So, I decided to integrate Isotope.js to sort the games by different filters. Isotope animates the transition, so you’ll see games disappear and reappear and there’s lots of different things you can sort by.

As I was working with these filters I thought “wouldn’t it be cool if you could use the game list as a way to get ideas about what games to play?” What game to play depends on the audience, right? So, I added a “difficulty” dropdown that you can use to determine how hard the game is to learn. The range goes from Easy to Hard Core. What game you suggest also depends on how many people are playing, so there’s also a dropdown for number of players. So if you have a group of 4 hard core gamers, you can get a list of games that would be good for that group, and for that many players. Whereas, if you have a group of 7 or 8 casual gamers, you can get a list of games that are more laid back and are good for larger groups.

How does it work? Well you can take a look right here on my blog: Games. It uses a shortcode which you are probably familiar with if you’ve used WordPress for a while. There’s some notes on setting it up on the GitHub page. Here’s a screenshot of the back-end.

If you love games as much as me and you use WordPress, download the plugin and let me know what you think. I’m not planning on releasing it on any time soon because I don’t want to deal with the support forums and because it’s written for PHP 5.6 or higher (which is greater than the minimum requirement for WordPress), but if you have questions or feature requests, you can reach out on GitHub.

This is just the first iteration. I’ve got some ideas about how to extend the plugin moving forward, including integrating the WordPress REST API so the game data could be used outside of WordPress, in an app, for example. The mobile experience isn’t great, and I’d love to eventually build a way to manage and view your game list in a dedicated app on your phone.

Anyway, this is a cool little thing that I’ve been working on and excited to share. Again, download it and let me know what you think!

Do we really need comments anymore?

Once upon a time, comments were king. The number of comments you got on a post not only represented the conversation surrounding that post but also measured its impact. This inevitably led to ways of gaming the system — spammers used comments to implant their backlinks to their black market viagra sites, and would-be and/or fake blogging mavens used them to artificially enhance their own reputation by having posts with seemingly lots of comments. (I regretfully admit that I’ve been duped in the past by fake commenters masquerading as different people. It happened on this blog, even — though ultimately I was able to root it out by identifying two, similarly-named free email accounts and an identical IP address.) Blog comments suddenly became more about the numbers and less about the discussion.

Newer, minimalist blog platforms (like Medium, Ghost and Dropplets) don’t deal with comments at all, instead encouraging users to continue the discussion where it’s actually happening (or more likely to happen) — Twitter. A while back, I wrote a mod for Dropplets (now, sadly, outdated) that would embed a Twitter search widget that displayed the conversation in a comment-like area if tweets referenced the blog post. I’m on Twitter a lot and — thanks to the fact that TweetDeck chirps at me whenever I get an @ mention — I see replies sent to me on Twitter faster than I would see them otherwise (on my blog, via email, etc). Twitter isn’t great for long discussions, but it’s fast, it’s simple, and it’s good enough to say “hey, you wrote this post over here? Well I have a post over here that responds to that” if you’ve written something that required more than 140 characters to explain. And today I read that Popular Science disabled comments because reading comments from other users had the undesired effect of polarizing the audience before they even read the article.

I admit, sometimes the comments are the best part of the article. But usually that’s at the expense of the commenters (unless you’re looking at Gizmodo or Slashdot or BoingBoing in which case it’s a fight for who can be the snarkiest). For us normal folk, why bother with comments at all? Why not just drop them and take the conversation to Twitter?

This has gotten me thinking, especially since the comments on this blog are something I often think (and sometimes worry) about and, really, what’s the point? This will never be a high-traffic blog in which case the numbers don’t matter — be they sharing numbers or comment numbers. And interacting with a real human — as opposed to writing a reply to someone’s comment that they may or may not ever see again — in more-or-less real time on Twitter is a lot more appealing to me. So, I think I’ll be looking for a plugin that replaces the WordPress commenting system with a link to discuss the post on Twitter and if that doesn’t exist, I may well just write my own.

What I’m working on: building a plugin for book reviews

Last year, I met with some of the peeps from the Open Classroom‘s School Library (and Library Committee) to come up with ideas for how the Open Classroom website could better serve them. This was part of an existing process I was going through for planning the update to the website that I launched a couple weeks ago and you can check out now. (WordPress peeps might notice it’s using ThemeID‘s (now CyberChimps‘) Responsive theme as a base. Ironically, I had to make the Responsive theme actually “responsive”, but that’s a topic for another post…) What came out of that conversation was the foundation for a complex, custom post type-based plugin that uses a wide variety of custom taxonomies that would be used for sorting books (and book reviews) by a variety of different things, from genre to subject to authors and illustrators to reading level. I’m entering the final stages of development for the plugin where most of what needs to be done will be some front end and UX stuff, so I’m excited to show off some screenshots of the stuff I’ve been working on. Here we go.

The menu

Book Review menu

The first thing is the menu. A fairly standard WordPress menu. What’s interesting to point out here is that I’m using the Genericons icon font as the dashboard menu icon for the custom post type. I did this because when the WordPress dashboard gets overhauled in 3.7 (or 3.8?), all the menu icons will no longer be the sprite-base images we’re used to seeing, but will instead be using the Dashicons icon font which was specifically built for the WordPress dashboard. This makes the icons more scalable and beautiful on retina devices and also corresponds to the “flat” design of the new layout. So, I decided to get a head start on it now. However, in order to do so with the current version of WordPress, I had to do some clever CSS hacking to hide the existing icon and replace it with a specific character from a font I am loading in the dashboard. I posted the (CSS) code for that in a Gist yesterday.

Review Authors, Genres, Book Authors, Reading Levels, etc. are all taxonomies — so they can be used to sort the reviews. There’s another taxonomy that doesn’t appear here called Ratings. I removed it from the menu because I only wanted 5 possible values for the rating system for 1-5 stars — I didn’t want people to add their own arbitrary ratings which wouldn’t work with the display once the front-end stuff is built. Additionally, when the plugin is activated, it automatically inserts 5 “terms” for the Ratings taxonomy — numeric values of 1 – 5. This way you will be able to sort by rating, but all of that is invisible to the user except when they are writing or viewing the review. Each of the taxonomies (except for Book Author and Genre) are optional, and can be enabled/disabled from the options page which I’ll go over in a bit. All the new taxonomies are off by default — this is a shot of the menu with all of them active — so you start out with a fairly simple system with only a few sub-pages that gets more complex as you enable more features.

The list

Book Review list

This should look familiar to anyone who’s used WordPress — it’s a standard post list, in this case featuring each review. This is an early version of this; I’m going to be adding custom columns so you’ll be able to see the various taxonomies (like Book Author, Genre, etc) for each book. What you won’t notice as much is the dashboard icon. Here, again, I’m using Genericons — the book is a character in the icon font — so I had to do some CSS magic to get that to display instead of an image icon. The future (MP6) WordPress dashboard doesn’t use icons at all, so that’s moot, but it actually made it easier to work with since I don’t have to create some rules and then create new rules to cancel out the first rules when the next version of WordPress rolls around. You’ll also notice that the author of the Shadow and Bone review is “reviewer”, which is a user I created to test out the new user roles that are added by this plugin as well, which I’ll also go into in a bit…

Add new

Add new book review

Here’s the Add New screen and, as you can see, there’s a lot of stuff. By default, WordPress loads all taxonomies on the right side — they can be moved around by dragging them, but that forces the user to do that and, otherwise, makes a huge list on one side that ends up lopsided. I tried to counter this a bit by moving some of these to the middle and then, using some admin css, resized the boxes so I could fit more in a smaller space. It’s not a perfect system, it’s not perfectly responsive, but it’s a start. I tried grouping the taxonomies by things that would typically go together, so author, illustrator and series are all together under the review, while genre and subject live together in the right column. It’s still crowded, but again, this gets much simpler if you have fewer options enabled.



This is the options page where you can turn on/off any of the settings. With the exception of Stock, each of these corresponds to a taxonomy that doesn’t get called if the option is disabled. For Awards, the Upload Award Image section does not appear if the Awards option is disabled and if both Awards and Stock are disabled, that Additional Information box disappears.

User Roles

User Roles

Finally, the user roles. User Roles are my new favorite thing to play with. I just got done building a different plugin for the Open Classroom that added user roles to control a different post type, and thought that I could do that here as well. In the Book Reviews plugin, there are two new user roles, Librarian and Book Reviewer.

Book Reviewer is similar to an Author in WordPress — they can publish their own reviews, but they can’t edit others’. Additionally (and different than the Author role), they can use all the taxonomies that are used by the plugin (so they can add the author, genre, awards, etc). They have also been given the ability to create and publish WordPress posts, but they can’t edit other people’s posts.

Librarian is basically the Book Review admin — they can edit other people’s reviews and publish their own, but as far as the rest of the WordPress admin, they don’t have any capabilities higher than what the Reviewers can do.

All the Book Review posting and publishing capabilities have also been mapped to the existing WordPress user roles corresponding to their existing capabilities otherwise, with the exception of the Author role (which normally can’t publish posts) who can, like the Book Reviewer, actually publish book reviews, rather than submit them for someone else to review before publishing.

So when’s it going to be ready?

Hopefully, I’ll be finishing this up this week and then I’ll post it to the plugins repository as a free plugin. Yes, this is a lot of work to put up for free, but honestly, I have more than enough on my plate right now to want to deal with figuring out a way to monetize it. What will be coming soon will be shortcodes to display reviews and tweaking the columns in the Book Reviews list as well as preparing (and testing) the language files so it can be localized into other languages. If you’re interested in testing it before I make it public, give me a holler either on Twitter or on the contact form on my about page and I’ll send you a copy. Currently it’s being hosted on a private Git repository I set up not long before WordCamp SF.

Right now!


New post columns!

Update Shaming

I wrote a plugin, inspired by my wife, which is designed to give you dirty looks for pages you haven’t updated recently. It’s actually functional, because it gives you a rundown of your oldest content by last modified date. And it does stuff like this:

Check it out.