You are here

function node_gallery_handler_field_fid::pre_render in Node Gallery 6.2

File

includes/node_gallery_handler_field_fid.inc, line 47
node_gallery_handler_field_fid.inc

Class

node_gallery_handler_field_fid
@file node_gallery_handler_field_fid.inc

Code

function pre_render(&$values) {
  global $user;
  foreach ($values as $value) {
    $fids[$value->{$this->aliases[$this->additional_fields['nid']]}] = $value->{$this->field_alias};
  }
  if (!empty($fids)) {
    $result = db_query(db_rewrite_sql("SELECT n.nid, ng.*, f.filepath FROM {node} n INNER JOIN {node_galleries} ng\n       ON n.nid = ng.nid INNER JOIN {files} f ON ng.fid = f.fid WHERE ng.fid IN (" . db_placeholders($fids) . ")"), $fids);
    while ($r = db_fetch_array($result)) {
      $items[$r['nid']] = $r;
    }

    // If nga is active, then fetch the access type and password from the db and merge it for use later in render()
    if (module_exists('node_gallery_access')) {
      $nids = array_keys($items);
      $result = db_query("SELECT n.uid, ng.nid, nga.access_type, nga.password FROM {node} n INNER JOIN\n         {node_galleries} ng ON n.nid = ng.nid INNER JOIN {node_gallery_access} nga \n        ON ng.gid = nga.nid WHERE ng.nid IN (" . db_placeholders($nids) . ")", $nids);
      while ($r = db_fetch_array($result)) {
        $items[$r['nid']] = array_merge((array) $items[$r['nid']], $r);
      }
    }
    foreach ($values as $value) {
      $new = array_merge((array) $value, $items[$value->{$this->aliases[$this->additional_fields['nid']]}]);
      $new_items[] = (object) $new;
    }
    $values = $new_items;
  }
}