Optimal tries to automatically discover where you've installed it. When that works, it makes your life easier. When it doesn't work, it can be an aggrevating experience. (Thanks for hanging in there, Chris!)

If you're getting weird errors, especially "Error reading XSL file," you've probably been bitten. To solve this issue, you'll need to manually edit either (1) the plugin file optimalPlugin.php on lines 38 an 41, if you're using the plugin or (2) the file optimal.php on line 41, if you're not using the plugin. There are four path values: (1) the top-level file directory, (2) the top-level URL, (3) the path to your Optimal installation relative to the top-level, and (4) if different from the top-level file directory, the directory where any local OPML files are stored. After you've made any changes, you'll need to delete the file settings.optimal.inc if present in the directory where you've installed Optimal.

See the installation instructions, above. If you run into problems, feel free to leave a comment. I think the majority of problems will be related to either an incompatible server configurtation (PHP 5+ or 4.3+ with domxml and libxslt or Sablotron support: this test script, when run from your server, should tell you if your server is compatible) or failure to ensure your "_cache" subdirectory has world-writeable (777) permissions.

History

Optimal is based on my earlier OPML Browser, but was extensively rewritten to bring its code into closer synchronization with my OPML Renderer plugin for WordPress. This is now done, and Optimal can be installed as a plugin for WordPress.

Optimal was named not out of sheer ego or to imply that it is the best OPML browser, but rather because "optimal" was the only good word I could think of in which I could camel-case OPML (i.e., OPtiMaL). However, the camel-casing is merely a meme, not the proper name.

Dan, a great plugin, thanks. Installed 0.4c on my WP blog, works a treat. (Btw, my blog is running WP 2.5 and the plugin works fine).

One thing I'd like to do but can't figure out how: on initial display, the plugin just shows a single line, the name of the OPML file. You then click on the little icon/arrow to expand the display to show the individual feed names within the OPML file.

I used to have your plugin running on my blog, it was fine. i migrated my service to MediaTemple, and now I get this odd error! The instructions "There are four path values..." however I cannot properly figure out. I've modified those lines to fit what I think should be the proper variables, and then I just get an error in web-browser reporting some break on line 38. can't figure it out. can you be more specific with what those lines, ABSPATH, DOCUMENT_ROOT, url, etc. should be?

love the live loading of xml documents inside the plugin by the way. very smart. thanks!

I have the optimal plugin installed on my self-hosted WP installation and it seems to serve the intended purpose. look on my links page f usage /link-page/

One problem the past few months is that Optimal and / or Simple Pie are generating enormous .core files from feed errors and / discontinued feeds I am aggregating - I get disk warning messages from my host about once every two weeks - the .core files are always found in my wp-content/plugins/optimal folder.

Am sure it would help if I went in and chk'd the error log and cleaned up dead feed links - any other insights?

Hi, Richard. Thanks for the feedback. I have no idea what's dropping core dumps -- Optimal is certainly not set up to do that, and the last time I saw a core dump of any kind was probably 5 years ago playing with a buggy Mandrake Linux beta.

The only things I can suggest are: (1) make sure that neither PHP nor Apache (or whatever web server you're running) is compiled with a "debug" flag enabled, and (2) do check your httpd error logs and see if you can find any errors that coincide with the creation date/time of the core dump file.

While Optimal could certainly use some work to more gracefully fail upon feed errors, I have never seen it crash and cause a core dump.