_build_param

Versions
mediamosa-21
_build_param($name, $var, $required)

Helper for creating param form item.

Parameters

string $name

array $var

Code

sites/all/modules/mediamosa_development/mediamosa_development.admin.inc, line 557

<?php
function _build_param($name, $var, $required) {
  $item = array();

  // For now skip internal vars.
  if (isset($var[mediamosa_rest_call::VAR_IS_INTERNAL_ONLY]) && $var[mediamosa_rest_call::VAR_IS_INTERNAL_ONLY] == mediamosa_rest_call::VAR_IS_INTERNAL_ONLY_YES) {
    return '';
  }

  $type = mediamosa_type::typeAlias2Type($var[mediamosa_rest_call::VAR_TYPE]);
  $is_array = isset($var[mediamosa_rest_call::VAR_IS_ARRAY]) && $var[mediamosa_rest_call::VAR_IS_ARRAY] == mediamosa_rest_call::VAR_IS_ARRAY_YES;

  // Title.
  $title = $name . ($is_array ? '[]' : '');
  $options = array();

  if (isset($var[mediamosa_rest_call::VAR_ALLOWED_VALUES]) && !empty($var[mediamosa_rest_call::VAR_ALLOWED_VALUES])) {
    if (!$required) {
      $options[''] = t('Make selection');
      $var[mediamosa_rest_call::VAR_DEFAULT_VALUE] = t('Make selection');
    }

    foreach ($var[mediamosa_rest_call::VAR_ALLOWED_VALUES] as $value) {
      $options[$value] = $value;
    }

    // Go pass the type.
    $type = 'hack_selection';
  }

  // Description.
  $description = $var[mediamosa_rest_call::VAR_DESCRIPTION];

  switch ($type) {
    case 'hack_selection':
      $item = array(
        '#weight' => 10,
        '#type' => 'select',
        '#title' => $title,
        '#description' => $description,
        '#options' => $options,
      );
      break;

    case mediamosa_type::TYPE_BOOL:
      $item = array(
        '#weight' => 10,
        '#type' => 'select',
        '#title' => $title,
        '#description' => $description,
        '#options' => array('' => '', 'false' => t('false'), 'true' => t('true')),
      );

      if (isset($var[mediamosa_rest_call::VAR_DEFAULT_VALUE])) {
        $var[mediamosa_rest_call::VAR_DEFAULT_VALUE] = drupal_strtolower($var[mediamosa_rest_call::VAR_DEFAULT_VALUE]);
      }

      break;

    case mediamosa_type::TYPE_LANGUAGE_CODE:
      $options = explode(',', 'aa,ab,ae,af,ak,am,an,ar,as,av,ay,az,ba,be,bg,bh,bi,bm,bn,bo,br,bs,ca,ce,ch,co,cr,cs,cu,cv,cy,da,de,dv,dz,ee,el,en,eo,es,et,eu,fa,ff,fi,fj,fo,fr,fy,ga,gd,gl,gn,gu,gv,ha,he,hi,ho,hr,ht,hu,hy,hz,ia,id,ie,ig,ii,ik,io,is,it,iu,ja,jv,ka,kg,ki,kj,kk,kl,km,kn,ko,kr,ks,ku,kv,kw,ky,la,lb,lg,li,ln,lo,lt,lu,lv,mg,mh,mi,mk,ml,mn,mo,mr,ms,mt,my,na,nb,nd,ne,ng,nl,nn,no,nr,nv,ny,oc,oj,om,or,os,pa,pi,pl,ps,pt,qu,rm,rn,ro,ru,rw,ry,sa,sc,sd,se,sg,sh,si,sk,sl,sm,sn,so,sq,sr,ss,st,su,sv,sw,ta,te,tg,th,ti,tk,tl,tn,to,tr,ts,tt,tw,ty,ug,uk,ur,uz,ve,vi,vo,wa,wo,xh,yi,yo,za,zh,zu');
      $item = array(
        '#type' => 'select',
        '#title' => $title,
        '#description' => $description,
        '#options' => $options,
      );
      break;

    case mediamosa_type::TYPE_APP_ID:
    case mediamosa_type::TYPE_INT:
    case mediamosa_type::TYPE_UINT:
    case mediamosa_type::TYPE_AUT_GROUP_TYPE:
    case mediamosa_type::TYPE_TICKET_ID:

    case mediamosa_type::TYPE_URI:
    case mediamosa_type::TYPE_FILENAME:
    case mediamosa_type::TYPE_STRING:
    case mediamosa_type::TYPE_ALPHA:
    case mediamosa_type::TYPE_ALPHA_NUM:
    case mediamosa_type::TYPE_ALPHA_NUM_UNDERSCORE:
    case mediamosa_type::TYPE_ALPHA_NUM_UNDERSCORE_TAG:

    case mediamosa_type::TYPE_DATETIME:

    case mediamosa_type::TYPE_SERIAL:
    case mediamosa_type::TYPE_URL:
    case mediamosa_type::TYPE_JOB:
    case mediamosa_type::TYPE_COMMAND:
      $item = array(
        '#weight' => '10',
        '#type' => 'textfield',
        '#title' => $title,
        '#description' => $description,
      );

      break;
    default:
      drupal_set_message(t('No form creation found for @name with type @type.', array('@name' => $name, '@type' => $type)), 'error');
      break;
  }

  if (!empty($item)) {
    if (!empty($var[mediamosa_rest_call::VAR_DEFAULT_VALUE])) {
      $item['#default_value'] = $var[mediamosa_rest_call::VAR_DEFAULT_VALUE];
    }
  }
  return $item;
}
?>