[Plugin: Infinite-Scroll] Contribution of fork with many enhancements
-
I was trying to use the plugin for a project, and ran into a handful of compatibility problems / blockers. Specifically:
- Because the javascript is served as PHP (via
readfile()
), it would not properly integrate with minification, page caching, or browser caching plugins. - Because the
presetDB.csv.php
file 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 byphp.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:
- Javascript is served via standard
wp_enqueue_script()
API (allowing for other plugins to minify, cache, apply headers, etc.), and arguments are passed viawp_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 onWP_DEBUG
to toggle debug mode, useapply_filters
to pass additional arguments, usewp_editor
for WYSIWYG editor, andmedia-upload
for 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.)
Caveats:
- Minimum compatibility bumped to WordPres 3.2
- Many options moved to filters to simply interface for majority of users
PresetsDB
file 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.
– Ben
https://www.ads-software.com/extend/plugins/infinite-scroll/
- Because the javascript is served as PHP (via
- The topic ‘[Plugin: Infinite-Scroll] Contribution of fork with many enhancements’ is closed to new replies.