Library Templates
Normally, if you want to write a custom template for a node type, you put a file named node--foo.tpl.php in the theme you wish to use.
Sometimes, you want to write a template for a node type that is independent of the theme chosen. This would be the case, for example, if there are multiple custom fields that need carefully themed output.
In this case, it is a bad idea to put the same node-foo.tpl.php file into the folder of each theme you might use. Doing so is (a) too much work, (b) hard to maintain if you change the template, and (c) creates code duplication where the same code occurs in multiple files on the same site.
This very simple module lets you put all of these templates into /sites/all/libraries/templates instead.
Rollbar
This module provides Drupal integration with Rollbar . Rollbar provides a central point for managing code errors and warnings on your site. Users can easlily track when errors begin to occur and how often.
Combined with client infomation. Like, browser, page plugins etc it can be very powerful at aiding development.
Sign up for an account at http://www.rollbar.com.
Features
This module currently supports
- Configurable PHP library path.
- Configurable access keys.
- Configurable environment (production, staging development etc)
- PHP Exception handler.
- PHP Error handler.
- Watchdog error handler
- Ignore PHP watchdog errors. (Don't send these to Rollbar)
- Ability to turn off native PHP handlers and send all watchdog errors
- JavaScript integration (send JS errors/exceptions to Rollbar.com)
Installation instructions
- Download and enable the module.
- Download rollbar.php from https://github.com/rollbar/rollbar-php
- Place the downloaded file in your installation: sites/all/libraries/rollbar/rollbar.php
Services Guzzle
Module adds a tab in Services to provide service description for Guzzle library.
Also module provides example of the using this description along with Guzzle module
Documentation
http://guzzlephp.org/guide/service/service_descriptions.html
http://guzzlephp.org/tour/building_services.html
Originally idea started at http://drupal.org/node/1798606
RSVP for Drupal 7
RSVP lets users invite people to attend an event. Users create an 'RSVP' from an event, send an invitation email to a list of people and then track who has looked at the invitation and their responses. Invitees can view and reply without having user accounts.
RSVP creators can be setup the RSVP to hide other attendees, allow attendees to send email messages to the group, or invite more attendees.
forWhereiAm
Quick Overview
This module creates a widget for displaying all the latest announcements made on the forWhereiAm platform by your organisation (and any of its associated branches) for a given user's location. This module interacts with the forWhereiAm API and implements the client-side flow.
The forWhereiAm platform allows any organisation to target their online and mobile communications from a country wide region, right down to a single postcode. The messages are only seen by users who are in the regions explicitly targeted. Currently forWhereiAm only supports the UK market.
This module adds a jQuery plugin to your site which performs client-side flow requests to forWhereiAm announcements API. It fetches announcements for a given user's location, and displays them in a list form, ordered by the newest announcement at the top. This module can also communicate with the forWhereiAm API to fetch the full details for a given announcement, or optionally rate an announcement where rating of an announcement has been enabled.
This module uses Google Maps v3 API for rendering maps, if enabled.
This module uses AddThis for displaying social sharing buttons for an announcement, if enabled.
Further reading
Read moreFiler
Module to store large amounts of data in files (csv, json, ...)
Usage example:
<?php
$content_types = node_type_get_types();
$nids = array_keys(db_select('node', 'n')
->fields('n', array('nid'))
->condition('n.type', $content_type_name)
->condition('n.status', 1)
->execute()
->fetchAllAssoc('nid'));
// Create a file and write to it on cron, appending lines:
$f = new Filer('nodes');
$opts = array('items' => $nids, 'append' => TRUE, 'read' => FALSE);
$f->add('public://nodes-' . time() . '.txt', $opts);
function hook_filer_nodes_cron($data, $content, $fh, $status) {
$node = node_load($data);
fputcsv($fh, node_to_array($node));
}
// Create a file and write to it on cron, overwriting it on each call and passing old contents to our hook_filer_FILER_NAME_cron():
$f = new Filer('wickedJsonNodes');
$opts = array('items' => $nids, 'append' => FALSE, 'read' => TRUE);
$f->add('public://json/nodes.json', $opts);
// Create a non queue task:
$frid = $f->add('public://json/nodes_manual.json', null, FALSE);
foreach($nids as $nid) {
$f->run($frid, $nid, FALSE, TRUE);
}
function hook_filer_wickedJsonNodes_cron($nid, $content, $fh, $status) {
$stored = json_decode($content, TRUE);
$node = node_load($nid);
$stored[$nid] = node_to_array($node);
return json_encode($stored);
}

