Week 1

Once again, I’ve been selected to take part in the Google Summer of Code. This year my aim is to complete the work on the Trac Ticket #6015. In short: Allow plugin installations directly from the WordPress administration interface

As usual, I’ve allready started working on the coding previous to this week, and as such, do have some code to show for my efforts, However, My personal aim is to get an API off the ground for the WordPress Plugin Respositories before releasing any code which could utilise it.

Work so far:

  • API: So far i’ve drafted up a first scratch at designing a flexible API which returns the details needed for the search, as well as details for other projects which wish to access the data. It’d be run over a serialized post request the same as the current API’s, My iniial thoughts of objects can be found here: http://dd32.id.au/files/soc2008/pi_api_test2.html i’d appreciate input from others on that, What is missing, Whats needed, etc.
  • UI: I’ve not released any code for the UI yet, I’d prefer to get the API implemented and returning useable information ASAP before any UI feedback comes in, This is initially to allow the UI to have access to the data that it needs. (RSS can only provide limited details). A Quick mockup of the UI which relies on RSS details is shown below:

So, List of items achieved this week:

  • API Design
  • Basic UI design
  • Rather large chunk of work on the WP_Filesystem abstraction to fit in with recent changed to trunk
  • Looked at a change in UI for the plugins table to fit in better with being able to install a large number of plugins, A Delete/Uninstall option might be needed on the plugins page, As well as seperating it into 2 tables, “Currently Active plugins” and “Available Plugins”. 2 tables does not make much sense in the 2.5 world with people usually only having plugins installed which they need, But with the ability to search and install plugins, a larger number of people may end up with a list of 20 or so plugins which they have available, yet do not use, which could fill the active plugins table up..

And finally:

If you have any input on anything mentioned here within, Or anything mentioned in this Google Groups post, please do leave a comment with your thoughts :)