Index: bookingsapi.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/bookingsapi/bookingsapi.module,v
retrieving revision 1.13
diff -u -p -r1.13 bookingsapi.module
--- bookingsapi.module	1 Oct 2008 02:52:18 -0000	1.13
+++ bookingsapi.module	31 Mar 2009 17:34:28 -0000
@@ -1,11 +1,11 @@
 <?php
-// $Id: bookingsapi.module,v 1.13 2008/10/01 02:52:18 carson Exp $
+// $Id: bookingsapi.module,v 1.14 2009/03/30 22:31:04 tirsales Exp $
 /**
  * @file
  * Bookings API
  */
 
-define('BOOKINGSAPI_BOOKING',1);
+define('BOOKINGSAPI_BOOKING', 1);
 define('BOOKINGSAPI_UNA_S', 2);
 define('BOOKINGSAPI_UNA_F', 3);
 // in practice, there is no distinction between AVA_R and AVA_F
@@ -41,7 +41,8 @@ function bookingsapi_record_types($code 
   if (!isset($code)) return $types;
   if (is_numeric($code)) {
     return (int) $code;
-  } else {
+  } 
+  else {
     $types = array(
       'booking' => BOOKINGSAPI_BOOKING,
       'una_s' => BOOKINGSAPI_UNA_S,
@@ -73,7 +74,8 @@ function bookingsapi_record_status($code
   if (!isset($code)) return $types;
   if (is_numeric($code)) {
     return (int) $code;
-  } else {
+  } 
+  else {
     $types = array(
       'pending' => 1,
       'finalized' => 2,
@@ -98,9 +100,9 @@ function bookingsapi_record_status($code
 function bookingsapi_record_status_change($record, $status_code) {
   // check for record existence first.
   $record = bookingsapi_record_load($record['record_id']);
-  if($record) {
+  if ($record) {
     // call hook
-    $config = null;
+    $config = NULL;
     bookingsapi_extend('bookingsapi_record_status', 'change', $record, $config);
 
     // TODO: combine 2 queries into one.
@@ -134,7 +136,7 @@ function bookingsapi_elements() {
  * @param int $limit
  */
 function bookingsapi_timeframe_survey($select = '*', $intervals, $where = '', $after_where = '', $limit = 0) {
-  if(!empty($where)) $where .= ' AND';
+  if (!empty($where)) $where .= ' AND';
   /* get records that fulfill the $where and:
      - start or end within the given intervals, OR
      - encompass the start or end of the given intervals
@@ -142,7 +144,7 @@ function bookingsapi_timeframe_survey($s
   $using_mysql_intervals = (boolean) stripos($intervals[0][1], 'INTERVAL');
   $interval_sql = '';
   foreach ($intervals as $i) {
-    $i[1] = $using_mysql_intervals ? $i[1] : "'".$i[1]."'";
+    $i[1] = $using_mysql_intervals ? $i[1] : "'{$i[1]}'";
     $interval_sql .= "({bookings_schedules}.start BETWEEN '{$i[0]}' AND {$i[1]} OR {bookings_schedules}.end BETWEEN '{$i[0]}' AND {$i[1]}) OR
            ('{$i[0]}' BETWEEN {bookings_schedules}.start AND {bookings_schedules}.end OR {$i[1]} BETWEEN {bookings_schedules}.start AND {bookings_schedules}.end) OR ";
   }
@@ -150,9 +152,13 @@ function bookingsapi_timeframe_survey($s
   $sql = "SELECT SQL_NO_CACHE $select FROM {bookings_schedules}
           WHERE $where
           ( $interval_sql ) $after_where";
-  if($limit > 0) $sql .= ' LIMIT ' . $limit;
+  if ($limit > 0) {
+      $sql .= " LIMIT $limit";
+  }
   $hook = bookingsapi_extend('bookingsapi_timeframe', 'survey', $sql, $select);
-  if(!empty($hook['sql']) && $select != '1') $sql = $hook['sql'];
+  if (!empty($hook['sql']) && $select != '1') {
+      $sql = $hook['sql'];
+  }
   $q = db_query($sql);
   $survey = array();
   while ($row = db_fetch_array($q)) {
@@ -171,7 +177,7 @@ function bookingsapi_rrule_exdates($rrul
   if (array_key_exists(1, $split)) {
     $split = str_replace('EXDATE:', '', $split[1]);
     $split = explode(',', $split);
-    foreach($split as &$date) {
+    foreach ($split as &$date) {
       $date = date_convert($date, DATE_ICAL, DATE_DATETIME);
       $date = substr($date, 0, 10);
     }
@@ -193,22 +199,23 @@ function bookingsapi_rrule_exdates($rrul
  *  if FALSE, the end DATETIME of each interval will be calculated using PHP
  *  if TRUE, the end of each interval will be in a format to instruct MySQL to calculate
  */
-function bookingsapi_interval_build($instance_dates, $start, $end, $use_mysql_interval = false) {
+function bookingsapi_interval_build($instance_dates, $start, $end, $use_mysql_interval = FALSE) {
   $intervals = array();
   $start_time = substr($start, 11);
   // remove 00:00:00 from instance dates if necessary
-  if(strlen($instance_dates[0]) > 10) {
-    foreach($instance_dates as &$date) {
+  if (strlen($instance_dates[0]) > 10) {
+    foreach ($instance_dates as &$date) {
       $date = substr($date, 0, 10);
     }
   }
   $duration = date_convert($end, DATE_DATETIME, DATE_UNIX) - date_convert($start, DATE_DATETIME, DATE_UNIX);
-  foreach($instance_dates as $date) {
+  foreach ($instance_dates as $date) {
     $i = array();
-    $i[0] = $date . ' ' . $start_time;
+    $i[0] = "$date $start_time";
     if ($use_mysql_interval) {
       $i[1] = "'{$i[0]}' + INTERVAL $duration SECOND";
-    } else {
+    } 
+    else {
       $i[1] = date_convert(date_convert($i[0], DATE_DATETIME, DATE_UNIX) + $duration, DATE_UNIX, DATE_DATETIME);
     }
     $intervals[] = $i;
@@ -226,10 +233,11 @@ function bookingsapi_interval_build($ins
  *  All recurrences formatted as DATETIMEs
  */
 function bookingsapi_parse_rrule(&$record, &$exceptions, &$intervals) {
-  if(empty($record['rrule']) || strpos($record['rrule'],'FREQ=NONE')) {
+  if (empty($record['rrule']) || strpos($record['rrule'], 'FREQ=NONE')) {
     $record['rrule'] = '';
     $intervals = array( array($record['start'], $record['end']) );
-  } else {
+  } 
+  else {
     $exceptions = bookingsapi_rrule_exdates($record['rrule']);
     $intervals = date_repeat_calc($record['rrule'], $record['start'], $record['rrule_until'], $exceptions);
     $intervals = bookingsapi_interval_build($intervals, $record['start'], $record['end']);
@@ -249,7 +257,7 @@ function bookingsapi_parse_rrule(&$recor
  *  if $select is not the default value, an array of conflicts is returned
  *  if $select is the default value, TRUE if conflicts exist, FALSE otherwise
  */
-function bookingsapi_conflict_check($record, $select = '1', $limit = 1, $include_potential_conflicts = false) {
+function bookingsapi_conflict_check($record, $select = '1', $limit = 1, $include_potential_conflicts = FALSE) {
   // process RRULE and create the necessary interval
   bookingsapi_parse_rrule($record, $exceptions, $intervals);
 
@@ -260,20 +268,23 @@ function bookingsapi_conflict_check($rec
   $resources = $record['resource_id'];
   if ($res['parent']>0) {
     // if there is a parent resource, its unavailability and bookings apply too.
-    $resources .= ','.$res['parent'];
+    $resources .= ','. $res['parent'];
   }
 
   // if the given record is already saved (has a record_id) then ignore self when checking for conflicts.
-  $exclude_self = isset($record['record_id']) ? 'AND {bookings_schedules}.record_id!='.$record['record_id'] : '';
+  $exclude_self = '';
+  if (isset($record['record_id'])) {
+    $exclude_self = "AND {bookings_schedules}.record_id!={$record['record_id']}";
+  }
 
   // (un)availabilities always have a status of 'finalized'.
   // rigid unavailabilities and finalized bookings are always conflicts.
-  $types = BOOKINGSAPI_UNA_S . ',' . BOOKINGSAPI_BOOKING;
+  $types = BOOKINGSAPI_UNA_S .','. BOOKINGSAPI_BOOKING;
   $statuses = BOOKINGSAPI_STATUS_FINALIZED;
   if ($include_potential_conflicts) {
     // look for potential conflicts, such as from flexible unavailabilities and pending bookings.
-    $types .= ',' . BOOKINGSAPI_UNA_F;
-    $statuses .= ',' . BOOKINGSAPI_STATUS_PENDING;
+    $types .= ','. BOOKINGSAPI_UNA_F;
+    $statuses .= ','. BOOKINGSAPI_STATUS_PENDING;
   }
 
   $where = "{bookings_schedules}.resource_id IN ($resources) $exclude_self AND {bookings_schedules}.status IN ($statuses) AND {bookings_schedules}.type IN ($types)";
@@ -281,14 +292,22 @@ function bookingsapi_conflict_check($rec
   if (count($conflicts) < 1) {
     // nothing is blocking the timespan, so check default availability
     // if the default availability is not rigid unavailable, then the given intervals are clear
-    if ($res['default_availability'] != BOOKINGSAPI_UNA_S) return $select=='1' ? false : array();
+    if ($res['default_availability'] != BOOKINGSAPI_UNA_S) {
+      if ($select=='1') {
+        return FALSE;
+      } 
+      else {
+        return array();
+      }
+    }
 
     // the default availability is rigid unavailable. the only way this booking can continue is if the timeframe
     // is entirely filled by availability records
     $interval_sql = '';
     foreach ($intervals as $i) {
-      $sql .= "('{$i[0]}' BETWEEN start and end AND '{$i[1]}' BETWEEN start and end) OR ";
+      $interval_sql .= "('{$i[0]}' BETWEEN start and end AND '{$i[1]}' BETWEEN start and end) OR ";
     }
+    // TODO It is ugly to do replaces (or stuff) on SQL
     $interval_sql = substr($interval_sql, 0, -3);
     $sql = "SELECT UNIX_TIMESTAMP(start) as startts, UNIX_TIMESTAMP(end) as endts FROM {bookings_schedules} WHERE resource_id={$record['resource_id']} AND type IN (4,5) AND ($interval_sql) ORDER BY start asc";
     $q = db_query($sql);
@@ -309,7 +328,12 @@ function bookingsapi_conflict_check($rec
     return $intervals;
     // TODO: determine SQL query for checking whether availability records form a contiguous block of availability in given timeframes
   }
-  return $select=='1' ? true : $conflicts;
+  if ($select=='1') {
+    return TRUE;
+  }
+  else {
+    return $conflicts;
+  }
 }
 
 /**
@@ -323,8 +347,10 @@ function bookingsapi_conflict_check($rec
 function bookingsapi_rrule_until_as_dt($rrule) {
   include_once('./'. drupal_get_path('module', 'date_api') .'/date_api_ical.inc');
   $seg = preg_split('/.*UNTIL=([0-9]*T[0-9]*);.*/', $rrule, 2, PREG_SPLIT_DELIM_CAPTURE);
-  if(empty($seg)) return;
-  $until = date_ical_parse_date(';UNTIL=',$seg[1]);
+  if (empty($seg)) {
+    return;
+  }
+  $until = date_ical_parse_date(';UNTIL=', $seg[1]);
   return $until['datetime'];
 }
 
@@ -337,10 +363,11 @@ function bookingsapi_rrule_until_as_dt($
  */
 function _bookingsapi_record_instances_save(&$record) {
   if (empty($record['record_id'])) return;
-  if(!empty($record['rrule'])) {
+  if (!empty($record['rrule'])) {
     $exceptions = bookingsapi_rrule_exdates($record['rrule']);
     $instance_dates = date_repeat_calc($record['rrule'], $record['start'], $record['rrule_until'], $exceptions);
-  } else {
+  } 
+  else {
     $instance_dates = array($record['start']);
   }
   // remove the '00:00:00' from each
@@ -360,20 +387,21 @@ function _bookingsapi_record_instances_s
 
   if (empty($record['rrule']) && $cur_count > 0) {
     // if the RRULE is empty, delete all instances of it except the original
-    $sql = "DELETE FROM {bookings_schedules} WHERE record_id=%d AND start!='%s'";
+    $sql = "DELETE FROM {bookings_schedules} WHERE record_id=%d AND start<>'%s'";
     db_query($sql, $record['record_id'], $record['start']);
   }
 
   if ($cur_count < 1) {
     // this repeat is new, so create all instances in one query
-    $intervals = bookingsapi_interval_build($instance_dates, $record['start'], $record['end'], false);
+    $intervals = bookingsapi_interval_build($instance_dates, $record['start'], $record['end'], FALSE);
     $sql = $insertion_sql;
     foreach ($intervals as $date) {
       $sql .= "({$record['type']}, {$record['resource_id']}, '{$date[0]}', '{$date[1]}', {$record['record_id']}, {$record['status']}), ";
     }
     $sql = substr($sql, 0, -2);
     db_query($sql);
-  } else {
+  } 
+  else {
     // this repeat is not new.
     // if the date of the last instance doesn't match the expected last instance, the UNTIL has most likely changed
     $UNTIL_changed = substr($cur_instance['last_end'], 0, 10) != $instance_dates[$num_expected - 1];
@@ -398,7 +426,7 @@ function _bookingsapi_record_instances_s
         // insert these missing instances
         $sql = $insertion_sql;
         foreach ($insert as $v) {
-          $instance_start = $v . ' ' . $start_time;
+          $instance_start = "$v $start_time";
           $instance_end = "'$instance_start' + INTERVAL $duration SECOND";
           $sql .= "({$record['type']}, {$record['resource_id']}, '$instance_start', $instance_end, {$record['record_id']}, {$record['status']}), ";
         }
@@ -429,7 +457,7 @@ function _bookingsapi_record_instances_s
       db_query('DELETE FROM {bookings_schedules} WHERE record_id=%d', $record['record_id']);
       $sql = $insertion_sql;
       foreach ($instance_dates as $v) {
-        $instance_start = $v . ' ' . $start_time;
+        $instance_start = "$v $start_time";
         $instance_end = "'$instance_start' + INTERVAL $duration SECOND";
         $sql .= "({$record['type']}, {$record['resource_id']}, '$instance_start', $instance_end, {$record['record_id']}, {$record['status']}), ";
       }
@@ -450,11 +478,13 @@ function _bookingsapi_record_instances_s
  *  SAVED_NEW, or SAVED_UPDATED if successful
  *  BOOKINGSAPI_TIME_CONFLICT if there is a time conflict
  */
-function bookingsapi_booking_save(&$booking, $return_object = false) {
+function bookingsapi_booking_save(&$booking, $return_object = FALSE) {
   $op = empty($booking['record_id']) ? 'update' : 'insert';
   bookingsapi_extend('bookingsapi_booking', $op, $booking);
   $status = bookingsapi_record_save($booking);
-  if(!$return_object) $booking = (array) $booking;
+  if (!$return_object) {
+    $booking = (array) $booking;
+  }
   return $status;
 }
 
@@ -475,15 +505,22 @@ function bookingsapi_record_save(&$recor
   // do conflict check first.
   // the implementation's validation functions should do the same thing, but instead to get information on
   // conflicting records, to inform the user
-  if(bookingsapi_conflict_check($record)) return BOOKINGSAPI_TIME_CONFLICT;
+  if (bookingsapi_conflict_check($record)) {
+    return BOOKINGSAPI_TIME_CONFLICT;
+  }
 
   $using_sql_ts_triggers = variable_get('bookingsapi_using_sql_ts_triggers', FALSE);
   if (empty($record['record_id'])) {
     $update = array();
-    if($using_sql_ts_triggers) $record['created'] = date(DATE_FORMAT_DATETIME);
-  } else {
+    if ($using_sql_ts_triggers) {
+      $record['created'] = date(DATE_FORMAT_DATETIME);
+    }
+  } 
+  else {
     $update = 'record_id';
-    if($using_sql_ts_triggers) $record['modified'] = date(DATE_FORMAT_DATETIME);
+    if ($using_sql_ts_triggers) {
+      $record['modified'] = date(DATE_FORMAT_DATETIME);
+    }
   }
 
   $status = drupal_write_record('bookings_records', $record, $update);
@@ -498,7 +535,9 @@ function bookingsapi_record_save(&$recor
  *  Key 'record_id' is used.
  */
 function bookingsapi_record_delete($record) {
-  if(empty($record['record_id'])) return;
+  if (empty($record['record_id'])) {
+    return;
+  }
   $sql = 'DELETE FROM {bookings_records}, {bookings_schedules} USING {bookings_records}, {bookings_schedules}
           WHERE {bookings_records}.record_id = %d AND {bookings_schedules}.record_id = {bookings_records}.record_id';
   db_query($sql, $record['record_id']);
@@ -511,25 +550,31 @@ function bookingsapi_record_delete($reco
  *  An array of the instance to be deleted.
  */
 function bookingsapi_instance_delete($instance) {
-  if(empty($instance['instance_id'])) return;
+  if (empty($instance['instance_id'])) {
+    return;
+  }
   // TODO: this entire process needs table locks too
   // get the complete instance row, if necessary
-  if(empty($instance['record_id'])) $instance = bookingsapi_instance_load($instance['instance_id']);
+  if (empty($instance['record_id'])) {
+    $instance = bookingsapi_instance_load($instance['instance_id']);
+  }
   // get the record for the instance
   $parent = bookingsapi_record_load($instance['record_id']);
-  if(!empty($record['rrule'])) {
+  if (!empty($record['rrule'])) {
     // this is one instance of many; update the parent's EXDATE to reflect the deletion
     $rrule = explode("\n", $parent['rrule']);
-    $exception = substr($instance['start'], 0, 11) . '00:00:00'; // reset time according to RFC spec
+    $exception = substr($instance['start'], 0, 11) .'00:00:00'; // reset time according to RFC spec
     $exception = date_convert($exception, DATE_DATETIME, DATE_ICAL);
     if (array_key_exists(1, $rrule)) {
-      $rrule[1] .= ',' . $exception; // append to existing
-    } else {
-      $rrule[1] = 'EXDATE:' . $exception; // create new
+      $rrule[1] .= ", $exception"; // append to existing
+    } 
+    else {
+      $rrule[1] = "EXDATE: $exception"; // create new
     }
-    $rrule = implode("\n",$rrule);
+    $rrule = implode("\n", $rrule);
     db_query("UPDATE {bookings_records} SET rrule='%s' WHERE record_id=%d LIMIT 1", $rrule, $instance['record_id']);
-  } else {
+  } 
+  else {
     // deleting the one and only instance of a record, so delete record also
     db_query('DELETE FROM {bookings_records} WHERE record_id=%d LIMIT 1', $instance['record_id']);
   }
@@ -537,9 +582,14 @@ function bookingsapi_instance_delete($in
   db_query('DELETE FROM {bookings_schedules} WHERE instance_id=%d LIMIT 1', $instance['instance_id']);
 }
 
-function bookingsapi_instance_load($instance_id, $return_object = false) {
+function bookingsapi_instance_load($instance_id, $return_object = FALSE) {
   $q = db_query('SELECT * FROM {bookings_schedules} WHERE instance_id=%d', $instance_id);
-  return $return_object ? db_fetch_object($q) : db_fetch_array($q);
+  if ($return_object) {
+    return db_fetch_object($q);
+  } 
+  else {
+    db_fetch_array($q);
+  }
 }
 
 /**
@@ -549,7 +599,7 @@ function bookingsapi_instance_load($inst
  * @param bool $return_object
  * @see bookingsapi_record_load()
  */
-function bookingsapi_booking_load($record_id, $return_object = false) {
+function bookingsapi_booking_load($record_id, $return_object = FALSE) {
   return bookingsapi_record_load($record_id, $return_object);
 }
 
@@ -560,7 +610,7 @@ function bookingsapi_booking_load($recor
  * @param bool $return_object
  * @see bookingsapi_record_load()
  */
-function bookingsapi_availability_load($record_id, $return_object = false) {
+function bookingsapi_availability_load($record_id, $return_object = FALSE) {
   return bookingsapi_record_load($record_id, $return_object);
 }
 
@@ -573,27 +623,34 @@ function bookingsapi_availability_load($
  *  array if found and $return_object is false
  *  object if found and $return_object is true
  */
-function bookingsapi_record_load($record_id, $return_object = false) {
+function bookingsapi_record_load($record_id, $return_object = FALSE) {
   $sql = 'SELECT * FROM {bookings_records} WHERE {bookings_records}.record_id=%d';
-  $q = db_query(db_rewrite_sql($sql,'bookings_records','record_id'), $record_id);
-  return $return_object ? db_fetch_object($q) : db_fetch_array($q);
+  $q = db_query(db_rewrite_sql($sql, 'bookings_records', 'record_id'), $record_id);
+  if ($return_object) {
+    return db_fetch_object($q);
+  } 
+  else {
+    return db_fetch_array($q);
+  }
 }
 
 /**
  * Save availability to database, passing the it to hooked modules for changes first.
  *
  * @param array $avail
  * @param bool $return_object
  * @return boolean false if fail, or SAVED_NEW, or SAVED_UPDATED
  */
-function bookingsapi_availability_save(&$avail, $return_object = false) {
+function bookingsapi_availability_save(&$avail, $return_object = FALSE) {
   $op = empty($avail['record_id']) ? 'update' : 'insert';
   bookingsapi_extend('bookingsapi_booking', $op, $avail);
   $status = bookingsapi_record_save($avail);
-  if(!$return_object) $booking = (array) $avail;
+  if (!$return_object) {
+    $avail = (array) $avail;
+  }
   return $status;
 }
 
+
 function bookingsapi_availability_delete($avail) {
   // if this is an available record, and default availability is unavailable rigid,
   // cancel all bookings that are dependent on this availability
@@ -608,15 +665,15 @@ function bookingsapi_availability_delete
     // for now, all child resources are affected by this availability removal
     $sql = 'SELECT resource_id FROM {bookings_resources} WHERE parent=%d';
     $q = db_query($sql, $res['resource_id']);
-    while($r = db_fetch_array($q)) {
+    while ($r = db_fetch_array($q)) {
       $resources[] = $r['resource_id'];
     }
     $resources = implode(',', $resources);
 
     $where = "{bookings_schedules}.resource_id IN ($resources) $exclude_self AND {bookings_schedules}.type = 1";
 
-    $dependents = bookingsapi_timeframe_survey('record_id',$intervals,$where);
-    $dependents = implode(',',$dependents);
+    $dependents = bookingsapi_timeframe_survey('record_id', $intervals, $where);
+    $dependents = implode(',', $dependents);
 
     // cancel
     $sql = "UPDATE {bookings_records}, {bookings_schedules}
@@ -639,12 +696,14 @@ function bookingsapi_availability_delete
  *  if TRUE, keep drupal_write_record()'s behaviour of converting the reference to an object
  * @return boolean false if fail, or SAVED_NEW, or SAVED_UPDATED
  */
-function bookingsapi_resource_save(&$resource, $return_object = false) {
+function bookingsapi_resource_save(&$resource, $return_object = FALSE) {
   $op = empty($resource['resource_id']) ? 'insert' : 'update';
   $update = empty($resource['resource_id']) ? array() : 'resource_id';
   bookingsapi_extend('bookingsapi_resource', $op, $resource);
   $retval = drupal_write_record('bookings_resources', $resource, $update);
-  if(!$return_object) $resource = (array) $resource;
+  if (!$return_object) {
+    $resource = (array) $resource;
+  }
   return $retval;
 }
 
@@ -656,9 +715,9 @@ function bookingsapi_resource_save(&$res
  *  array if found and $return_object is false
  *  object if found and $return_object is true
  */
-function bookingsapi_resource_load($resource_id, $return_object = false) {
+function bookingsapi_resource_load($resource_id, $return_object = FALSE) {
   $sql = 'SELECT * FROM {bookings_resources} WHERE {bookings_resources}.resource_id=%d';
-  $q = db_query(db_rewrite_sql($sql,'bookings_resources','resource_id'), $resource_id);
+  $q = db_query(db_rewrite_sql($sql, 'bookings_resources', 'resource_id'), $resource_id);
   return $return_object ? db_fetch_object($q) : db_fetch_array($q);
 }
 
@@ -676,17 +735,18 @@ function bookingsapi_resource_load($reso
  * @return array
  *  resources
  */
-function bookingsapi_resource_list($limit = 10, $return_object = false, $sort = '', $element = 0) {
+function bookingsapi_resource_list($limit = 10, $return_object = FALSE, $sort = '', $element = 0) {
   bookingsapi_extend('bookingsapi_resource', 'list');
-  $sql = 'SELECT * FROM {bookings_resources}' . $sort;
-  $q = pager_query(db_rewrite_sql($sql,'bookings_resources','resource_id'), $limit, $element);
+  $sql = 'SELECT * FROM {bookings_resources}'. $sort;
+  $q = pager_query(db_rewrite_sql($sql, 'bookings_resources', 'resource_id'), $limit, $element);
   $rows = array();
-  if($return_object) {
-    while($result = db_fetch_object($q)) {
+  if ($return_object) {
+    while ($result = db_fetch_object($q)) {
       $rows[] = $result;
     }
-  } else {
-    while($result = db_fetch_array($q)) {
+  } 
+  else {
+    while ($result = db_fetch_array($q)) {
       $rows[] = $result;
     }
   }
@@ -717,7 +777,7 @@ function bookingsapi_resource_delete($re
  * @param $config is configuration data
  * @return an array of data
 */
-function bookingsapi_extend($hook_name, $op = null, &$data = null, &$config = null) {
+function bookingsapi_extend($hook_name, $op = NULL, &$data = NULL, &$config = NULL) {
   $items = array();
   foreach (module_implements($hook_name) as $module) {
     //echo $module . $hook_name;
@@ -726,7 +786,9 @@ function bookingsapi_extend($hook_name, 
     }
   }
   // make sure we return an array
-  if (! is_array($items)) { return array(); }
+  if (! is_array($items)) { 
+    return array(); 
+  }
   return $items;
 }
 
@@ -754,7 +816,7 @@ function bookingsapi_views_api() {
 function bookingsapi_views_handlers() {
   return array(
     'info' => array(
-      'path' => drupal_get_path('module', 'bookingsapi') . '/handlers',
+      'path' => drupal_get_path('module', 'bookingsapi') .'/handlers',
     ),
     'handlers' => array(
       'views_handler_field_datetime' => array(
@@ -807,4 +869,4 @@ function bookingsapi_views_handlers() {
       ),
     ),
   );
-}
\ No newline at end of file
+}
