Saturday, 9. February 2008
The bad news is that after installing it and running the update I could not post a new blog entry with MarsEdit 2. When I tried to post a test message I received this error dialog:
The problem is related to the “Blog ID” that is configured in MarsEdit's blog settings and the way Drupal handles that blog ID:
When MarsEdit auto-detects the blog ID it gets a value of “1”. For Drupal 6.0 RC3 and prior the
blogapi.module was mapping the blog ID to a content type. A blog ID of “1” mapped to a content type of “blog”. Starting with RC4 that mapping was removed. RC4 treats the blog ID and the content type as synonomous. This was causing the function
_blogapi_validate_blogid to fail because it was trying to validate that the current user had permissions to publish a content type of “1” but the content type should actually be “blog” instead.
The fix for this is to change the blog ID in MarsEdit to “blog” as shown here:
Changing the blog ID to “blog” allows posting and does not appear to have any negative side affects.
Update: Apparently the change was intentional in Drupal and the issue persists in versions 6.0 and 6.1. All of the functions in blogapi.module that need a blog ID are expecting a blog ID of “blog” now. Daniel Jalkut of Red Sweater Software pointed out the the incorrect blog ID is being returned by Drupal's RSD function. This is causing any blogging software that uses RSD for auto-discovery to get the wrong blog ID which in turn causes the problems described earlier in this post. The blog ID is hardcoded to “1” in blogapi.modules's RSD function. I submitted a patch to change the blog ID returned by the RSD function in blogapi.module to “blog” so that RSD auto-discovery will work correctly with MarsEdit and hopefully other blogging clients as well. You can also view and download the patch here.