You are here

function upload_diff in Diff 6.2

Same name and namespace in other branches
  1. 5.2 upload.inc \upload_diff()
  2. 5 upload.inc \upload_diff()
  3. 6 upload.inc \upload_diff()

Implementation of hook_diff() for file attachments.

File

includes/upload.inc, line 11
Implementation of hook_diff() for file attachments.

Code

function upload_diff($old_node, $new_node) {
  $result = array();
  $old_files = array();
  if (isset($old_node->files)) {
    foreach ($old_node->files as $file) {
      $old_files[] = $file->filename;
    }
  }
  $new_files = array();
  if (isset($new_node->files)) {
    foreach ($new_node->files as $key => $file) {
      if (is_array($file)) {

        // During editing the files are stored as arrays, not objects.
        if ($file['remove']) {

          // It looks better if a blank line is inserted for removed files.
          $new_files[] = '';
        }
        else {
          $new_files[] = $file['filename'];
        }
      }
      else {
        $new_files[] = $file->filename;
      }
    }
  }
  $result['attachments'] = array(
    '#name' => t('Attachments'),
    '#old' => $old_files,
    '#new' => $new_files,
    '#weight' => 30,
    '#format' => array(
      'show_header' => FALSE,
    ),
  );
  return $result;
}