/**
  * Takes an array of field defs and returns a formated list of fields that are valid for use in select list.
  *
  * @param  array $fieldDef
  * @return array
  */
 public static function cleanFields($fieldDef, $moduleName = '', $includeLinks = true, $forRelatedField = false, $returnKeys = false)
 {
     $bannedFieldsAndLinks = PdfManagerHelper::getBannnedFieldsAndLinks();
     $fieldArray = array();
     foreach ($fieldDef as $fieldName => $def) {
         if (!is_array($def) || $fieldName == 'deleted' || empty($def['type'])) {
             continue;
         }
         if (isset($bannedFieldsAndLinks[$moduleName]) && isset($bannedFieldsAndLinks[$moduleName]['fields']) && in_array($fieldName, $bannedFieldsAndLinks[$moduleName]['fields'])) {
             continue;
         }
         //Check the studio property of the field def.
         if (isset($def['studio']) && (self::isFalse($def['studio']) || is_array($def['studio']) && (isset($def['studio']['formula']) && self::isFalse($def['studio']['formula']) || $forRelatedField && isset($def['studio']['related']) && self::isFalse($def['studio']['related'])))) {
             continue;
         }
         switch ($def['type']) {
             case "int":
             case "float":
             case "decimal":
             case "currency":
                 $fieldArray[$fieldName] = array($fieldName, 'number');
                 break;
             case "bool":
                 $fieldArray[$fieldName] = array($fieldName, 'boolean');
                 break;
             case "varchar":
             case "name":
             case "user_name":
             case "phone":
             case "text":
             case "url":
             case "encrypt":
             case "enum":
             case "radio":
             case "radioenum":
             case "multienum":
                 $fieldArray[$fieldName] = array($fieldName, 'string');
                 break;
             case "relate":
                 if (!empty($def['ext2'])) {
                     $fieldArray[$fieldName] = array($fieldName, 'string');
                 }
                 break;
             case "date":
             case "datetime":
             case "datetimecombo":
                 $fieldArray[$fieldName] = array($fieldName, 'date');
                 break;
             case "link":
                 if ($includeLinks) {
                     $fieldArray[$fieldName] = array($fieldName, 'relate');
                 }
                 break;
             default:
                 //Do Nothing
                 break;
         }
     }
     if ($returnKeys) {
         return $fieldArray;
     }
     return array_values($fieldArray);
 }