Drupal Dump

Drupal Snippets, Hacks and more....

495 posts since 2011

Setting Sessions and Cookies

Setting a session in Drupal is easy, everything is set from the Drupal boostrap, all you need to do is to set it and get it. Like

$_SESSION['zip'] = $form_state['values']['zip_code'];
and latter you just get value on some page like
$view_filters['field_zip_range']['value'] = $_SESSION['zip'];

View 3, alter filters programmatically

function custom_views_pre_view(&$view) {
    if ($view->name === 'pricing') {
  $view_filters = $view->display_handler->get_option('filters');
    $view_filters['field_zip_range']['value'] =  $_SESSION['zip_code'];
   
  $overrides = array();
  $overrides['filters'] = $view_filters;
  foreach ($overrides as $option => $definition) {

WSOD or white screen of death and error reporting

Sometimes you will have a WSOD and nothing to show for. One simple solution to get what is a problem is to insert the following lines into the Drupal's index.php, that should set PHP to report all errors.

Converting Form API date field to timestamp

If you are not using a date module and just want to use date field from form api, you will want to insert it into DB, probably as timestamp. So to convert that value to timestamp you need to use some precoding for that. In this example we also use a simple textfield to enter time value and add it to timestamp. Also take a note we are using timezone value.

Database API, several ways to retrieve data from query



$uid = 1;
$result = db_query('SELECT n.nid, n.title, n.created
FROM {node} n WHERE n.uid = :uid', array(':uid' => $uid));

Fetch next row as a stdClass object.
$record = $result->fetchObject(); 

Fetch next row as an associative array.
$record = $result->fetchAssoc();

Curl on Localhost and WAMP on x64

I was going nuts over how to install CURL on 64 bit windows. I need it for some module and just enabling it from Wamp panel didn't work. So I searched for solutions and there are quite a few combos and solutions offered online but the only thing that worked for me and what was needed is