User login

done

Figuring out what Django permission names are and what permissions a user has

You can see the permissions a particular user has, in the 'machine-readable' form Django uses, quite easily through the Django shell. For a user with the username 'david', for example:

Set a separate browser window page title from HTML page title (Drupal 7)

This code shows how to set the browser bar page title the Page Title module way, without that module. (This was motivated simply because we were already gathering the info for another purpose in hook_node_view_alter(); there's no reason not to use Page Title!)

Setting breadcrumbs to exactly what you want

In Drupal it is quite easy to set breadcrumbs with the function drupal_set_breadcrumb(), which takes an array of links (as you would make with the l() function). It's a bit of a blunt instrument but it works (and wins out over hook_menu_breadcrumb_alter()).

Using Redshift with Mint on Debian

Redshift is a program that gives your computer screen a dimmer brightness, and indeed a more red hue, at night.

It fails silently on most non-Ubuntu Debian systems. Well, it seems like a silent fail or crash if you don't run the command in the terminal. If you do run the command gtk-redshift in the terminal, the output is perfectly comprehensible:

Initialization of gnome-clock failed.
Trying next provider...
Latitude and longitude must be set.

Set date and time on virtual machine independent of host machine

Our setup is a Debian guest with VirtualBox on an Ubuntu host, but the two basic steps look like they are the same on any combination.

Shut down all virtual machines and close VirtualBox first.

To the main VirtualBox configuration file — ~/.VirtualBox/VirtualBox.xml — and to the specific virtual machine's configuration file — something like ~/VirtualBox\ VMs/somename_default_1415392315537_7406/somename_default_1415392315537_7406.vbox — add the following, identical line into the existing <ExtraData> sections:

How to programmatically rename a content type (change node type machine name)

Set old_type if you want to programmatically update a node type / machine name.

(This is not about changing the type of a node, but changing what type is called on the machine-info level.)

$type->old_type is what node_type_save() checks for when updating a node type, if it's not set it will create a new node type even if orig_type is set to an existing bundle. So really all you need to do right before saving a modified content type is set the old_type to the orig_type, such as:

Configure Memcache on a Drupal site

This has to be done for each site. This is after installing Memcache on your server.

Memcache module

Then, in settings.php, add:

MySQL Query to Get Quick Overview of Nodes by Content Type

mysql> SELECT nt.name, nt.type, COUNT(n.nid) FROM node_type nt LEFT JOIN node n ON nt.type = n.type GROUP BY (nt.type);

Exporting views to files to be managed by version control: Drupal 7

The trick to somewhat Drupal 8-esque configuration management in Drupal 7, when it comes to Views, is to make your view defined in the user interface to be defined by a module instead. This is done with hook_views_default_views().

From Michelle Lauer's Views chapter in the Definitive Guide to Drupal 7:

Syndicate content