Goals for Scriblio 2.9

I’d like to make it easier to start a catalog from scratch, rather than ingesting records from an ILS or other system via a connector. More and more of the projects I’m working on aren’t connected to ILSs and demand original cataloging, and a number of the questions on the mail list seem to be related to that type of use as well.

I’d also like to remove the library-specific and ILS-connected assumptions the plugin now makes about the data in the catalog. I started work on this a while ago with the creation of the Marcish schema. The next step is to put the Marcish schema in its own plugin and remove the code that registers the taxonomies it uses. That will add that will encourage other uses, like the Community Information Database schema, and make maintenance of the code much easier (though it will also require that library users install the Marcish schema plugin when upgrading to 2.9).

Along the above lines, the plugin needs to make some of its behavior optional. The code could easily support browsing of blog posts (I use it that way here, actually), but Scrib’s assumption that catalog records belong in a named category and are hidden from the front page of the site conflicts with that. I’ll have to think through the different behaviors related to that and the options necessary for them.

Another admin UI change: the “default author for catalog records” setting doesn’t belong there. It’s used by the connector plugins, so I’ll move it there and change it so that it works like WordPress imports where you can choose an author or create a new one.

The widgets need to be changed to use the WP 2.8 widget API. Along the way, I need to improve the admin UI for them, making the Facet widget use check boxes for facet taxonomy selection instead of a text entry field. Feature requests related to widgets:

  • Allow arbitrary sorting of the facet results (see Club Level here to see why).
  • Make it an option to see all the values of a taxonomy, not just those that are available in the found set. Selecting a facet value that doesn’t exist in the found set will necessarily have to reset the search. That could be weird.
  • Use a checkbox metaphor: clicking a selected facet will deselect it and rerun the search.

I’d also like to take better advantage of improvements to WP’s taxonomy system since 2.7. Specifically, the generation of nice URLs like site.org/taxonomy_name/taxonomy_value (right now, Scrib writes those URLs as site.org/browse/?taxonomy_name=taxonomy_value). The new URLs are much prettier, but it will take some work to figure out all the behaviors. Example: you’re browsing books at site.org/format/books, and wish to narrow the scope to non-fiction books. What URL should that be?

I’ve also found a bug in the way Scrib adds search filters. If you then try run a new post loop (even if you create a new WP_Query object), the filters will break the query you’re likely trying to execute. I found this out while working on an update to the Colby Sawyer archives site, and found a smart solution in some code from Andy Skelton (see his fulltext_posts_orderby_once()).