Blog

How to Update Tournamatch

In this post, I’ll walk you through the process of updating Tournamatch to use the latest version. This assumes that you already have Tournamatch installed. If not, you should first head over to our how to install Tournamatch guide and come back when we have an update available (we push 1 – 2 of those per month).

For those already enjoying the benefits of running your own eSports league, follow along below and I’ll guide you through the epic quest titled “Updating a WordPress plugin”:

  1. Navigate to your Admin Dashboard and click Updates.
    Navigate to the Dashboard -> Update link in the WordPress Admin.

    Navigate to the Dashboard -> Update link in the WordPress Admin.

  2. Scroll down to the plugin section and click the “Update Now” button within the Tournamatch section.
    Click the Update Now link within the Tournamatch section.

    Click the Update Now link within the Tournamatch section.

You’re done. Seriously. If you don’t see the Tournamatch section and an option to upgrade, you’re either running the latest version already or you haven’t yet installed the best WordPress plugin for hosting ladders and tournaments.

Ladder Standings Widget

Today, we’re going to talk about widgets. What is a widget? A widget is additional content or feature-specific code you can add to your sidebar. If you don’t know how to install a widget, you can learn more here.

Tournamatch ships with a Ladder Top X widget which allows you to display the top X number of competitors (players or teams) competing in a given ladder. It accepts two parameters. The first parameter is the number id of the ladder to display. The second parameter is the number of competitors to display. In the screenshot below, we’ve configured our widget to display the top 3 players for the ladder “” which has an id 1.

How to configure leader board widget.

How to configure leader board widget.

And here is what that looks like on the main page:

Ladder Top 5 Widget

Ladder Top 5 Widget displayed on the homepage.

To get the id of a ladder, simply visit the ladder standings page and look for the id in the URL address bar.

You can also use a widget more than once configuring it differently each time. For example, we’ve set up two instances of the Ladder Top X widget and we’re displaying the top 5 in one ladder and the top 6 in another:

Using multiple widgets.

Using multiple widgets.

Week-End Review – 2020.06

I hope everyone had a great week number six of 2020. The Superbowl was a good watch as usual, and I’m happy to see Andy Reid finally get his ring. It’s well deserved and long overdue in my opinion. Little Tournamatch learned he can get on and off the sofa on his own. We were just thinking the other day that he needs something new to worry Mrs Tournamatch about </sarcasm>.

Development continued on asynchronous behavior and I also mixed in improved mobile-friendliness on the team profile page. This page contains the single-biggest opportunity to eliminate unnecessary pages (add in some Ajax) and several opportunities to improve usability on mobile. Check out a screenshot of the improvement below:

mobile-table-before

Before team profile mobile-friendly update.

mobile-table-after

After team profile mobile-friendly update.

I’ve determined precisely how to handle the endpoints on the backend – REST has emerged as the winner in that debate. In addition, using native JavaScript where possible is the go to solution for the foreseeable future. I expect to begin rolling out these updates next week. Once the team profile page is finished, I’ll turn my attention to the ladder standings.

Week-End Review – 2020.05

I can’t believe February is already here. Last month completely flew by! It was a terrifically productive month for us, too. We pushed out three updates plus one more today (which was really finished around Wednesday), so I’ll credit January with four updates.

The last two weeks have been focused on adding some asynchronous behavior to several user pages. There are a couple ways to handle it on the back end: WP Rest endpoints and admin ajax handles. I’ve written code for both and still considering which way to proceed. On the front end, I’ve also been comparing using native JavaScript to jQuery – and even some React! I think I’ll actually pass on React for now. The jQuery that ships with WordPress is incredibly old. I’m a bit worried about building out a front end using such an old package. In particular is the work required to update client code once WP Core eventually gets with the program. By building out the front end using native JavaScript, I can avoid some potential hassle later. Using native JavaScript so far hasn’t been that inconvenient.

There is still at least another week of development before any of these additions make it into an update. Have a great weekend and enjoy the Superbowl tomorrow!

Week-End Review – 2020.03

This week wasn’t quite as productive as last week. We did manage to get a small update for several changes a couple new customers requested. I appreciate getting these seemingly small but helpful requests. Chances are that if you want something, others that use our software also want the same thing. I won’t rehash those changes here because they’re explained in our release notes.

My morning routine was thrown a curve ball this week after staying up for the National Championship game, catching up with terrific friends we rarely get to see, and car shopping (thbptttttttt). I don’t anticipate any distractions next week, so we should see a major asynchronous update before the end of January.

Between the changes for the update released this week and sleeping in, I did find time to begin scoping out custom work for two other communities. I haven’t accepted any requests for custom modifications in quite a while because we’ve been laser focused on completing our 2019 objectives. As 2020 unfolds, I expect we’ll take on a few more pseudo-partnerships to continue to build out this software. Have a great weekend!

Week-End Review – 2020.02

We wrapped up a major update initially started before the holidays this week. It was big in that it included a lot of minor details. Stuff like extra CSS for situations that sometimes occur or fixing a broken redirect link for a deleted tournament. A lot of minor things that don’t seriously impact the ability to run your league, but which are still important to maintain quality. It was great to clear out a chunk of our backlog.

We also updated our friends at GhostWarLeague.com from version 2 to the latest version. This turned out to be a lot less painful than anticipated. If you are out of the loop, version 3.x migrated Tournamatch from a stand alone bridged location to the native WordPress directory. It was a big change and we were dreading major migrations such as on their website.

After another quick patch later on in the week, I think the software is in a great place to move on to more ambitious changes. We’ve avoided major new features for months because we were focused on consolidating match logic and giving those pages (match list, details, and reporting) a small makeover. We are happy with the outcome, but there is still some more work to do.

Before these changes, ladders had their own report and confirmation pages which were separate from tournament report and confirmation pages. Conceptually, a match is a match regardless of which competition. Having separate pages makes adding new match related features more difficult so the obvious solution was to merge those.

We’ve completed the new pages and parts of Tournamatch use those new forms. You should especially notice this when users report tournament results because you may now record score, report team match players, and include attachments with those matches.

The next ambitious step we’ll focus on before building out new features is some asynchronization. We can eliminate several forms if we just change certain actions to use Ajax. For example, disputing a match result, confirming a result, accepting or declining a challenge – none of those activities require a stand alone page with a button allowing the user to interact with the page. The initial button or link that loads each of those pages is sufficient to complete the action.

Once we have eliminated the unnecessary pages (there’s about 14 in all), we’ll be left with that much less code to update. That’s the name of the game right now – eliminate legacy code which if left would need to be edited in order to move forward. Ha! I just realized we’re kicking off our 2020 by eliminating the fat. What a fitting New Year’s resolution I suppose.

How to install Tournamatch via FTP

One of the two main ways you can install Tournamatch in WordPress is via a File Transfer Protocol (FTP) program. FTP programs connect to the web server where your website is hosted and permit you to transfer files between your local computer and the server. In some scenarios, such as when file upload permissions or file size limitations restrict web uploads, it is necessary to upload Tournamatch via FTP. This article will walk you through using FTP to upload Tournamatch.

The first thing that you need is an FTP program. I highly recommend FileZilla. It’s a free program widely recognized as one of the best. You can use whichever FTP program you wish, but screenshots throughout this guide will reference FileZilla.

After installing your chosen FTP program, you need to acquire FTP credentials from your web host. These are typically found within the cPanel dashboard from your web host. The process can be slightly different for each web host depending on the presence of cPanel and which version, so the best way to retrieve these credentials is to hit up Google. Simply Google “how to find FTP credentials on ____” and replace “___” with the name of your web host.

Once you have these credentials, open FileZilla and go to File -> Site Manager.

Click File, then Site-Manager.

Click on New Site.

Click on New Site.

Enter the host name for your hosting account in the Host field.
Enter the host name for your hosting account.

Select Normal Login from the credentials drop down.
Select Normal Login from the drop down.

Enter your username in the User field and password in the Password field.

Enter your username and password in the appropriate fields.

For the majority of web hosting accounts, and if you entered your credentials correctly, you should now be able to connect to your web host. When the connection is established, you will see a directory listing on your right. These are the files in your web hosting account. You shouldn’t rename, move, or delete any folder unless instructed to do so as most of these will have been created by your hosting provider when they setup your hosting account.

If you don’t immediately see the folders wp-content, wp-admin, and wp-includes along with several other files ending in .php, you may need to navigate to another directory. Look for a directory titled “www”, “public_html”, “html”, or “html_root”. These are the most common names for the “root” directory, or the directory that actually loads when a user visits your-domain.com. If you still can’t find the root directory where WordPress resides, you may find opening a support ticket with your web host is the best place to start for help.

Once you have located the WordPress root directory, navigate to the wp-content/plugins/ directory. Here you will find folder names corresponding to every plugin you currently have installed. This is where you should upload the “tournamatch” directory.

The root WordPress directory contains the wp-admin, wp-content, and wp-includes folders.

Finally, after uploading Tournamatch, you are ready to install Tournamatch via the WordPress admin page. Login to your WordPress admin account and click on the Plugins menu option. In the list of plugins, you should now see the plugin “Tournamatch”. Click on the link “Activate” and Tournamatch will now install. If you have followed along this far, then congratulations! You’ve just uploaded and installed your first WordPress plugin via FTP. Stay tuned for our next article that will walk you through customizing Tournamatch and getting the most out of it.

Click activate in the WordPress plugins section.

Version 3.0 Released

Tournamatch version 3.0 is now available. This is a major update for existing users. Please reach out to us via email or by opening a support ticket if you want to migrate an existing Tournamatch 2.x website and all of its data to 3.x. This update relocates all of the source files into the native /wp-content/plugins directory. The relocation doesn’t add any features to ladders or tournaments, but it drastically improves the management of the plugin and lays the foundation for more rapid improvements in the future. Specifically, relocating the plugin immediately improves installation, administration, and updates; and, future updates will improve internationalization and user roles/permissions.

Installing Tournamatch now works exactly like installing other plugins. Upload the download to the plugins directory and click “Activate” inside of your admin. The plugin isn’t yet available on the WordPress plugin repository. We are trending towards that goal. Unfortunately, the file size of this plugin makes it unlikely you will be able to upload the plugin directly within the WordPress Admin. We are also working to reduce the dependencies and overall file size.

2019-08-01 17_40_05-Window

Updates are now automatic! When there is a new version of Tournamatch available, you will see a notification within your WordPress dashboard. Simply click the update link and Tournamatch will update itself. You may also find the patch notes here. We’re working to improve the updates further by providing an option to switch to the latest developmental build for trail blazers.

2019-08-01 17_39_02-Window

Administrating Tournamatch is now more native. Instead of a separate location to manage ladders, tournaments, games, etc, you can find those links directly in your WordPress admin menu. We’ll soon add custom roles so that you can leverage the WordPress role editor to assign capabilities to users.

Version 3.0 also no longer requires support for ionCube. We’re really excited about this – it was as much of a headache for us as it was for some of you. Several of the source code files we used depended on it, so after rewriting those source files, we were able to remove this requirement.

In future releases, we anticipate focusing on user roles/permissions first followed by fully adopting the native WordPress internationalization & localization system. Until then, Tournamatch is only available in English.

This update officially ends our support of Tournamatch for PHP-Nuke, phpBB, and Tournamatch version 2.x. If you wish to continue using 2.x, feel free to do so. We will no longer be patching, improving, or supporting version 2.x. We’re offering a free upgrade to version 3 for anyone who currently owns version 2, so we encourage everyone to take advantage of that offer.

We’re really excited about the future of this product. More than 90% of our customer support inquiries could be grouped into these topics: installation help, ionCube, are there updates available, installing updates, and how to find the administration section. This release knocks all of those barriers down. We should be able to focus more on product development and distribute those updates rapidly and seamlessly. It’s still a long way before we get to where we want to be. We truly appreciate you joining us for the journey.

Honing Our Focus

Jack of all trades, master of none. It means you’re competent in a variety of subjects, but not an expert in any one subject. I feel like you could apply this to Tournamatch’s development and list of supported CMSs. I’m a huge fan of including people. Including people just makes them feel great. I enjoy making folks happy which also explains my desire to include people. Over the years, this meant building out support of Tournamatch so that you can use it with any CMS system written in PHP. As of today, the exact same source code in Tournamatch works on WordPress, phpBB, PHP-Nuke, and a couple others I’ve neglected to publicize. Like a library you include in your source code with a package manager, except at a larger scale and Tournamatch integrates well enough in each system to appear native.

My ambition to support every customer’s needs has had consequences. In none of those systems does Tournamatch integrate the way the system was designed to use plugins. This has been a challenging hill to climb, especially in WordPress. Too often my time is spent overcoming these challenges instead of building or growing the software. In WordPress for example, the biggest issues standing in front of us right now plugin compatibility, distribution, and localization. Neither of those issues exist if Tournamatch were a native WordPress plugin instead of bridge to another PHP-powered CMS.

I’ve evaluated solutions to these glaring issues for well over a year. The best solution I keep coming back to is to build a native plugin. I’ve been reluctant to pull the trigger on this because it means dropping support for our other systems. This is a tough decision, but it’s important for the health of this project to focus on just one system in the near term future. All development resources moving forward are focused on making a truly native Tournamatch solution for WordPress. I’ll provide more details soon. In the meantime, know that if you are on WordPress, you shouldn’t be impacted. Your experience moving forward should only improve. If you are using one of the other systems, consider switching to WordPress. The copy that you have will continue to work on non-WordPress websites, but we will no longer offer technical support or updates for those other systems.

Thank you always for the support, and we apologize to the folks that will be excluded by this decision. We’re excited about the future and hope you’ll make the switch to grow with us. Cheers!

Reviewing 2018

At the beginning of 2018, our goal was to push out one update per month. We just missed that mark with only ten updates. Several changes required more time to build and test; so, the additional time was warranted. Of course, we could have released something just to hit my goal. We instead favored meaningful updates so to not waste your time patching over nothing.

What wasn’t always obvious is that we took on a major refactoring project in each new feature or change with a specific mission in mind. Those efforts will begin to come together in 2019. We already have a post detailing our goals for 2019 written and it should be released next week. Before that, I’d like to look back and recap our major improvements in 2018.

  • Ten new software updates.
  • Added support for manually seeding a tournament and seeding a tournament from a ladder.
  • Added support for limiting bracket size.
  • Added several bracket management features including replacing competitors, advancing competitors, clearing disputes, and confirming results.
  • We completely overhauled the email system with 18 new messages and notifications, beautifully formatted emails, and support for using SMTP and WordPress email system.
  • Added support for a new blind challenge mode.
  • Improved the cleanliness and layout of ladder standings, ladder and tournament lists, and tournament brackets.
  • Added new filters for Games, Ladders, and Tournaments.
  • Added new tools for “resetting” data post install testing and checking email settings.
  • Added support for users to upload their own avatar and administrators to upload game images.
  • Added new configuration options like disabling draws throughout the site and setting attachment file types.
  • Significantly improved automated test coverage.

Thank you all for the support and contributions through your feature requests, bug reports, and suggestions.