/[drupal]/drupal/modules/file/file.field.inc
ViewVC logotype

Diff of /drupal/modules/file/file.field.inc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.8, Sat Oct 31 16:06:36 2009 UTC revision 1.9, Sun Nov 1 14:05:32 2009 UTC
# Line 1  Line 1 
1  <?php  <?php
2  // $Id: file.field.inc,v 1.7 2009/10/15 12:44:36 dries Exp $  // $Id: file.field.inc,v 1.8 2009/10/31 16:06:36 dries Exp $
3    
4  /**  /**
5   * @file   * @file
# Line 429  function file_field_widget_settings_form Line 429  function file_field_widget_settings_form
429  /**  /**
430   * Implementation of hook_field_widget().   * Implementation of hook_field_widget().
431   */   */
432  function file_field_widget(&$form, &$form_state, $field, $instance, $langcode, $items, $delta = 0) {  function file_field_widget(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) {
433    $form['#attributes'] = array('enctype' => 'multipart/form-data');    $form['#attributes'] = array('enctype' => 'multipart/form-data');
434    
435    $defaults = array(    $defaults = array(
# Line 461  function file_field_widget(&$form, &$for Line 461  function file_field_widget(&$form, &$for
461    
462    // Essentially we use the managed_file type, extended with some enhancements.    // Essentially we use the managed_file type, extended with some enhancements.
463    $element_info = element_info('managed_file');    $element_info = element_info('managed_file');
464    $element = array(    $element += array(
465      '#type' => 'managed_file',      '#type' => 'managed_file',
466      '#default_value' => isset($items[$delta]) ? $items[$delta] : $defaults,      '#default_value' => isset($items[$delta]) ? $items[$delta] : $defaults,
     '#required' => $instance['required'],  
467      '#upload_location' => file_field_widget_uri($field, $instance),      '#upload_location' => file_field_widget_uri($field, $instance),
468      '#upload_validators' => file_field_widget_upload_validators($field, $instance),      '#upload_validators' => file_field_widget_upload_validators($field, $instance),
469      '#value_callback' => 'file_field_widget_value',      '#value_callback' => 'file_field_widget_value',
470      '#process' => array_merge($element_info['#process'], array('file_field_widget_process')),      '#process' => array_merge($element_info['#process'], array('file_field_widget_process')),
471      // Allows this field to return an array instead of a single value.      // Allows this field to return an array instead of a single value.
472      '#extended' => TRUE,      '#extended' => TRUE,
     // Add extra Field properties.  
     '#field_name' => $field['field_name'],  
     '#bundle' => $instance['bundle'],  
     '#object_type' => $instance['object_type'],  
473    );    );
474    
475    if ($field['cardinality'] == 1) {    if ($field['cardinality'] == 1) {
476      // If there's only one field, return it as delta 0.      // If there's only one field, return it as delta 0.
     $element['#title'] = $instance['label'];  
477      if (empty($element['#default_value']['fid'])) {      if (empty($element['#default_value']['fid'])) {
478        $element['#description'] = theme('file_upload_help', array('description' => $instance['description'], 'upload_validators' => $element['#upload_validators']));        $element['#description'] = theme('file_upload_help', array('description' => $element['#description'], 'upload_validators' => $element['#upload_validators']));
479      }      }
480      $elements = array($element);      $elements = array($element);
481    }    }
# Line 499  function file_field_widget(&$form, &$for Line 493  function file_field_widget(&$form, &$for
493        $elements[$delta] = $element;        $elements[$delta] = $element;
494        $elements[$delta]['#default_value'] = $defaults;        $elements[$delta]['#default_value'] = $defaults;
495        $elements[$delta]['#weight'] = $delta;        $elements[$delta]['#weight'] = $delta;
496        $elements[$delta]['#required'] = ($instance['required'] && $delta == 0);        $elements[$delta]['#required'] = ($element['#required'] && $delta == 0);
497      }      }
498      // The group of elements all-together need some extra functionality      // The group of elements all-together need some extra functionality
499      // after building up the full list (like draggable table rows).      // after building up the full list (like draggable table rows).
# Line 508  function file_field_widget(&$form, &$for Line 502  function file_field_widget(&$form, &$for
502      $elements['#theme_wrappers'] = array('fieldset');      $elements['#theme_wrappers'] = array('fieldset');
503      $elements['#attributes']['class'] = array('file-widget');      $elements['#attributes']['class'] = array('file-widget');
504      $elements['#process'] = array('file_field_widget_process_multiple');      $elements['#process'] = array('file_field_widget_process_multiple');
505      $elements['#title'] = $instance['label'];      $elements['#title'] = $element['#title'];
506      $elements['#description'] = $instance['description'];      $elements['#description'] = $element['#description'];
507        $elements['#object_type'] = $element['#object_type'];
508        $elements['#bundle'] = $element['#bundle'];
509        $elements['#field_name'] = $element['#field_name'];
510    
511      // Add some properties that will eventually be added to the file upload      // Add some properties that will eventually be added to the file upload
512      // field. These are added here so that they may be referenced easily through      // field. These are added here so that they may be referenced easily through

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9

  ViewVC Help
Powered by ViewVC 1.1.2