private static function create()
 {
     // Decide slug from Type selected
     if (self::$_quick_start_options['quick_start_type'] == 'city') {
         $name = 'Cities';
         $slug = 'cities';
     } else {
         if (self::$_quick_start_options['quick_start_type'] == 'zip') {
             $name = 'Zip Codes';
             $slug = 'zip-codes';
         } else {
             if (self::$_quick_start_options['quick_start_type'] == 'subdivision') {
                 $name = 'Subdivisions';
                 $slug = 'subdivisions';
             } else {
                 if (self::$_quick_start_options['quick_start_type'] == 'school_district') {
                     $name = 'School Districts';
                     $slug = 'school-districts';
                 } else {
                     if (self::$_quick_start_options['quick_start_type'] == 'school') {
                         $name = 'Schools';
                         $slug = 'schools';
                     }
                 }
             }
         }
     }
     // Create menu if needed
     if (self::$_quick_start_options['quick_start_parent_menu'] == 'new') {
         $menu_id = self::register_menu($name);
     } else {
         if (!empty(self::$_quick_start_options['quick_start_parent_menu']) && self::$_quick_start_options['quick_start_parent_menu'] != 'none') {
             $menu_id = self::$_quick_start_options['quick_start_parent_menu'];
         } else {
             $menu_id = false;
         }
     }
     // Create parent page if needed
     if (self::$_quick_start_options['quick_start_parent_page'] == 'new') {
         $parent_id = self::register_parent_page($name, $slug);
     } else {
         if (!empty(self::$_quick_start_options['quick_start_parent_page']) && self::$_quick_start_options['quick_start_parent_page'] != 'none') {
             $parent_id = self::$_quick_start_options['quick_start_parent_page'];
         } else {
             $parent_id = false;
         }
     }
     // Create pages for each
     $criteria_values = array_map('trim', explode("\n", self::$_quick_start_options['quick_start_criteria']));
     if (!empty($criteria_values)) {
         self::register_pages($criteria_values, self::$_quick_start_options['quick_start_type'], $menu_id, $parent_id);
     }
     // Remove Criteria to prevent looping creation
     self::$_quick_start_options['quick_start_criteria'] = '';
     DispletRetsIdxOptionsController::update_option('quick_start', self::$_quick_start_options);
 }
 public static function maybe_update()
 {
     $last_version = DispletRetsIdxOptionsController::get_option('version');
     // If last version still using old update methodology
     if (empty($last_version) || version_compare('2.0.26', $last_version, '>')) {
         $user_role_version = get_option('displet_rets_idx_user_role_version');
         if (empty($user_role_version) || $user_role_version < 2) {
             DispletRetsIdxLeadsModel::add_custom_user_role_for_leads();
             if ($user_role_version < 2) {
                 DispletRetsIdxUsersUpdatesController::upgrade_users_to_role_2();
             }
         }
         $version = get_option('displet_rets_idx_options_version');
         if (empty($version) || $version < 1) {
             if (empty($version) || $version < 1) {
                 DispletRetsIdxSettingsUpdatesController::update_settings_to_version_1();
             }
             update_option('displet_rets_idx_options_version', 1);
         }
     }
     // If last version not current
     if (version_compare(self::$_version, $last_version, '>')) {
         if (version_compare('2.0.24', $last_version, '>')) {
             self::update_to_2_0_24();
         }
         if (version_compare('2.0.25', $last_version, '>')) {
             self::update_to_2_0_25();
         }
         if (version_compare('2.0.26', $last_version, '>')) {
             self::update_to_2_0_26();
         }
         if (version_compare('2.0.27', $last_version, '>')) {
             self::update_to_2_0_27();
         }
         if (version_compare('2.0.30', $last_version, '>')) {
             self::update_to_2_0_30();
         }
         if (version_compare('2.0.31', $last_version, '>')) {
             self::update_to_2_0_31();
         }
         if (version_compare('2.0.46', $last_version, '>')) {
             self::update_to_2_0_46();
         }
         if (version_compare('2.1', $last_version, '>')) {
             self::update_to_2_1();
         }
         if (version_compare('2.1.4', $last_version, '>')) {
             self::update_to_2_1_4();
         }
         if (version_compare('2.1.10', $last_version, '>')) {
             self::update_to_2_1_10();
         }
         if (version_compare('2.1.17', $last_version, '>')) {
             self::update_to_2_1_17();
         }
         if (version_compare('2.1.18', $last_version, '>')) {
             self::update_to_2_1_18();
         }
         if (version_compare('2.1.19', $last_version, '>')) {
             self::update_to_2_1_19();
         }
         DispletRetsIdxOptionsController::update_option('version', self::$_version);
     }
 }
 public static function update_setting($key, $value)
 {
     $options = DispletRetsIdxOptionsController::get_option();
     $options[$key] = $value;
     DispletRetsIdxOptionsController::update_option('settings', $options);
 }
 public static function update_field_options($options, $update_settings_page = false)
 {
     if (!empty($options['displet_app_key'])) {
         $field_options = array('area_mls_defined' => self::get_field_values('area_mls_defined', $options['displet_app_key']), 'city' => self::get_field_values('city', $options['displet_app_key']), 'property_type' => self::get_field_values('property_type', $options['displet_app_key']), 'school_district' => self::get_field_values('school_district', $options['displet_app_key']), 'state' => self::get_field_values('state', $options['displet_app_key']), 'status' => self::get_field_values('status', $options['displet_app_key']), 'zip' => self::get_field_values('zip', $options['displet_app_key']));
         foreach ($field_options as $field => $value) {
             if (is_array($value)) {
                 foreach ($value as $key => $val) {
                     $value[$val] = $val;
                     unset($value[$key]);
                 }
             } else {
                 $value = array();
             }
             if ($update_settings_page) {
                 self::$_settings_page->update_field($field . '_include_filter', $value);
             }
         }
         DispletRetsIdxOptionsController::update_option('fields', $field_options);
         do_action('displetretsidx_post_field_options_update', $field_options);
     }
 }
 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);
     }
 }