Craft\AmForms_ExportsService::_addExportCriteria PHP Method

_addExportCriteria() private method

Add export criteria.
private _addExportCriteria ( craft\AmForms_ExportModel $export, &$criteria ) : boolean
$export craft\AmForms_ExportModel
return boolean
    private function _addExportCriteria(AmForms_ExportModel $export, &$criteria)
    {
        // Do we even have criteria?
        if (!$export->criteria) {
            return false;
        }
        // Get form
        $form = craft()->amForms_forms->getFormById($export->formId);
        if (!$form) {
            return false;
        }
        // Gather related criteria
        $relatedTo = array('or');
        // Get fields
        $fields = $this->getExportFields($form);
        foreach ($fields as $field) {
            if (is_array($field)) {
                $field = (object) $field;
                // Fix standard fields
            }
            // Is field set in criteria?
            if (!isset($export->criteria[$field->id])) {
                continue;
            }
            // Add criteria based on field type
            switch ($field->type) {
                case 'Assets':
                case 'Entries':
                    foreach ($export->criteria[$field->id] as $criteriaValue) {
                        if (!empty($criteriaValue) && is_array($criteriaValue) && count($criteriaValue)) {
                            $relatedTo[] = $criteriaValue[0];
                        }
                    }
                    break;
                case 'Checkboxes':
                    $setCriteria = array('or');
                    foreach ($export->criteria[$field->id] as $criteriaValue) {
                        if (!empty($criteriaValue)) {
                            foreach ($criteriaValue as $subCriteriaValue) {
                                $setCriteria[] = '*"' . $subCriteriaValue . '"*';
                            }
                        }
                    }
                    $criteria->{$field->handle} = $setCriteria;
                    break;
                case 'Lightswitch':
                    $valueFound = false;
                    foreach ($export->criteria[$field->id] as $criteriaValue) {
                        if (!empty($criteriaValue)) {
                            $valueFound = true;
                            $criteria->{$field->handle} = $criteriaValue;
                        }
                    }
                    if (!$valueFound) {
                        $criteria->{$field->handle} = 'not 1';
                    }
                    break;
                case 'Dropdown':
                case 'PlainText':
                case 'RadioButtons':
                    $setCriteria = array('or');
                    foreach ($export->criteria[$field->id] as $criteriaValue) {
                        if (!empty($criteriaValue)) {
                            $setCriteria[] = $criteriaValue;
                        }
                    }
                    $criteria->{$field->handle} = $setCriteria;
                    break;
            }
        }
        // Set relations criteria
        if (count($relatedTo) > 1) {
            $criteria->relatedTo = $relatedTo;
        }
    }