You are here

function mobile_codes_process_arguments in Mobile Codes 5

Same name and namespace in other branches
  1. 6 mobile_codes.module \mobile_codes_process_arguments()
1 call to mobile_codes_process_arguments()
mobile_codes_generate in ./mobile_codes.module
Generate a mobile code

File

./mobile_codes.module, line 178
Mobile Codes core functions

Code

function mobile_codes_process_arguments(&$arguments) {
  $values = array();

  // Load preset
  if (!isset($arguments['preset'])) {
    $arguments['preset'] = 1;
  }
  if ($preset = mobile_codes_load_preset($arguments['preset'])) {
    $arguments['preset'] = $preset->pid;
    $arguments += $preset->data;
  }
  else {
    drupal_set_message(t('Mobile Codes Preset "%preset" does not exist.', array(
      '%preset' => $arguments['preset'],
    )), 'warning');
    return FALSE;
  }

  // Set Name
  if (!isset($arguments['name'])) {
    $arguments['name'] = '';
  }

  // Set Data type
  switch ($arguments['data']) {
    case 'link':
    case 'text':
      $values['mode'] = 'TEXT';
      break;
    case 'phone':
      $values['mode'] = 'NUMBER';
      break;
    default:
      $arguments['data'] = 'link';
      $values['mode'] = 'TEXT';
      break;
  }

  // Set Size
  switch (drupal_strtolower($arguments['size'])) {
    case 's':
    case 'sml':
    case 'small':
      $values['size'] = array(
        'dm' => '0.12',
        'qr' => '2',
      );
      break;
    case 'm':
    case 'med':
    case 'medium':
    default:
      $values['size'] = array(
        'dm' => '0.18',
        'qr' => '4',
      );
      break;
    case 'l':
    case 'lrg':
    case 'large':
      $values['size'] = array(
        'dm' => '0.24',
        'qr' => '6',
      );
      break;
  }

  // Set Code type
  switch ($arguments['type']) {
    case 'dm':
      $values['text'] = array(
        'data' => 'BARCODE',
        'size' => 'X',
        'margin_encoding' => '',
      );
      break;
    case 'qr':
    default:
      $values['text'] = array(
        'data' => 'DATA',
        'size' => 'MODULE_SIZE',
        'margin_encoding' => '&MARGIN=2&ENCODING=BYTE',
      );
      break;
  }
  return $values;
}