You are here

function word_link_exchange_export_form_submit in Word Link 7

Same name and namespace in other branches
  1. 8 modules/word_link_exchange/word_link_exchange.module \word_link_exchange_export_form_submit()
  2. 7.2 modules/word_link_exchange/word_link_exchange.module \word_link_exchange_export_form_submit()

Submit for export form.

File

modules/word_link_exchange/word_link_exchange.module, line 467
Code for the Word link exchange module.

Code

function word_link_exchange_export_form_submit($form, &$form_state) {

  // Get all words from DB.
  $links = word_link_get_link();

  // Get right delimiter.
  switch ($form_state['values']['delimiter']) {
    case 'comma':
      $delimiter = ',';
      break;
    case 'semicolon':
      $delimiter = ';';
      break;
    case 'tabulation':
      $delimiter = "\t";
      break;
    case 'pipe':
      $delimiter = '|';
      break;
    case 'space':
      $delimiter = ' ';
      break;
    case 'currency_sign':
      $delimiter = '¤';
      break;
    case 'custom_delimiter':
      $delimiter = $form_state['values']['delimiter_custom'];
      break;
  }

  // Get right line ending.
  switch ($form_state['values']['line_ending']) {
    case 'unix':
      $line_ending = "\n";
      break;
    case 'mac':
      $line_ending = "\r";
      break;
    case 'ms':
      $line_ending = "\r\n";
      break;
  }

  // Check if there is write access and prepare file.
  $filename = file_unmanaged_save_data('', 'public://' . 'word_link_' . format_date(REQUEST_TIME, 'custom', 'd\\_m\\_Y\\TH\\_i') . '.csv', 'FILE_EXISTS_REPLACE');
  if ($filename) {
    $file = (object) array(
      'filename' => basename($filename),
      'filepath' => drupal_realpath($filename),
      'filesize' => filesize($filename),
    );
  }
  else {
    drupal_set_message(t('The file could not be created.'), 'error');
    return;
  }
  $operations = array();
  foreach ($links as $link) {
    $values = array(
      'text',
      'case_sensitive',
      'url',
      'url_title',
      'class',
      'visibility',
      'except',
    );
    $string = '';
    foreach ($values as $value) {
      if ($value != 'except') {
        $string .= $link->{$value};
        $string .= $delimiter;
      }
      else {
        $except = str_replace(array(
          "\r\n",
          "\n",
          "\r",
        ), '|', trim($link->{$value}));
        $string .= !empty($except) ? $except : '""';
        $string .= $line_ending;
      }
    }
    $operations[] = array(
      'word_link_exchange_write_file',
      array(
        $string,
        $file,
      ),
    );
  }
  $batch = array(
    'title' => t('Exporting links...'),
    'operations' => $operations,
    'finished' => 'word_link_exchange_export_batch_finish',
  );
  batch_set($batch);
}