You are here

function filefield_get_node_files in FileField 6.3

Get all FileField files connected to a node ID.

Parameters

$node: The node object.

$field: Optional. The CCK field array or field name as a string.

Return value

An array of all files attached to that field (or all fields).

File

./filefield.module, line 1083
FileField: Defines a CCK file field type.

Code

function filefield_get_node_files($node, $field = NULL) {
  $fields = filefield_get_field_list($node->type, $field);
  $files = array();

  // Get the file rows.
  foreach ($fields as $field) {
    $db_info = content_database_info($field);
    $fields = 'f.*';
    $fields .= ', c.' . $db_info['columns']['list']['column'] . ' AS list';
    $fields .= ', c.' . $db_info['columns']['data']['column'] . ' AS data';
    $sql = 'SELECT ' . $fields . ' FROM {files} f INNER JOIN {' . $db_info['table'] . '} c ON f.fid = c.' . $db_info['columns']['fid']['column'] . ' AND c.vid = %d';
    $result = db_query($sql, $node->vid);
    while ($file = db_fetch_array($result)) {
      $file['data'] = unserialize($file['data']);
      $files[$file['fid']] = $file;
    }
  }
  return $files;
}