I was trying to use the plugin for a project, and ran into a handful of compatibility problems / blockers. Specifically:
readfile()), it would not properly integrate with minification, page caching, or browser caching plugins.
- Because the
presetDB.csv.phpfile is stored in the plugin’s directory (which should not normally be writable), I could not load any presets (simply erred out), nor could I save any of my own, nor were write permissions properly enforced on multisite installs.
- Because the preset class calls cURL directly (rather than going through
WP_HTTP), it wouldn’t work on sites without direct access to cURL, e.g, when disabled by
php.ini(not uncommon), behind a proxy, etc.
- No internationalization or custom post type support.
I "forked" the project over on GitHub in hopes of contributing back some of my improvements to the original project.
There’s a full change log on the develop branch, but in broad strokes, in the fork:
wp_enqueue_script()API (allowing for other plugins to minify, cache, apply headers, etc.), and arguments are passed via
wp_localize_script). Thus this (112 lines ) becomes this (1 line).
- Presets can now be stored as site-transients, meaning there’s no need to touch the file system directly. They are asynchronously updated from the SVN repo every 24 hours (via the WP_HTTP class), so there’s no performance hit on page load or portability issues. There’s also a cap-check on multisite installs as the presets are network wide.
- Added full internationalization support, CPT support, and generated POT file.
- Simplified the administrative interface by relying on many native WordPress functions that would otherwise be familiar to everyday users (e.g., display presets using
WP_Table, rely on
WP_DEBUGto toggle debug mode, use
apply_filtersto pass additional arguments, use
wp_editorfor WYSIWYG editor, and
media-uploadfor uploading images).
- For many users, the fork should work right out of the box as the fork defaults to presets where available (local or community), and can even look to a child theme’s parent for a preset, where applicable.
- Significant code clean up, file reorganization, and in-line documentation to conform to WordPress coding and style standards (e.g., whitespace, double v. single quotes, tab drift, trailing commas, closing PHP tags, phpdoc style documentation, file naming conventions, version numbering, etc.)
- Minimum compatibility bumped to WordPres 3.2
- Many options moved to filters to simply interface for majority of users
PresetsDBfile converted to standard CSV as there is no longer risk of leaking when stored as transient.
- I’ve tested the fork and believe it is stable enough to personally have it in production, but there may be a few underlying bugs/compatibility issues still to ferret out with broader testing.
If any members of the community are interested in using or testing this version, you can clone the repository (if you are comfortable using git), or simply download and unzip the plugin as you would normally. Any feedback is greatly appreciated.
While the fork was made for my own project, it was built with the broader community in mind (the fork is fully back-compatible with the community branch’s current and legacy database formats, presets file, etc.), and I would be honored if you would consider including it in the next stable release of the project.
Obviously there are some very purposeful decisions throughout the above, and I am more than glad to discuss them further or help integrate the improvements any way that I can.
Thank you for all your work on this great plugin, and I hope that my contributions can be included in the community's version sometime soon.