You are here

function word_link_exchange_import_form_validate in Word Link 7

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

Validate for word_link_exchange_import_form.

File

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

Code

function word_link_exchange_import_form_validate($form, &$form_state) {

  // Preload file.
  $file = file_save_upload('file', array(
    'file_validate_extensions' => array(
      'csv txt',
    ),
  ));
  if (!empty($file)) {
    $file->filepath = drupal_realpath($file->uri);
    if (!empty($file->filepath)) {
      $content = file($file->filepath);
      $values = array();
      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':
          if ($form_state['values']['delimiter_custom'] !== '') {
            $delimiter = $form_state['values']['delimiter_custom'];
          }
          else {
            $messages['delimiter_custom'] = t('Delimiter is required.');
          }
          break;
      }
      if (!isset($messages['delimiter_custom'])) {
        foreach ($content as $row) {
          $row = str_getcsv($row, $delimiter);
          if (count($row) == 7) {
            $values[] = $value = array(
              'text' => $row[0],
              'case_sensitive' => $row[1],
              'url' => $row[2],
              'url_title' => $row[3],
              'class' => $row[4],
              'visibility' => $row[5],
              'except' => $row[6],
            );
          }
          else {
            $messages['file'] = t('Wrong file or delimiter.');
          }
        }
        $form_state['values']['file'] = $values;
      }
    }
  }
  if (isset($form['taxonomy'])) {
    if (empty($form_state['values']['import_limit']) || $form_state['values']['import_limit'] < 0) {
      $messages['import_limit'] = t('Import limit must be positive integer.');
    }
    if (empty($file) && empty($form_state['values']['vocabularies'])) {
      $messages['vocabularies'] = t('Please select something.');
      $messages['file'] = '';
    }
  }

  // Set error messages.
  if (isset($messages)) {
    foreach ($messages as $item => $message) {
      form_set_error(check_plain($item), filter_xss($message));
    }
  }
}