private static function maybe_build_page()
 {
     if (self::$_model['is_lead_manager_page']) {
         DispletRetsIdxLeadManagerPageController::build();
     } else {
         if (self::$_model['is_saved_properties_page']) {
             DispletRetsIdxSavedPropertiesPageController::build();
         } else {
             if (self::$_model['is_saved_searches_page']) {
                 DispletRetsIdxSavedSearchesPageController::build();
             } else {
                 if (self::$_model['is_search_forms_page']) {
                     DispletRetsIdxSearchFormsPageController::build();
                 }
             }
         }
     }
 }
 public static function set_search_forms_from_widget_areas()
 {
     $widget_areas = get_option('sidebars_widgets');
     if (!empty($widget_areas) && is_array($widget_areas)) {
         $search_forms = array(array(), array(), array(), array(), array());
         foreach ($widget_areas as $widget_area => $widgets) {
             if (!empty($widgets)) {
                 if ($widget_area === 'displetretsidx-quick-search-form-mobile') {
                     $search_forms[2][0] = $widgets;
                 } else {
                     if ($widget_area === 'displetretsidx-search-form-mobile') {
                         $search_forms[3][0] = $widgets;
                     } elseif (strpos($widget_area, 'displetretsidx-search-form-advanced-') !== false) {
                         $column_id = intval(str_replace('displetretsidx-search-form-advanced-', '', $widget_area)) - 1;
                         $search_forms[1][$column_id] = $widgets;
                     } else {
                         if (strpos($widget_area, 'displetretsidx-search-form-') !== false) {
                             $column_id = intval(str_replace('displetretsidx-search-form-', '', $widget_area)) - 1;
                             $search_forms[0][$column_id] = $widgets;
                         } else {
                             preg_match('/displetretsidx-quick-search-(\\d{1})-form-(\\d*)/', $widget_area, $matches);
                             if (!empty($matches)) {
                                 $form_id = intval($matches[1]) + 3;
                                 $column_id = intval($matches[2]) - 1;
                                 $search_forms[$form_id][$column_id] = $widgets;
                             }
                         }
                     }
                 }
             }
         }
         $widgets = get_option('widget_displetretsidxsearchfield');
         if (!empty($widgets)) {
             foreach ($search_forms as &$form) {
                 if (!empty($form)) {
                     foreach ($form as &$column) {
                         if (!empty($column) && is_array($column)) {
                             foreach ($column as &$field) {
                                 if (strpos($field, 'displetretsidxsearchfield-') !== false) {
                                     $key = intval(str_replace('displetretsidxsearchfield-', '', $field));
                                     $field = $widgets[$key]['field'];
                                 }
                             }
                         }
                     }
                 }
             }
             DispletRetsIdxSearchFormsPageController::set_search_forms($search_forms, true);
         }
     }
 }
 public static function set_search_forms($search_forms, $from_update = false)
 {
     if (!empty($search_forms)) {
         if ($from_update && empty(self::$_model)) {
             self::$_model = array();
         }
         self::_set_defaults();
         self::_set_field_options();
         foreach ($search_forms as &$form) {
             if (!empty($form)) {
                 foreach ($form as &$column) {
                     if (!empty($column)) {
                         foreach ($column as &$field) {
                             if (!empty(self::$_model['search_fields'][$field])) {
                                 $new_field = array('label' => !empty(self::$_model['search_fields'][$field]['label']) ? self::$_model['search_fields'][$field]['label'] : self::$_model['search_fields'][$field]['title'], 'field' => $field, 'options' => self::$_model['search_fields'][$field]['options'], 'min' => self::$_model['search_fields'][$field]['range']['min'], 'max' => self::$_model['search_fields'][$field]['range']['max'], 'increment' => self::$_model['search_fields'][$field]['range']['increment']);
                                 if ($from_update) {
                                     if ($field === 'price' || $field === 'price_max' || $field === 'price_min') {
                                         if (!empty(self::$_options['search_values_custom_prices'])) {
                                             $new_field['range'] = array_map(array('DispletRetsIdxUtilities', 'increase_by_three_orders_of_magnitude'), array_map('trim', explode("\n", self::$_options['search_values_custom_prices'])));
                                         }
                                         if (!empty(self::$_options['search_values_min_price'])) {
                                             $new_field['min'] = intval(self::$_options['search_values_min_price']) * 1000;
                                         }
                                         if (!empty(self::$_options['search_values_max_price'])) {
                                             $new_field['max'] = intval(self::$_options['search_values_max_price']) * 1000;
                                         }
                                         if (!empty(self::$_options['search_values_price_increment'])) {
                                             $new_field['increment'] = intval(self::$_options['search_values_price_increment']) * 1000;
                                         }
                                     } else {
                                         if ($field === 'beds' || $field === 'beds_max' || $field === 'beds_baths') {
                                             if (!empty(self::$_options['search_values_beds_min'])) {
                                                 $new_field['min'] = intval(self::$_options['search_values_beds_min']);
                                             }
                                             if (!empty(self::$_options['search_values_beds_max'])) {
                                                 $new_field['max'] = intval(self::$_options['search_values_beds_max']);
                                             }
                                         } else {
                                             if ($field === 'baths' || $field === 'baths_max') {
                                                 if (!empty(self::$_options['search_values_baths_min'])) {
                                                     $new_field['min'] = intval(self::$_options['search_values_baths_min']);
                                                 }
                                                 if (!empty(self::$_options['search_values_baths_max'])) {
                                                     $new_field['max'] = intval(self::$_options['search_values_baths_max']);
                                                 }
                                             } else {
                                                 if ($field === 'square_feet' || $field === 'square_feet_max' || $field === 'square_feet_min') {
                                                     if (!empty(self::$_options['search_values_min_square_feet'])) {
                                                         $new_field['min'] = intval(self::$_options['search_values_min_square_feet']);
                                                     }
                                                     if (!empty(self::$_options['search_values_max_square_feet'])) {
                                                         $new_field['max'] = intval(self::$_options['search_values_max_square_feet']);
                                                     }
                                                     if (!empty(self::$_options['search_values_square_feet_increment'])) {
                                                         $new_field['increment'] = intval(self::$_options['search_values_square_feet_increment']);
                                                     }
                                                 } else {
                                                     if ($field === 'acres_min') {
                                                         if (!empty(self::$_options['search_values_min_acres'])) {
                                                             $new_field['min'] = floatval(self::$_options['search_values_min_acres']);
                                                         }
                                                         if (!empty(self::$_options['search_values_max_acres'])) {
                                                             $new_field['max'] = floatval(self::$_options['search_values_max_acres']);
                                                         }
                                                         if (!empty(self::$_options['search_values_acres_increment'])) {
                                                             $new_field['increment'] = floatval(self::$_options['search_values_acres_increment']);
                                                         }
                                                     } else {
                                                         if ($field === 'property_type' || $field === 'property_type_select') {
                                                             if (!empty(self::$_options['search_values_property_types'])) {
                                                                 $property_types = array_filter(self::$_options['search_values_property_types'], array('DispletRetsIdxUtilities', 'remove_false_as_string'));
                                                                 if (!empty($property_types)) {
                                                                     $new_field['options'] = array_keys($property_types);
                                                                 }
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                                 $field = $new_field;
                             }
                         }
                     }
                 }
             }
         }
         DispletRetsIdxOptionsController::update_option('search_forms', $search_forms);
     }
 }