EditFlow and CPT management through a workflow

EditFlow [http://editflow.org/] is a great plugin if you only have one content type and need to pass the content across several people. Unfortunately for me it does not support the creation of different workflows for different content types. That is why I found it a bit limiting. Interestingly, the guys developing PikList [http://wordpress.org/plugins/piklist/] and PODs [http://wordpress.org/plugins/pods/] approached the problem by suppressing the existing publishing meta-box and supplying their own. It seems that each framework (Piklist, PODs, and even ACF - Advanced Custom Fields) might have its benefits. But they are all vying for the same market place - the developer's time and the plugin folder on your WordPress install. I am not sure which I like most right now, ACF has it on admin UI/UX but PODs is really powerful. If WordPRess core added some management features for the existing capability in its APIs then we might not have this marketplace...

Plugin Abandonment

In the open source development world there is a lot of emphases on developing software to solve specific problems, there is much less emphasis on solving those problems well. That is, solving those problems so the most people are serviced, or so that users of software have the flexibility they need (there is also often a lack of commitment to User Experience Design but this is a shameless side plug). And there is often a real lack of collaboration around competing solutions. This is evident in the software which is created for use by linguists (usually also coded by linguists for solving the linguists’ challenges) but this is also evidenced in a different sphere of programing in the WordPress eco-system. In the WordPress eco-system there is a plethora of plugins which are abandoned. WordPress is GPL’d and so these plugins are GPL’d too. However, the repository – the human visual interface to the repository – allows for coders to grab code, and modify it for their ends, but it doesn’t allow for merging once the plugin has been “updated”. (It is true that not all changes are “updates”, sometimes people need one-off solutions.) But the net result is that early 1/3rd of all plugins for wordpress are abandoned. Their developer has been paid and has now ended their relationship with the commissioning client, or the WordPress eco-system no-longer requires the service options provided by that plugin. Matt Jones created an info-graphic to illustrate this point and to bring awareness to the problem. My comments below are my reply to him, with some minor corrections .
Continue reading

Finding your inner Zachman

The last couple of weeks I have been working on applying the Zachman's framework for enterprise architecture to two projects. I have been struggling through the first row and then skipped around a bit. I think I have found the part of the project (any project) I am most passionate about.... Working with Human Interface Architecture and explaining it as a designer to the builder of the Presentation Architecture. In my mind this level needs to be closely related to the Business Process Model and to the List of Business Goals/Strategies. [1] John Zachman. 2008. Diagram of: A framework for enterprise architecture. http://zachmaninternational.com/2/Zachman_Framework.asp. [Accessed: 2 December 2011] [PDF] [Link]

Where do I see myself most helpful in the large project...


1 John Zachman. 2008. Diagram of: A framework for enterprise architecture. http://zachmaninternational.com/2/Zachman_Framework.asp. [Accessed: 2 December 2011] [PDF] [Link]

Working on a Dynamic Left Menu Bar

It seems to be that the logical place to have a context based and role based menu would be on the left side. That being the assumption, the question is how to go about it, what does it contain, why does it need to change, when should it change.

I have been looking at several widgets and custom field plugins. Some of these deserve a deeper look. We might even should take a deeper look at how we are implementing custom fields and our plugin so that we have an abstraction layer.

Layering for custom fields in plugin

Here are some plugin in options which seemed to be able to handle some of this complexity.

There are really three places that custom field need to be used: so this post is not just about a dynamic left side bar. It is about a dynamic left sidebar that is run off of values in custom fields in the main post. So this post is talking about approaching custom fields with the best strategy.

  • Just Custom Fields for WordPress plugin: This plugin adds custom fields for standard and custom post types in WordPress. After installation you will see simple settings page which is self-explanatory to use.

    I found two Posts about this plugin to be really helpful: http://justcoded.com/just-labs/just-custom-fields-for-wordpress-plugin, and http://justcoded.com/implementation/wordpress-3-vs-drupal-cck/.

  • One of the ideas for the left side bar is to have a listing of related content. Related content could be all the files which belong in a single audio package, or all the digital files belonging to a physical item.
    This is where Related Widgets Plugin For WordPress comes in. The Related Widgets plugin for WordPress introduces multi-use widgets that allow you to list related posts or pages. To use the plugin, browse Appearance / Widgets, insert a Related Widget where you want it to be, and configure it as appropriate. You can optionally filter the results by category or section.
  • List Related Attachments: List Related Attachments is a sidebar widget that will display a list of filtered attachments related to the current post. This might be useful in one of two ways: listing associated content, depending on how we implement it. Or listing the photos on the right-hand sidebar.
  • Custom Field Template: This plugin adds the default custom fields on the Write Post/Page.
  • Custom Field List Widget: This plugin creates sidebar widgets with lists of the values of custom fields. The listed values can be (hyper-)linked in different ways. One possibility is to create a list of all values of a custom field, which will be groupped by their post (or page) and (hyper-)linked automatically to this post (or page). Another possibility is that you can create a list of all unique values of a custom field and specify links as you like (or not).
  • Get Custom Field Values:
    Get Custom Field Values allows the admin to use widgets, shortcodes, and/or template tags to easily retrieve and display custom field values for posts or pages.
  • Advanced Custom Fields:
    Advanced Custom Fields is the perfect solution for any wordpress website which needs more flexible data like other Content Management Systems.
  • Easy Custom Fields:This is a set of extendable classes to allow easy handling of custom post fields. https://wordpress.org/extend/plugins/easy-custom-fields/
  • Advanced Custom Field Widget: The Advanced Custom Field Widget is an extension of the Custom Field Widget by Scott Wallick, and displays values of custom field keys, allowing post- and page-specific meta sidebar content.
  • Custom Post Template: Provides a drop-down to select different templates for posts from the post edit screen. The templates replace single.php for the specified post.https://wordpress.org/extend/plugins/custom-post-template/

WordPress Custom Fields, Part I: The Basics : http://perishablepress.com/press/2008/12/17/wordpress-custom-fields-tutorial/

Custom Post Type UI: Admin UI for creating custom post types and custom taxonomies in WordPress.

Admin Panel of the Plugin

Needs to be able to:

  1. Define the Metadata Values
    • Do they have controlled vocabularies?
    • What kind of input will they use?
  2. Define the work Stages
    • Including sub-work stages
  3. What are the Metadata Values in each Stage
  4. What are the help texts for each Metadata question
  5. What is the Part shown for the Keys?
  6. Does the Plugin create a special Browse Page?

Wire Frame of plugin in admin panel

Interoperability of online dictionary data: 
 A test case using WordPress as a CMS

Linked data is an effort to enhance applications and thereby lives with structured knowledge. This structure at its core is developed by human interaction. The challenge to consumers of linked data is to convince holders of unstructured data to structure it into actionable, manipulatable knowledge. Continue reading