Here is part 2 (of 2) of my "reviewing", mostly from a plugin coder's point of view, the plugins running in the WordPress Plugin Competition.
Please, please and puh-leaaase, if you are a contestant and if you didn't read Part One, do read it before you proceed to part 2. There is a mandatory disclaimer that you and me don't want you to miss before you read any comment I could have made on a plugin of yours :) Thanks in advance. Now, let's go:
Picture Increment Cron System
Picture Increment Cron System turns a collection of pics inside a directory into one post a day
Fun idea. Alas, the plugin is encrypted with Zen Guard, which makes its source completely obfuscated and unreadable, which is in itself enough reason for me not to install a plugin. By the way, I think this infringes the Plugin Competition guidelines, as well as the WordPress plugin repository, which require plugins to be GPL compatible.
post Tabs splits posts into a tabbed interface
That is a rather cool idea that will probably find its audience. I could easily use something similar on my blog, for instance on plugin pages where I would have a first tab about the plugin concept, a second tab about detailed documentation, then a tab about download and install instruction, and finally a tab with a FAQ.
Good stuff: all the admin part is in a separate file that doesn't load in memory when someone views the public part of the blog. The 13 saved options of the plugin are all in the same DB entry. The code is fairly clean and well commented.
Bad stuff: hardcoded path to the plugin directory, nothing is sanitized or checked before being stored in options.
Role Scoper lets you define roles and groups to manage privileges amongst several users
This seems to be a very ambitious plugin that will seriously help multi user blogs. To be honest I didn't test it and gave a quick glance at the code, which looked clean and very well commented, but this is obviously not a plugin you can really judge in a few minutes.
What I did like though, and hence this mini review despite my lack of insightful comments, is the explanations, their content and their tone. Very well put, clear, detailed but not overwhelming. Or maybe it's just that this plugin rang some bell in me? I'm pretty sure that this plugin will be something I'll remember and point to when I get questions about role managing.
SEO Smart Links
SEO Smart Links automatically interlinks your posts and pages on keywords matching category, or tags, or posts names
To be honest, whenever I see a plugin with "SEO" in its name, I want to trash it. While a small fraction of people truly understand SEO, everybody and their mother seem to have awesome ideas and invent new tricks. Want to make a popular plugin? Use this pompous keyword and you're almost done.
OK, enough for the rant, what about this plugin anyway ?
Coding style is so-so, with a lot of indenting inconsistencies and no comment to help the reader understand what's going on. The plugin seems to add between 1 and 4 queries to every post displayed, depending on options, but also seems to hopefully use WP built in query cache to reduce impact.
Generated links are either with target="_blank", which is a pain to me as a reader, or nofollowed, which has exactly zero SEO impact. I don't get why on Earth you would chose between these two modes and why they should be mutually exclusive.
The plugin seems to be a potential candidate for update problems via WordPress' notifier: depending on where you look (plugin name, directory or plugin filename), the name is either "SEO Smart Links", "SEO Links" or "SEO Automatic Links", which is not the best way to ensure that WP will always detect when a new version is available (at least according to my empiric observations)
On the plus side, I'll mention that all options are stored within, everybody says it loud with me, just one DB entry.
All in all and despite my negative remarks, probably not a bad plugin. I just can't help having negative feelings towards the implied "man you're gonna get so goodly rank0red in Google you won't beeleeeeve it !!!1"
Show Me Options
Show Me Options detects the URL to a plugin option page when you activate it (no more wandering through Settings then Manage then Plugins to find the darn submenu)
This plugin is a gem.
Even if you shouldn't really need it (I mean, you're all using Admin Drop Down Menus now, right? so searching for a submenu is just a matter of hovering), this is the kind of short plugin that provides just a little help, in just one place, just sometimes, but that will make the whole experience more pleasant. This is the kind of plugin that adds features that don't look like plugin features: they look like something WordPress does, or should do, out of the box.
I would move everything to a conditionally included file that would load only if (is_admin()), but the plugin is so short that it's negligible. I would also hook with 'load-plugins.php' instead of 'admin-head'. The biggest complaint I have here would be to add more inline commenting, but again, this is a short plugin.
The whole job is done in a smart way. Or at least it must be fairly smart, since I cannot think of any other simple way to do so, and I probably would have not find any simple way at all to do it if someone asked me to code something similar.
Things are not perfect, since the plugin will be fooled by plugins which add multiple pages (one under Manage and another one under Settings for instance) but things will be fine in most cases.
Overall: a simple feature, a short plugin, a great result. No fancy stuff, no amazing interface, nothing that looks like it needed 3 months of work and a ton of files, just a simple idea to improve a simple task with a very smart piece of code. I really like it.
Simple Flash Video
Simple Flash Video does something with Flash videos. I guess.
I didn't review nor try this plugin, but want to highlight something very important when designing a plugin: once you're pleased with your code and the features, don't botch up the packaging, ie the page that will "sell" the plugin. Don't let people (or competition judges) guess what your plugin is about, tell them.
This plugin page lacks a clear brief intro that will say "this plugin does this and that, and it's cool because of this and this". All you see is at first glance is irrelevant information, and features. Features are important to highlight, but it's not the first thing you want to tell. The first stuff your page has to be about is… what your plugin is about. Starting by features is like saying to a potential customer "my product has 4 wheels!" when this customer doesn't even know if you're talking about a car, a quad bike or a wheelchair.
Snazzy Archives displays your blog archives as a compelling mosaic of text and images
The result of this plugin is quite aesthetic, inspired by the way Tumblr displays post archives. The plugin in itself is mostly CSS and JS, the PHP part of it is minor and trivial, yet neatly done: using shortcodes, adding JS and storing options are done the way they should.
Here on this blog, the result out of the box was totally terrible, so I think depending on your theme you might have some CSS work for better integration. Will look best on blogs embedding a lot of images.
Tabbed Widgets enhances sidebar widgets with visual "Tabs" or "Accordions" effects
As expected from anything by Kaspars, the interface of the plugin is sexy and appealing. I would suggest a more dynamic way to add widget wrappers, instead of having by default 8 blocks each containing 6 rows. As of now, that makes a lot of empty spaces, and a gazillion "Update Options" button that might be a bit scary.
I don't exactly have a smart suggestion about it, but I think it would be better if the whole stuff was more integrated with the Widgets page, rather than having to deal with 2 pages (Widgets and Tabbed Widgets). Something like adding at the bottom of the Widgets page a field for "How many Tabbed widgets to you want?" and creating new widgets accordingly.
All in all, a very clean and pleasant plugin.
tWPtter allows you to publish short posts via a widget or a page within your blog, or via email
The first things that popped in my head were: Wow, fun name, how the f*ck you pronounce that? Wow, totally cool logo. Things start really better when you go "wow" on first sight :)
Then I started to "de-wow" a bit since I could find a download link on the page. Honestly, I had to view the page source, search for "download", to find out that the tiny link was totally hidden under an ad. There has to be a better way to do this!
The code is compact, more or less randomly indented and difficult to read. The usual mistakes are there: each option generates one entry in wp_options, plugin path is hardcoded, the author didn't understand how plugin translation works (it's not just using _e($string))
The plugin is cute and probably fun to use, but from a coder's perspective could be improved a lot. Which wouldn't make it any cuter or more fun to use, actually, but you know, geeks, they like when everything under the hoods is neat and ordered :)
Vent is an event manager that uses the scheduled posts functionality to manage future events
This plugin looks like a piece of serious work, in a field (managing events) that will certainly meet an audience.
Very nice code, clean, commented, structured. As everything is already splitted into a public and an admin class, it would make sense to even put these classes into separate files so the admin functions wouldn't load and compile when viewing the blog. Really nothing more to say about the code as this is obviously a pretty big work that can't be evaluated in a few minutes.
What I want to outline here, once again, is the plugin page. Clean and clear, with a small screenshot of all the key aspects and features of the plugin: by the time you've read the page, you already have the feeling you've started using the plugin.
This really looks like an impressive plugin, with smart integration of its features into the existing admin pages (namely, the Write page)
WP 125 is a 125x125pixels ads management plugin
Code is ugly and totally unindented, if such a word exists. Let me be clear on something that may not be obvious for everybody: having clear, commented and neatly indented code is not just a geek useless odd mania, it's a must have for maintainable code. A few months after you've written a plugin, you mostly forgot how things run, how you handled this damn problem or how super smart was your super long regexp. After a few months, you need your code to be easily readable.
Coding wise, the plugin seems to be improvable in several areas. There's a click tracking function that stores into a MySQL table something right from the $_GET parameter without any sanity check, which is a loud call for exploit. There's an install function triggered by plugin activation, that's fine, but the install file gets included anyway on every page view, that's a waste. Same thing for the admin menu stuff: they are in a separate file, fine, that's always included, not fine.
The plugin creates 2 tables, one for ads and one for settings. Having a table for ads is probably a good idea, since you'll probably want to keep track of a lot of thins. But creating a table for options doesn't look like a good idea to me: this will add an extra query on every page view, to read options, and this query would be avoided using wp_options to store them. Queries are expensive, always code as if you were paying for each one.
Feature wise, I think the plugin lacks a bridge with Paypal to automate billing, in order to truly save time on cumbersome tasks.
WP Comment Remix
WP Comment Remix adds functions and options to the default WordPress commenting system.
This plugin appears to borrow some code and ideas from my own Absolute Comments as well as throwing a few other features in the mix.
The lack of file and directory structure in the archive is a bit overwhelming: that's 20 files in the same directory, JS, CSS, .mo and .php all partying together. I find things easier to maintain and understand when files are logically put and ordered. Other than that, the code is very clean and well commented.
This is by far a too complex plugin to be reviewed here: too much code to ponder, too much features to test, a two paragraphs review wouldn't do it justice, and given that I'm the author of a plugin in this field, I have a pretty established opinion of what lacks and what would be cool. I will definitely have a later deeper look at this plugin when I have some time (maybe I'll end up borrowing a few ideas as well!) but after a 3 minutes run on my test blog, I gave it its 5 stars.
Given the audience this plugin meets (basically: anyone with a WP blog), this well may be a winner for the plugin competition.
WP Easy Uploader
WP Easy Uploader lets you upload themes, plugins and anything from within WordPress
Code looks serious at first glance: clean, using nonces and paying attention to user privileges, things that are a must when you are dealing with a plugin that, basically, will let you overwrite your wp-config.php if you say so.
The PEAR files inclusion may be troublesome on a few installs because of the way they are included (not using a full path to the files, but instead toying with ini_set(), which can be unavailable for security reasons). The choice of getting some PEAR library files to handle some parts of the job seems sensible to me, as they are probably fairly tested, secure and maintained.
The plugin might lack some file browsing functions (like, when you want to delete or move something you've just uploaded) but that would broaden its actual scope (it's supposed to be just an uploaded after all).
Overall : a plugin I would probably not use or recommended because of the scary factor (any security hole in this plugin would be disastrous) unless it would go through a serious security review, but this does really look like a very nice job.
WP Wall adds a commenting "wall", just like in your sister's Facebook profile
Yet another plugin from Vladimir Prelovac who appears to be running something like 285 plugins in this competition.
Regarding the plugin code, same comments as from previous Vladimir's plugins apply (read for instance my thoughts on Live Blogroll).
This wall uses the commenting system to handle replies: that means that spam, moderation and managing in general will be done by WP and any Comment plugin you may run, which is a smart choice. Walls are an easy target for abuse and spam, so you'd better not try to re-invent the wheel here.
If I had to use a Wall plugin, or when asked about one, I'll head to this plugin.
And that's it
Overall it's been fun to have a look at all the plugins. I like to compare how coders do things and I would have done them, and how ideas and codes can cross-pollinate to get better.
Thanks for reading if you did, but first of all thanks for participating in the contest and for coding plugins. And of course, thanks to the contest staff, I know how hard it will be to judge and rate all the plugins. This competition far the best moment of the plugin year, I hope I'll be able to throw some plugins in next year!
Want to share or tweet this post? Please use this short URL: http://ozh.in/iu