private function generate_field(Field $field, $form, $data_source) { $domain = $data_source . '_' . $this->domain_name; $year_range = "'-" . (date("Y") - 1900) . ":+" . (2500 - date("Y")) . "'"; $column_left_class = "column column-left " . str_replace('_', '-', $data_source); $column_right_class = "column column-right " . str_replace('_', '-', $data_source); switch ($field->field_coordinates) { case 1: $field->prefix = '<div class="' . $column_left_class . '">'; break; case 2: $field->suffix = '</div>'; break; case 3: $field->prefix = '<div class="' . $column_right_class . '">'; break; case 4: $field->suffix = '</div>'; break; } switch ($field->field_type) { case FieldType::DateFilter: //date_filter $domain_field = "{$data_source}_{$this->domain_name}_date_filter"; //$domain_field = 'date_filter'; $form[$domain][$domain_field]['#type'] = FieldType::RadioButtons; $form[$domain][$domain_field]['#title'] = t('Date Filter'); $form[$domain][$domain_field]['#options'] = array('Year', 'Issue Date'); $form[$domain][$domain_field]['#prefix'] = $field->prefix . '<div class="datafield datefilter clearfix">'; $form[$domain][$domain_field]['#suffix'] = '</div>'; $form[$domain][$domain_field]['#attributes'] = array('class' => array('watch')); $form[$domain][$domain_field]['#default_value'] = ''; //year_filter_start //$domain_field = 'year_filter_start'; $domain_field = "{$data_source}_{$this->domain_name}_year_filter_start"; $form[$domain][$domain_field]['#markup'] = '<div class="datafield year-filters last-item">'; //issue_date_from //$domain_field = "{$this->domain_name}_issue_date_from"; $domain_field = "{$data_source}_{$this->domain_name}_issue_date_from"; $form[$domain][$domain_field]['#type'] = FieldType::DatePopup; $form[$domain][$domain_field]['#date_format'] = 'Y-m-d'; $form[$domain][$domain_field]['#date_year_range'] = $year_range; $form[$domain][$domain_field]['#prefix'] = '<div class="datafield datarange issueddate"><div class="ranges">'; $form[$domain][$domain_field]['#default_value'] = ''; // //Hidden Field // $domain_field = "{$data_source}_{$this->domain_name}_issue_date_from_exact"; // $form[$domain][$domain_field]['#type'] = FieldType::HiddenField; // $form[$domain][$domain_field]['#name'] = $domain_field; //issue_date_to //$domain_field = "{$this->domain_name}_issue_date_to"; $domain_field = "{$data_source}_{$this->domain_name}_issue_date_to"; $form[$domain][$domain_field]['#type'] = FieldType::DatePopup; $form[$domain][$domain_field]['#title'] = t('to'); $form[$domain][$domain_field]['#date_format'] = 'Y-m-d'; $form[$domain][$domain_field]['#date_year_range'] = $year_range; $form[$domain][$domain_field]['#suffix'] = '</div></div>'; $form[$domain][$domain_field]['#default_value'] = ''; //Hidden Field // $domain_field = "{$data_source}_{$this->domain_name}_issue_date_to_exact"; // // $form[$domain][$domain_field]['#type'] = FieldType::HiddenField; // $form[$domain][$domain_field]['#name'] = $domain_field; //fiscal_year //$domain_field = "{$this->domain_name}_fiscal_year"; $domain_field = "{$data_source}_{$this->domain_name}_fiscal_year"; $form[$domain][$domain_field]['#type'] = FieldType::DropDown; $form[$domain][$domain_field]['#options'] = _checkbook_advanced_search_get_year($this->domain_name, $data_source); $form[$domain][$domain_field]['#default_value'] = 'fy~' . _getCurrentYearID(); $form[$domain][$domain_field]['#attributes'] = array('class' => array('watch'), 'default_selected_value' => 'fy~' . _getCurrentYearID()); $form[$domain][$domain_field]['#prefix'] = '<div class="datafield year">'; $form[$domain][$domain_field]['#suffix'] = '</div>'; //year_filter_end // $domain_field = 'year_filter_end'; $domain_field = "{$data_source}_{$this->domain_name}_year_filter_end"; if (!is_null($field->suffix)) { $form[$domain][$domain_field]['#markup'] = '</div>' . $field->suffix; } else { $form[$domain][$domain_field]['#markup'] = '</div>'; } break; case FieldType::DropDown: $domain_field = "{$data_source}_{$this->domain_name}_{$field->field_name}"; if (!is_null($field->prefix)) { $form[$domain][$domain_field]['#prefix'] = $field->prefix; } if (!is_null($field->suffix)) { $form[$domain][$domain_field]['#suffix'] = $field->suffix; } $form[$domain][$domain_field]['#type'] = $field->field_type; $form[$domain][$domain_field]['#title'] = $field->getFieldTitle(); $form[$domain][$domain_field]['#default_value'] = $field->getDropDownDefault(); $form[$domain][$domain_field]['#options'] = $field->getDropDownOptions(); $form[$domain][$domain_field]['#validated'] = true; if (!is_null($field->disabled)) { $form[$domain][$domain_field]['#disabled'] = $field->disabled; } if (!is_null($field->option_attributes)) { $form[$domain][$domain_field]['#option_attributes'] = $field->option_attributes; } break; case FieldType::RadioButtons: $domain_field = "{$this->domain_name}_{$field->field_name}"; if (!is_null($field->prefix)) { $form[$domain][$domain_field]['#prefix'] = $field->prefix; } $form[$domain][$domain_field]['#type'] = FieldType::RadioButtons; if (!is_null($field->default_value)) { $form[$domain][$domain_field]['#default_value'] = $field->default_value; } if (!is_null($field->options)) { $form[$domain][$domain_field]['#options'] = $field->options; } break; case FieldType::RangeField: //From $domain_field = "{$data_source}_{$this->domain_name}_{$field->field_name}_from"; $css_name = str_replace('_', '-', $field->field_name); $form[$domain][$domain_field]['#type'] = FieldType::TextField; if (!is_null($field->size)) { $form[$domain][$domain_field]['#size'] = $field->size; } else { $form[$domain][$domain_field]['#size'] = 30; } //Default if (!is_null($field->maxlength)) { $form[$domain][$domain_field]['#maxlength'] = $field->maxlength; } else { $form[$domain][$domain_field]['#maxlength'] = 32; } //Default if (!is_null($field->prefix)) { $form[$domain][$domain_field]['#prefix'] = $field->prefix . '<div class="form-item form-item-' . $css_name . '"><label>' . $field->getFieldTitle() . '</label><div class="ranges">'; } else { $form[$domain][$domain_field]['#prefix'] = '<div class="form-item form-item-' . $css_name . '"><label>' . $field->getFieldTitle() . '</label><div class="ranges">'; } //To $domain_field = "{$data_source}_{$this->domain_name}_{$field->field_name}_to"; $form[$domain][$domain_field]['#type'] = FieldType::TextField; $form[$domain][$domain_field]['#title'] = t('TO'); if (!is_null($field->size)) { $form[$domain][$domain_field]['#size'] = $field->size; } else { $form[$domain][$domain_field]['#size'] = 30; } //Default if (!is_null($field->maxlength)) { $form[$domain][$domain_field]['#maxlength'] = $field->maxlength; } else { $form[$domain][$domain_field]['#maxlength'] = 32; } //Default if (!is_null($field->suffix)) { $form[$domain][$domain_field]['#suffix'] = '</div></div>' . $field->suffix; } else { $form[$domain][$domain_field]['#suffix'] = '</div></div>'; } break; case FieldType::RangeDateField: //From $domain_field = "{$data_source}_{$this->domain_name}_{$field->field_name}_from"; $css_name = str_replace('_', '-', $field->field_name); $form[$domain][$domain_field]['#type'] = FieldType::DatePopup; $form[$domain][$domain_field]['#date_format'] = 'Y-m-d'; $form[$domain][$domain_field]['#date_year_range'] = $year_range; if (!is_null($field->prefix)) { $form[$domain][$domain_field]['#prefix'] = $field->prefix . '<div class="form-item form-item-' . $css_name . '"><label>' . $field->getFieldTitle() . '</label><div class="ranges">'; } else { $form[$domain][$domain_field]['#prefix'] = '<div class="form-item form-item-' . $css_name . '"><label>' . $field->getFieldTitle() . '</label><div class="ranges">'; } //To $domain_field = "{$data_source}_{$this->domain_name}_{$field->field_name}_to"; $form[$domain][$domain_field]['#type'] = FieldType::DatePopup; $form[$domain][$domain_field]['#date_format'] = 'Y-m-d'; $form[$domain][$domain_field]['#title'] = t('TO'); if (!is_null($field->suffix)) { $form[$domain][$domain_field]['#suffix'] = '</div></div>' . $field->suffix; } else { $form[$domain][$domain_field]['#suffix'] = '</div></div>'; } break; case FieldType::SubmitField: $submit_class = "{$this->domain_name}-submit " . str_replace('_', '-', $data_source); //Next Button - visible for create alerts $domain_field = "{$this->domain_name}_next"; $form[$domain][$domain_field]['#type'] = 'button'; $form[$domain][$domain_field]['#name'] = $domain_field; $form[$domain][$domain_field]['#value'] = t('Next'); $form[$domain][$domain_field]['#prefix'] = t('<div class="' . $submit_class . '">'); $form[$domain][$domain_field]['#ajax'] = array('callback' => '_checkbook_advanced_search_create_alert_results_ajax', 'event' => 'click', 'progress' => array('type' => 'none')); //Submit Button $domain_field = "{$this->domain_name}_submit"; $form[$domain][$domain_field]['#type'] = $field->field_type; $form[$domain][$domain_field]['#name'] = $domain_field; $form[$domain][$domain_field]['#value'] = t('Submit'); //Clear All Button $domain_field = "{$this->domain_name}_clear"; $form[$domain][$domain_field]['#type'] = $field->field_type; $form[$domain][$domain_field]['#value'] = t('Clear All'); end($this->contents); $endKey = key($this->contents); if ($data_source == $endKey) { $form[$domain][$domain_field]['#suffix'] = '</div></div>'; } else { $form[$domain][$domain_field]['#suffix'] = '</div>'; } break; case FieldType::TextField: $domain_field = "{$data_source}_{$this->domain_name}_{$field->field_name}"; $form[$domain][$domain_field]['#type'] = FieldType::TextField; $form[$domain][$domain_field]['#title'] = $field->getFieldTitle(); if (!is_null($field->size)) { $form[$domain][$domain_field]['#size'] = $field->size; } else { $form[$domain][$domain_field]['#size'] = 30; } //Default if (!is_null($field->maxlength)) { $form[$domain][$domain_field]['#maxlength'] = $field->maxlength; } else { $form[$domain][$domain_field]['#maxlength'] = 32; } //Default if (!is_null($field->prefix)) { $form[$domain][$domain_field]['#prefix'] = $field->prefix; } //Hidden $domain_field = "{$data_source}_{$this->domain_name}_{$field->field_name}_exact"; $form[$domain][$domain_field]['#type'] = FieldType::HiddenField; $form[$domain][$domain_field]['#name'] = $domain_field; if (!is_null($field->suffix)) { $form[$domain][$domain_field]['#suffix'] = $field->suffix; } break; } return $form; }