Altering Individual Radio or Checkbox Items in Drupal 7 via FAPI

This guide will focus on the radios type, but it can be use for checkboxes in the exact same way.

TL;DR: Put an #after_build on form checkboxes or radios (or on the form element itself). Within the after_build, the items will be normal radio or checkbox renderable elements.

When using FAPI with #type => 'radios', it becomes quickly obvious that defining or altering the individual radio items is difficult, as all options go into the nested #options property:

Initial Server Setup

Now that we've got our server instance up and running with CentOS 6.5 (RHEL 6), there's a few things to check on before proceeding.

Configure & Update

As a first step, after logging in, lets update the server packages with $ yum update -y. Next, change your root password with $ passwd.

There are lots of other things you should be doing at this point which will be covered in the Security section of this series. This includes things like:

Leveraging Drush Aliases in Your Drupal Deployment Workflow

Along with git, drush ― [Dru]pal [Sh]ell ― aliases are an extremely useful, and powerful tool when dealing with a drupal dev-stage-production workflow.

The idea is simple: create an alias for your different environments, allowing you to perform drush tasks on remote servers. Included is additional functionality such as syncing files, databases, or using any other drush command - even the usual drush cc all et al.

Choosing a Host

Shared? VPS? Dedicated? Colocation? Cloud?

The first step in our PWS is an important one: choosing the type of hosting and a provider. There is no one correct answer, and everyone has their own opinions & requirements.

To start, the idea of shared hosting is nice. Set it up, forget about it. No sysadmin / devops. Sure, Pantheon is geared towards Drupal, and it's a great service. But not a lot of clients are willing to pay $400+/month for hosting one site. Finally, later in this series we'll be discussing a lot of additional packages not usable with shared hosting.

Production Webserver Series

This series will aim to become a reference to creating an ideal Production Webserver. It is geared towards Drupal configurations, but can be used for any server whose main function is to serve webpages.

Creating a performant, secure, scalable, redundant, production server environment can be (is) a complicated task. Having managed dozens of servers for many years, by no means is this the only way to go. But if you're administering your own server with a lot of clients, this is what works for us.

Defining SPF Records for Google Apps and a Custom Domain

Google advises that when using Apps for e-mail your domain should have a SPF/TXT record with the value v=spf1 ~all.

An issue that may arise is e-mail providers marking the message as spam if you are sending e-mail from your web server as well as google's servers. For example, user account registration validation, contact form submissions, and anything that may come from an address such as on a website.