static function getFieldValue($data, $fieldId, $lang = false)
 {
     $name = 'field_' . $fieldId;
     if (!array_key_exists($name, $data)) {
         return '';
     }
     $model = new connectionFieldsModel();
     $field = $model->getField((int) $fieldId);
     $lang = $lang ? $lang : Language::getActiveLanguageISO();
     if ($field) {
         switch ($field['type']) {
             case 'select':
                 $variants = $model->getLocalesVariant($fieldId, $data[$name], true);
                 if (isset($variants[$lang])) {
                     return $variants[$lang];
                 } else {
                     return '';
                 }
                 break;
             case 'list':
                 $ret = array();
                 foreach ($data[$name] as $vart) {
                     $variants = $model->getLocalesVariant($fieldId, $vart, true);
                     if (isset($variants[$lang])) {
                         $ret[] = $variants[$lang];
                     }
                 }
                 return $ret;
                 break;
             default:
                 return $data[$name];
                 break;
         }
     }
     return $data[$name];
 }
 private function filterCustomField($fields)
 {
     $result = array();
     $model = new connectionFieldsModel();
     foreach ($fields as $key => $value) {
         $exp = explode('_', $key);
         $fieldId = (int) $exp[1];
         $field = $model->getField($fieldId);
         $type = $field['type'] == 'textarea' ? 'input' : $field['type'];
         switch ($type) {
             case 'input':
                 $result[$key] = new MongoRegex('/' . $value . '/i');
                 break;
             case 'checkbox':
                 $result[$key] = true;
                 break;
             case 'select':
                 if ($model->hasVariant($fieldId, $value)) {
                     $variants = $model->getLocalesVariant($fieldId, $value);
                     $result[$key] = array('$in' => $variants);
                 }
                 break;
             case 'list':
                 if (is_array($value)) {
                     $variants = array();
                     foreach ($value as $variant) {
                         if ($model->hasVariant($fieldId, $variant)) {
                             $variantsLocale = $model->getLocalesVariant($fieldId, $variant);
                             $variants = array_merge($variants, $variantsLocale);
                         }
                     }
                     if (sizeof($variants) != 0) {
                         $result[$key] = array('$in' => $variants);
                     }
                 }
                 break;
         }
     }
     return $result;
 }