Loading Facebook embeds via AJAX in a CTools modal dialog

oEmbed is a simple and popular protocol for embedding external media in web pages. It supports many types of content, including images, videos, and even "rich" content (i.e., HTML snippets). Unfortunately, the current Facebook embed mechanism does not work so well when the embed code is loaded dynamically on a page, e.g.

Mediatheque, a Drupal media organizer

Over the years, I've accumulated a large collection of e-books and digital music albums, not to mention family pictures. Information overload is not a philosophical point of view, it's a real problem that forces me to devote time, effort and money to maintain that collection.

That's probably why so many media organizers exist. Because I believe that all applications should be delivered from the Web, and because no ready-made Web media organizer struck me as fulfilling my needs, I started to write my own using Drupal 6, dubbed Mediatheque.

Node translations with Panels and CTools

I wanted to create a node view containing both the original node and its translation, sort of like this neat Meedan.net page.

Keeping views under control

It's no secret that version control on Drupal is hard. Specifically, the problem of iteratively building a site on a staging server, then moving it to a running production system has been the source of countless wasted hours, lost data, pulled hair, blog posts, and modules promising a solution. On Twitter, some would say #drupal #migration #fail.

This post is not the answer to this problem. I just want to show actual code that helps with a small part of it, namely keeping views under version control.

Modules I would love to write (given enough resources etc.)

If you are ready to sponsor the creation of these modules, or want to help with their development, please contact me! And if they exist already, do let me know :-)

  • An infinite scroll Views 3.x pager plugin. The auto-scroller would refresh the view page with the contents of the next page, as returned by the pager.

  • Exporters (based on CTools Exportables) for blocks, menus, taxonomies and other core objects.

  • Single-field editor popups (based on Popups API).

Syndicate content