public static function get_similar_properties()
 {
     if (!empty(self::$_model['listings'][0]) && !empty(self::$_model['listings'][0]->zip)) {
         $args = array('zip' => self::$_model['listings'][0]->zip);
         if (!empty(self::$_model['listings'][0]->list_price)) {
             $price = intval(self::$_model['listings'][0]->list_price);
             $args['min_list_price'] = intval($price * 0.75 / 1000);
             $args['max_list_price'] = intval($price * 1.25 / 1000);
         }
         if (!empty(self::$_model['listings'][0]->square_feet)) {
             $square_feet = intval(self::$_model['listings'][0]->square_feet);
             $args['min_square_feet'] = intval($square_feet * 0.75);
             $args['max_square_feet'] = intval($square_feet * 1.25);
         }
         if (!empty(self::$_model['listings'][0]->subdivision)) {
             $args['subdivision'] = self::$_model['listings'][0]->subdivision;
         }
         $residentials = new DispletRetsIdxResidentials($args);
         $results = $residentials->get_residentials();
         $count = !empty($results['meta']->count) ? intval($results['meta']->count) : 0;
         $listings = !empty($results['listings']) ? $results['listings'] : array();
         if ($count < 10 && $count < self::$_options['listings_per_page'] && !empty($args['subdivision'])) {
             unset($args['subdivision']);
             if (!empty(self::$_model['listings'][0]->list_price)) {
                 $price = intval(self::$_model['listings'][0]->list_price);
                 $args['min_list_price'] = intval($price * 0.85 / 1000);
                 $args['max_list_price'] = intval($price * 1.15 / 1000);
             }
             if (!empty(self::$_model['listings'][0]->square_feet)) {
                 $square_feet = intval(self::$_model['listings'][0]->square_feet);
                 $args['min_square_feet'] = intval($square_feet * 0.85);
                 $args['max_square_feet'] = intval($square_feet * 1.15);
             }
             $residentials = new DispletRetsIdxResidentials($args);
             $results = $residentials->get_residentials();
             if (!empty($results['listings'])) {
                 $listings = array_merge($listings, $results['listings']);
             }
         }
         if (!empty($listings) && is_array($listings)) {
             $i = 0;
             $listings_by_id = array();
             foreach ($listings as $listing) {
                 if ($i < self::$_options['listings_per_page'] && !empty($listing->id) && $listing->id !== self::$_model['listings'][0]->id) {
                     $listings_by_id[$listing->id] = $listing;
                     $i++;
                 }
             }
             self::$_model['similar_listings'] = array_values($listings_by_id);
         }
     }
 }
 public static function render_shortcode($attributes)
 {
     $model = shortcode_atts(array('orientation' => self::$_options['listings_orientation'], 'price_navigation' => self::$_options['include_price_navigation'], 'price_navigation_prices' => self::$_options['price_navigation_prices'], 'property_type_navigation' => self::$_options['include_property_type_navigation'], 'property_type_sorting' => self::$_options['include_property_type_sorting'], 'stats' => self::$_options['include_stats'], 'layout' => self::$_options['listings_layout'], 'listings' => true, 'caption' => '', 'minlistprice' => '', 'min_list_price' => '', 'maxlistprice' => '', 'max_list_price' => '', 'minbedrooms' => '', 'min_bedrooms' => '', 'maxbedrooms' => '', 'max_bedrooms' => '', 'minbathrooms' => '', 'min_bathrooms' => '', 'maxbathrooms' => '', 'max_bathrooms' => '', 'minsquarefeet' => '', 'min_square_feet' => '', 'maxsquarefeet' => '', 'max_square_feet' => '', 'quick_terms' => '', 'area_mls_defined' => '', 'city' => '', 'property_type' => '', 'minstories' => '', 'min_stories' => '', 'waterfront' => '', 'pool_on_property' => '', 'subdivision' => '', 'keyword' => '', 'school' => '', 'school_district' => '', 'minacres' => '', 'min_acres' => '', 'zip' => '', 'is_foreclosure' => '', 'yearbuilt' => '', 'year_built' => '', 'county' => '', 'status' => '', 'short_sale' => '', 'last_modified' => '', 'listing_agent_id' => '', 'listing_office_id' => '', 'min_lot_size' => '', 'is_gated_community' => '', 'min_sold_date' => '', 'max_sold_date' => '', 'master_on_main' => '', 'basement' => '', 'min_square_feet_available' => '', 'max_square_feet_available' => '', 'min_price_per_sq_feet' => '', 'max_price_per_sq_feet' => '', 'street_name' => '', 'street_number' => '', 'listed_since' => '', 'sort_by' => '', 'direction' => '', 'mls_number' => '', 'poly' => ''), $attributes);
     $model['show_listings'] = $model['listings'];
     $model['listings'] = false;
     $model = self::get_lowercase_yes_no_model($model);
     $model = self::set_residentials_args($model);
     $residentials = new DispletRetsIdxResidentials($model);
     $listings = $residentials->get_residentials();
     $model = array_merge($model, $listings);
     $templates = new DispletRetsIdxTemplates(self::_get_model_for_templates($model));
     return $templates->get_templates();
 }
 public static function get_office_id_ajax()
 {
     check_ajax_referer('displet_get_office_id_nonce');
     if (isset($_POST['action']) && $_POST['action'] == 'displet_get_office_id_request' && !empty($_POST['mls_number'])) {
         $residentials = new DispletRetsIdxResidentials(array('return_fields' => 'listing_agent_id', 'mls_number' => $_POST['mls_number']));
         $results = $residentials->get_residentials();
         if (!empty($results['listings'][0]->listing_office_id)) {
             echo $results['listings'][0]->listing_office_id;
             die;
         }
     }
     echo 'Failed';
     die;
 }
 private static function get_residentials()
 {
     $residentials = new DispletRetsIdxResidentials(self::$_model);
     $results = $residentials->get_residentials();
     if (self::$_model['is_property_details_page'] && self::$_model['is_property_showcase_page'] && empty($results['listings'][0])) {
         self::$_model['data_from'] = 'api';
         $residentials = new DispletRetsIdxResidentials(self::$_model);
         $results = $residentials->get_residentials();
     }
     if ((self::$_model['is_property_details_page'] || self::$_model['is_property_update_page']) && empty($results['listings'][0])) {
         $residentials->swap_id_for_sysid();
         $results = $residentials->get_residentials();
     }
     if (!empty($results) && is_array($results)) {
         self::$_model = array_merge(self::$_model, $results);
     }
 }
});
</script>
<?php 
global $displetretsidx_option;
$user_id = get_current_user_id();
$saved_properties = get_user_meta($user_id, 'displet_saved_properties', true);
$has_favorites = $has_possibilities = $has_notes = false;
$property_details_url = get_permalink($displetretsidx_option['property_details_page_id']);
if (!empty($saved_properties)) {
    $saved_favorites = array();
    $saved_possibilities = array();
    $saved_notes = array();
    foreach ($saved_properties as $key => $saved_property) {
        if (!empty($saved_property['sysid'])) {
            $model = array('id' => $saved_property['sysid']);
            $residentials = new DispletRetsIdxResidentials($model);
            $listing = $residentials->get_residentials();
            $saved_property = array_merge($saved_property, $listing);
            //$saved_property['listings'][0]->address = trim($saved_property['listings'][0]->street_number . ' ' . $saved_property['listings'][0]->street_name . ' ' . $saved_property['listings'][0]->street_post_dir);
        }
        if ($saved_property['type'] == 'favorite') {
            $saved_favorites[$key] = $saved_property;
        } else {
            if ($saved_property['type'] == 'possibility') {
                $saved_possibilities[$key] = $saved_property;
            } else {
                if ($saved_property['type'] == 'notes') {
                    $saved_notes[$key] = $saved_property;
                }
            }
        }
示例#6
0
/**
 * @param: $criteria: array( 'field' => 'value' )
 * @return: success - array() of query args
 * @return: failure - boolean: false
 */
function displetretsidx_get_query_args($criteria = false)
{
    $residentials = new DispletRetsIdxResidentials($criteria);
    $args = $residentials->get_query_args();
    if (!empty($args)) {
        return $args;
    }
    return false;
}
 public static function get_property_showcase_listings_ajax()
 {
     check_ajax_referer('displet_get_property_showcase_listings_nonce');
     if (isset($_POST['action']) && $_POST['action'] == 'displet_get_property_showcase_listings_request' && !empty($_POST['residential_args'])) {
         foreach ($_POST['residential_args'] as $key => $value) {
             if ($value === 'true') {
                 $_POST['residential_args'][$key] = true;
             } else {
                 if ($value === 'false') {
                     $_POST['residential_args'][$key] = false;
                 }
             }
         }
         if (!empty($_POST['residential_args']['is_shortcode'])) {
             $_POST['residential_args']['is_shortcode'] = false;
         }
         $residentials = new DispletRetsIdxResidentials($_POST['residential_args']);
         $listings = $residentials->get_residentials();
         if (!empty($listings)) {
             echo json_encode($listings);
         }
         die;
     }
     echo 'Error';
     die;
 }
 public function widget($args, $instance)
 {
     $title = apply_filters('widget_title', $instance['title']);
     if (isset($instance['settings']['criteria']) && is_array($instance['settings']['criteria'])) {
         $settings = $instance['settings']['criteria'];
     } else {
         $settings = false;
     }
     echo $args['before_widget'];
     if ($title) {
         echo $args['before_title'];
         echo $title;
         echo $args['after_title'];
     }
     if ($settings) {
         $model = array();
         if (is_array($settings)) {
             foreach ($settings as $key => $value) {
                 $new_key = strtolower($key);
                 $model[$new_key] = $value;
             }
         }
         $model['is_widget'] = true;
         $residentials = new DispletRetsIdxResidentials($model);
         $listings = $residentials->get_residentials();
         $model = !empty($listings) ? array_merge($model, $listings) : $model;
         $model['visible'] = !empty($instance['visible']) && is_numeric($instance['visible']) ? $instance['visible'] : 1;
         echo DispletRetsIdxTemplatesController::get_template('displet-sidescroller-widget.php', $model);
     } else {
         if (current_user_can('manage_options')) {
             echo '<i>Please configure your DispletReader widget.</i>';
         }
     }
     echo $args['after_widget'];
 }