From 2a24eb6df1ea5bf65de09166f70b1878789a2257 Mon Sep 17 00:00:00 2001
From: Florian Weber <f.weber@digi-info.de>
Date: Fri, 23 Sep 2011 13:46:28 +0200
Subject: [PATCH] Issue #1288740: Allow multiple file ids as argument.

---
 modules/system.views.inc                           |    1 +
 modules/system/views_handler_argument_file_fid.inc |   20 +++++++++-----------
 2 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/modules/system.views.inc b/modules/system.views.inc
index a58410f..d7975cd 100644
--- a/modules/system.views.inc
+++ b/modules/system.views.inc
@@ -51,6 +51,7 @@ function system_views_data() {
     'argument' => array(
       'handler' => 'views_handler_argument_file_fid',
       'name field' => 'filename', // the field to display in the summary.
+      'numeric' => TRUE,
     ),
     'filter' => array(
       'handler' => 'views_handler_filter_numeric',
diff --git a/modules/system/views_handler_argument_file_fid.inc b/modules/system/views_handler_argument_file_fid.inc
index 7303d4e..4e5fa95 100644
--- a/modules/system/views_handler_argument_file_fid.inc
+++ b/modules/system/views_handler_argument_file_fid.inc
@@ -2,20 +2,18 @@
 /**
  * Argument handler to accept a file id.
  */
-class views_handler_argument_file_fid extends views_handler_argument {
+class views_handler_argument_file_fid extends views_handler_argument_numeric {
   /**
-   * Override the behavior of title(). Get the title of the file.
+   * Override the behavior of title(). Get the filename of the file.
    */
-  function title() {
-    $title = db_select('file_managed', 'f')
-      ->fields('f', array('filename'))
-      ->condition('fid', $this->argument)
-      ->execute()
-      ->fetchField();
-    if (empty($title)) {
-      return t('No title');
+  function title_query() {
+    $filenames = array();
+
+    $result = db_query("SELECT fm.filename FROM {file_managed} fm WHERE fm.fid IN (:fids)", array(':fids' => $this->value));
+    foreach ($result as $file) {
+      $filenames[] = check_plain($file->filename);
     }
 
-    return check_plain($title);
+    return array_filter($filenames);
   }
 }
-- 
1.7.6

