Menus, the Merge, and a Patch Sprint!

A Report from the 3.0 Development Cycle

Menus

There’s been a flurry of blog posts about the integration of the WooThemes Custom Navigation into WordPress core, so I thought it was time we posted the official word. For 3.0, the main user-facing feature we wanted to include was a better site menu management system. Currently, dealing with menus is clunky, using Page IDs or in some cases categories, if a theme uses categories instead of pages for the menu. We wanted a menu system that had the drag and drop ease of the widget management screen, could combine Pages, Categories, and Links, was able to be re-ordered, allowed submenus, and enabled hiding specific Pages or Categories from the menu altogether. We were in the process of building this when WooThemes introduced their Custom Navigation system. Watching their introductory video, it seemed that their system did pretty much everything we wanted to do for core, so we reached out to them about contributing to core.

As you’ve probably heard, it worked out, and the first patch has been submitted. It does require some code modification, which is happening now. The decision to incorporate the Woo menus happened right before our planned feature freeze for the 3.0 development cycle, so we pushed our freeze date back by two weeks to allow the addition. We’re now targeting the 3.0 release for early May, and we think it will be worth the extra two-week wait.

I’m personally really happy that it worked out this way, because I think it will show commercial theme and plugin authors that contributing to core is a win-win proposition. More people can contribute to and improve the basic functional code now, while WooThemes can continue to innovate on top of it for their customers. They get massive bragging rights (which I have no doubt will lead to even more customers), core gets a nice menu system without having to reinvent the wheel, and WordPress users all over the world will benefit. I’m hoping other plugin and theme developers will take a cue from Woo and look at core as a place for collaboration, rather than competition.

The Merge

It was announced at WordCamp San Francisco last year that WordPress and WordPress MU would be merging codebases. This has now happened in 3.0-alpha, and we’re working on smashing bugs and tidying up a few screens. If you’re currently using a single install of WordPress, when you upgrade to 3.0 you won’t see any of the extra screens associated with running a network of sites. If you’re currently running MU, when you upgrade you’ll notice a few labels changing, but upgrading should be as painless as usual. If you’re going to set up a new WordPress installation, you’ll be asked as part of the setup if you want one site or multiple sites, so that’s pretty simple. If you want to turn your single install into one that supports multiple sites, we’ll have a tool for you to use to do that, too. So if you’ve been worried about the merge, have a cup of chamomile tea and relax; it will all be fine. :)

Patch Sprint!

Okay, so where are we now? The new feature freeze date is on Monday, March 1, 2010. That means that after that date, no more enhancements or features will be added, and we’ll switch gears to focus solely on crushing bugs and fixing up the features that have already made it in. That means we only have a week to try and finish up the many Trac tickets on the 3.0 milestone that either need a patch or have a patch that needs testing. You can help! From now until noon eastern time on March 1 (that’s 17:00 UTC on March 1), head on over to Trac and pitch in. If you hit a wall, hop into the core development channel at #wordpress-dev on irc.freenode.net and hopefully one of the friendly core contributors can give you a push.

Visit, UniqueVisit Counter

Package:
Summary:
Keep track of site visitors in a MySQL database
Groups:
Author:
Description:
This class can be used to keep track of site visitors in a MySQL database.

It inserts records to a a MySQL table with the IP address and time of visit of the current user.

The class may also query the access table to count the number of visits, unique visitors, page views and last user access.


K-Stopwatch

Package:
Summary:
Measure the time it takes to execute PHP scripts
Groups:
Author:
Description:
This class can be used to measure the time it takes to execute PHP scripts.

It can start measuring the time a script section takes to execute assigning it a name.

The class then takes the time the section ended to execute. It also supports nested script sections.


xTwitter

Package:
Summary:
Retrieve information and update Twitter statuses
Groups:
Author:
Description:
This class can be used to retrieve information and update statuses and the account of a Twitter user.

It can send HTTP requests to the Twitter API Web server on behalf of a given user and performs several types of operations.

Currently it can get the user statuses aggregated in several ways, update or delete statuses, get, send and delete direct messages, add, delete and verify friends, etc..


String Class

Package:
Summary:
Manipulate text strings
Groups:
Author:
Description:
This class can be used to manipulate text strings.

It performs several types of instructions to manipulate text strings like: comparing values, get the length, get parts of the string, concatenate, search text, map the case of letters, convert to number values, etc..


pserver

Package:
Summary:
Handle TCP socket server connections
Groups:
Author:
Description:
This class can be used to handle TCP socket server connections.

It can listen to connection requests to a given IP address and port.

The class handles connection events like connection requests, reading the request data and send the response data, by calling functions of the class for custom processing.

Sub-classes may extend the class to implement special handling of connection events for different types of server applications. Several examples are provided to demonstrate this ability.


Powered by Gewgley