Sometime last year (or possibly even in 2006), I started thinking about improvements to the function DB, and noticed one major issue: due to the way the data was stored, we had to add an entire new function entry if a function was moved or changed in some way (additional functionality, new parameters, etc.). This meant that the function ID would also change in these situations, making it harder to track changes to functions between SMF versions.
I decided to rewrite the function db to address this problem, and addressed a few other (smaller) issues while I was at it. Due to the changes, I had to manually copy over all the function info from the existing function db to a new one which was being worked on in a non-public area of the site. I got busy and didn't have a lot of time to work on this, so it took a lot longer than I had originally planned, but I am pleased to report that the new version is up.
At first you won't notice many changes, as things should still look the same. However, there have been numerous changes:
- Function ID remains the same no matter what changes are made to a function (except of course if it's renamed)
- SMF version dropdown list only shows versions that the file/function you're viewing exists in
- Ability to switch SMF versions while viewing a file/function without being redirected to the main index
- If documented, $context variables loaded by a function are shown on the function details page (most functions don't have any $context variables documented yet - see Admin() for an example
- Ability to specify an SMF version in the URL to view a function or file for that version of SMF (example: .../index.php?action=view_file;id=x;smf_version=1.1.5)
- Ability to view all versions of a function, so you can see the changes that have been made in the development process (page isn't real pretty at the moment, but I'll work on that as I have time)
- All CSS has been moved to an external stylesheet, allowing your browser to cache it
All existing SMF functions (eg all the ones that were already in the function db) have been updated, so details exist for 2.0 as well. In addition, some functions that were added in 2.0 have already been documented (these are mainly ones that we documented from early alpha versions of 2.0).
What's to come? At this point we will be focusing mainly on documenting new functions from SMF 2.0. My goal is to have as many 2.0 functions documented as possible by the time the final version is released later this year.
I hope these changes make the function db more useful. Let me know if you run into any problems