More onion drupal development blog
A few weeks ago we've released our first public open-source version of Campaignion. It's a tool that helps non-profits and NGOs with online campaigning, fundraising and digital marketing. In this blopgost we'll explain some of the technical background and how it works.
As the title suggests we have Drupal hosted behind a reverse proxy. Usually this doesn't matter a lot, but there are few things like IP-blocking or oauth that need to know some data about original request. Namely that's: The client-IP, whether the request was issued via HTTPS and the server port. Here is how to achieve that.
Campaignion is our Drupal distribution for online action, campaigning and fundraising. This list shows all released parts of the distribution until full release.
Here at more onion we're hosting most of our client's sites ourselves. This means we are hosting lots of sites which share most of their modules (ie. our standard Drupal installation). Reproducible setups, fast builds, sharing-module code among many sites -- This is where our new build-tool called dbuild.py comes in.
It started out as yet another wrapper around
drush site-installbut became a fully fledged download-extract-patch-symlink tool in the end.
There are times when you want to display parts of an entity to the user, pariticularily a specific list of fields that are attached (bundled) to that entity. Core doesn't offer functionality for this so I'll show you a simple function for extracting the form array structure for a selectable list of fields of an entity.