More plugin fun

So after my toe-dipping exercise into making a plugin to cater for adding text to the publicize functionality, I decide to build a proper admin screen for the plugin, which I have to admit wasn’t as complex as I first thought it would be.

First up was the text to be inserted, I found out that spaces were being striped of the text I’d entered so I added some toggles to handle this. I also wanted to see what the end result would look like without having to create a new post to do so. Here is the latest version.

pluginadminpage

Since I was on a roll I turned my focus to another hard-coded feature of my site, the “What I’m Playing” widget. This one is a little tricker as I had to make the widget appear in the widget menu (another first for me) and then create an admin panel to populate the information from. I could have build it dynamically to allow an unlimited number of multiple entries, bt as I only tend to have a handful which I update as I go I decided to just go with a limit of 6 but usually it’s only ever 3.

game plugin admin

The image dropdown is loaded in from a list of images in a particular folder, again I feel it’s nice to see the changes in the same page so you can spot any problems after saving a little quicker.

Social linking text plugin

Whenever I make a post I like to have the Publicize element of Jetpack update my Social Media stuff when I make a new post. However I like to prefix the message that goes out with the text “[Blog]” so that on twitter it’s clean that I’m not just linking to something random. I usually remember to it the text but on occasion I forget completely and kick myself as it’s rather inconsistent.

After digging about in the bowls of wordpress there appear to be some functionality you can use to default before and after the usual Publicize text and link, I know that the ability to add a #Blaugust hashtag during the event would have been useful.

A number of places I read indicated you could add this functionality to the theme, however when I tried this it didn’t work for me correctly, so I opted for the plugin method which I’ve detailed below should you want to do the same. Yes there is most likely a plugin that will do all of this for you but it’s nice to build it yourself.

Note : you will need access to your website via FTP or a website portal that allows you to create folders and files.

  1. First you will need to navigate from the root of your wordpress install to the folder wp-content and then plugins.
  2. Create a folder for your plugin, mine is called “Publicize-Plugin”
  3. Navigate to your newly created folder and create a new php file, this usually takes the same name as the plugin folder, in my example it’s called Publicize-Plugin.php
  4. You will need to create the header elements of the file to just cover the basics your file will need to look something like this:
    <?php
    /*
    Plugin Name: Publicize Plugin
    Description: Custom Code for publicize function
    Author: welshtroll
    Version: 1.0
    */
    /* Prefix Code Goes Here */
    /* Suffix Code Goes Here */
    ?>
  5. Next up is adding the logic to Prefix the text to your publicize, you need to replace the text /* Prefix Code Goes Here */ with the following:
    function Publicize_prefix() {
         return '[Blog] ';
    }
    
    add_filter('wpas_default_prefix', 'Publicize_prefix');
  6. The first part creates an function (rename as you wish) that will return the prefix “[Blog] ” (Note the space after the text to stop it going straight against the generated title and link).
  7. The second part registers that function to be called when the prefix is need, the function name will need to match.
  8. So in theory you should be able to visit your wordpress admin plugin page and enable the plugin.
  9. The final step is to replace the placeholder /* Suffix Code Goes Here */
    function Publicize_suffix() {
         return '';
    }
    
    add_filter('wpas_default_suffix', 'Publicize_suffix');
  10. This will add the suffix element, in mine it’s empty but you could add anything you like such as hashtags. Again remember it will attach it directly to the text so add a space at the start.
  11. Now when you are creating a new post your publicize should contain your additional text.

You can find the file here http://welshtroll.co.uk/files/sampleplugin.txt

And there you have it, a basic plugin to modify the default publicize text.

#Coding #Plugins

Gaming Charts

Charts

As you may be aware I enjoy looking at the stats that GamerDNA captures for XFire usage, it is a simple yet effective  method of showing how much time was spent and what percentage was spent on each game. I’m truely suprised that XFire doesn’t capture such data already.

At the start of January I reviewed my XFire data for the month of December, I wanted to see how frequently I played certain games. I pumped the data into the handy Google Chart API which then displays an image based on the information provided.

When February came around I wanted to do a similar task but rather than having to trawl through the data and craft the url to generate the Chart I decided to automate the process. So in a frenzied weekend of wracking my brain into remembering PHP, I created a page that automatically reads the RSS feed of my gamerDNA experiences and uses the XFire data held within to generate the URL for the Google Chart.

64px-gnome-x-office-spreadsheetsvg

After a few hours cursing at stupid errors I finally created a fully working tool that achieved the result I was aimming for. Once this had been tested a few dozen times it suddenly occurred to me that It would be easy enough to allow other GamerDNA members with XFire experiences to generate their own charts.

http://charts.welshtroll.co.uk/

It’s not all that pretty but providing the username entered has XFire experiences on GamerDNA in the last 30 days it will “hopefully” generate a nice little chart. I’m hoping to enhance the functionality to include the ammount of time played as well, but that can wait for now, small steps to start.