A quick tip.. while working on an install profile in Drupal I discovered that the menu_link_save() function requires an internal URL, e.g. "node/123" instead of "my-cool-page". Once I tracked down the issue I was able to very easily create lots of menu items as needed, but it wasn't entirely obvious this was needed. I was using install_profile_api to create the menu items and figured it was going to make things easier for the end user, but alas no, so I threw together a quick patch to save others the headache, and wasted hours of development time.
Today at the first annual FLDrupalCamp I presented a talk on searching Drupal, covering some gotchas, tips and how to best set up your site for both internal searching (searching when on your site) and external searching (someone searching via e.g. Google). This was knowledge built over my career as a web developer, but primarily during the past eight months working on SkiNet.com. The beginning of the talk covers some unexpected issues discovered during development of the site and builds from the knowledge I've gained since then. Enjoy.
Being only the third talk I've ever given at a user group meeting, and definitely being one I was most anxious over due to it having ~70 people in attendance (though I was in the smaller room which had maybe 25), I was quite pleased with how it went. There were some minor tidbits I missed, but I do plan on turning it into a more detailed series of articles (time permitting). One thing I was extremely pleased with was that the lead developer of Drupal 6's internal search engine, Doug Green, happened to attend and at the end during the Q&A he gave some further insight into the engine - thanks Doug!
I hope everyone enjoyed it, and if you happened to attend please leave some feedback so I can hope to improve the talk.
Update 6/25/09: I fixed the problem that was stopping this from being viewable, so enjoy.
Anyone who has February 7th (2009) available, and who isn't already going to the excellent Acts_as_Conference, should take a trip to Altamonte Springs for DrupalCamp Florida! This new event promises a day's worth of free presentations on all things Drupal from some of Florida's best consultants and advanced users, including the exceedingly talented Ryan Price. I've proposed a few talks myself, and the unconference-style of the weekend will mean almost anyone with a bit of experience should feel comfortable taking a few minutes to share something with the rest of the group. At the time of writing there are about 50 people signed up, so there's plenty more space available. I strongly recommend anyone interested in content management, or even just PHP, take at least some time out of their day on the 7th to come along for a look-see.
In addition to the presentations on the 7th there's an effort to have a workshop / group help-like setup for the 8th, and hopefully we'll get to put some of our skills to good use helping others and learning more.
Reasons to use Trac:
- It has been around for ages so it's pretty well known.
- It works with Subversion.
- Built-in Wiki.
- The milestones system works fairly well.
Why Trac sucks, IMHO of course:
- It's written in Python, a language I currently don't know nor have a (current) inclination to learn.
- It doesn't do git without a plugin.
- How do I get email notifications when something's changed in the wiki?
- How do I get email notifications when code changes are uploaded?
- Each project you want to manage with it gets its own separate install, which is very klunky. You have to log into each one separately (unless you set up a shared authentication system of some sort in the web server).
- Each project only gets one repository.
- The interface is klunky, e.g. clicking View Tickets brings you to a page where you first have to choose your filter rather than just loading the last one used or a default.
- No task associations so you can't do a parent-child dependency to indicate a completion hierarchy.
- The interface should allow for trag-n-drop changing of priorities.
- It isn't github or unfuddle or Redmine :)
Personally I recommend github for public projects where you don't need task management (I don't like Lighthouse), Unfuddle for closed projects or where you want good task management for your open project, or Redmine if you want full control and to host it all yourself.
Just thought I'd share that.