/**
  * Function to get the widget code by title
  *
  * @param string $title
  * @return html code for showing the widget
  */
 public static function get_widget_by_uid($uid)
 {
     $idx_api = new \IDX\Idx_Api();
     $idx_widgets = $idx_api->idx_api_get_widgetsrc();
     $idx_widget_code = null;
     if ($idx_widgets) {
         foreach ($idx_widgets as $widget) {
             if (strcmp($widget->uid, $uid) == 0) {
                 $idx_widget_link = $widget->url;
                 //only load leaflet scripts and styles for map search widget. WP takes care of duplicates automatically
                 if (strpos($idx_widget_link, 'mapwidgetjs.php')) {
                     wp_enqueue_script('custom-scriptLeaf', '//idxdyncdn.idxbroker.com/graphical/javascript/leaflet.js', __FILE__);
                     wp_enqueue_script('custom-scriptMQ', '//www.mapquestapi.com/sdk/leaflet/v1.0/mq-map.js?key=Gmjtd%7Cluub2h0rn0%2Crx%3Do5-lz1nh', __FILE__);
                     wp_enqueue_style('cssLeaf', '//idxdyncdn.idxbroker.com/graphical/css/leaflet-1.000.css');
                     $idx_widget_code = "<script src=\"{$idx_widget_link}\" defer></script>";
                 } else {
                     $idx_widget_code = "<script src=\"{$idx_widget_link}\"></script>";
                 }
                 return $idx_widget_code;
             }
 /**
  * Update existing post
  * @return true if success
  */
 public static function impress_agents_update_post()
 {
     // Load IDX Broker API Class and retrieve agents
     $_idx_api = new \IDX\Idx_Api();
     $agents = $_idx_api->idx_api('agents', $apiversion = '1.2.2', $level = 'clients', $params = array(), $expiration = 7200, $request_type = 'GET', $json_decode_type = true);
     // Load WP options
     $idx_agent_wp_options = get_option('impress_agents_idx_agent_wp_options');
     $impa_options = get_option('plugin_impress_agents_settings');
     foreach ($agents as $agent) {
         foreach ($agent as $a) {
             if (isset($idx_agent_wp_options[$a['agentID']]['post_id'])) {
                 // Update agent data
                 if (!isset($impa_options['impress_agents_idx_update']) || isset($impa_options['impress_agents_idx_update']) && $impa_options['impress_agents_idx_update'] != 'update-none') {
                     self::impress_agents_idx_insert_post_meta($idx_agent_wp_options[$a['agentID']]['post_id'], $a, true, false);
                 }
                 $idx_agent_wp_options[$a['agentID']]['updated'] = date("m/d/Y h:i:sa");
             }
         }
     }
     update_option('impress_agents_idx_agent_wp_options', $idx_agent_wp_options);
 }
예제 #3
0
<?php

namespace IDX\Views;

if (!current_user_can('manage_options')) {
    wp_die(__('You do not have sufficient permissions to access this page.'));
}
global $api_error;
$idx_api = new \IDX\Idx_Api();
if (!$api_error) {
    $system_links = $idx_api->idx_api_get_systemlinks();
    if (is_wp_error($system_links)) {
        $api_error = $system_links->get_error_message();
    }
}
/**
 * check wrapper page exist or not
 */
$wrapper_page_id = get_option('idx_broker_dynamic_wrapper_page_id');
$post_title = '';
$wrapper_page_url = '';
if ($wrapper_page_id) {
    if (!get_page_uri($wrapper_page_id)) {
        update_option('idx_broker_dynamic_wrapper_page_id', '');
        $wrapper_page_id = '';
    } else {
        $post_title = get_post($wrapper_page_id)->post_title;
        $wrapper_page_url = get_page_link($wrapper_page_id);
    }
}
?>
예제 #4
0
 /**
  * Update existing post
  * @return true if success
  */
 public static function wp_listings_update_post()
 {
     // Load IDX Broker API Class and retrieve featured properties
     $_idx_api = new \IDX\Idx_Api();
     $properties = $_idx_api->client_properties('featured');
     // Load WP options
     $idx_featured_listing_wp_options = get_option('wp_listings_idx_featured_listing_wp_options');
     $wpl_options = get_option('plugin_wp_listings_settings');
     foreach ($properties as $prop) {
         $key = self::get_key($properties, 'listingID', $prop['listingID']);
         if (isset($idx_featured_listing_wp_options[$prop['listingID']]['post_id']) && $idx_featured_listing_wp_options[$prop['listingID']]['listingID'] != $prop['listingID']) {
             self::wp_listings_idx_change_post_status($idx_featured_listing_wp_options[$prop['listingID']]['post_id'], 'draft');
         } elseif (isset($idx_featured_listing_wp_options[$prop['listingID']]['post_id'])) {
             // Update property data
             if (class_exists('Equity_Idx_Api')) {
                 require_once ABSPATH . 'wp-content/themes/equity/lib/idx/class.Equity_Idx_Api.inc.php';
                 $_equity_idx = new Equity_Idx_Api();
                 $equity_properties = $_equity_idx->equity_listing_ID($prop['idxID'], $prop['listingID']);
                 if ($equity_properties == false) {
                     $equity_properties = $properties[$key];
                     delete_transient('equity_listing_' . $prop['listingID']);
                 }
                 if (!isset($wpl_options['wp_listings_idx_update']) || isset($wpl_options['wp_listings_idx_update']) && $wpl_options['wp_listings_idx_update'] != 'update-none') {
                     self::wp_listings_idx_insert_post_meta($idx_featured_listing_wp_options[$prop['listingID']]['post_id'], $equity_properties, true, $wpl_options['wp_listings_idx_update'] == 'update-noimage' ? false : true);
                 }
                 $idx_featured_listing_wp_options[$prop['listingID']]['updated'] = date("m/d/Y h:i:sa");
             } else {
                 if (!isset($wpl_options['wp_listings_idx_update']) || isset($wpl_options['wp_listings_idx_update']) && $wpl_options['wp_listings_idx_update'] != 'update-none') {
                     self::wp_listings_idx_insert_post_meta($idx_featured_listing_wp_options[$prop['listingID']]['post_id'], $properties[$key], true, $wpl_options['wp_listings_idx_update'] == 'update-noimage' ? false : true);
                 }
                 $idx_featured_listing_wp_options[$prop['listingID']]['updated'] = date("m/d/Y h:i:sa");
             }
         }
     }
     // Load and loop through Sold properties
     $sold_properties = $_idx_api->client_properties('soldpending');
     foreach ($sold_properties as $prop) {
         $key = self::get_key($sold_properties, 'listingID', $prop['listingID']);
         if (isset($idx_featured_listing_wp_options[$prop['listingID']]['post_id'])) {
             // Update property data
             self::wp_listings_idx_insert_post_meta($idx_featured_listing_wp_options[$prop['listingID']]['post_id'], $sold_properties[$key], true, $wpl_options['wp_listings_idx_update'] == 'update-noimage' ? false : true);
             if (isset($wpl_options['wp_listings_idx_sold']) && $wpl_options['wp_listings_idx_sold'] == 'sold-draft') {
                 // Change to draft
                 self::wp_listings_idx_change_post_status($idx_featured_listing_wp_options[$prop['listingID']]['post_id'], 'draft');
             } elseif (isset($wpl_options['wp_listings_idx_sold']) && $wpl_options['wp_listings_idx_sold'] == 'sold-delete') {
                 // Delete featured image
                 $post_featured_image_id = get_post_thumbnail_id($idx_featured_listing_wp_options[$prop['listingID']]['post_id']);
                 wp_delete_attachment($post_featured_image_id);
                 //Delete post
                 wp_delete_post($idx_featured_listing_wp_options[$prop['listingID']]['post_id']);
             }
         }
     }
     update_option('wp_listings_idx_featured_listing_wp_options', $idx_featured_listing_wp_options);
 }
 /**
  * Returns an unordered list of city links
  *
  * @param int|string the id of the city list to pull cities from
  * @param bool $columns if true adds column classes to the ul tags
  * @param int $number_of_columns optional total number of columns to split the links into
  */
 public static function city_list_links($list_id, $idx_id, $columns = 0, $number_columns = 4)
 {
     $idx_api = new \IDX\Idx_Api();
     $cities = $idx_api->city_list($list_id);
     if (!$cities) {
         return false;
     }
     $column_class = '';
     if (true == $columns) {
         // Max of four columns
         $number_columns = $number_columns > 4 ? 4 : (int) $number_columns;
         $number_links = count($cities);
         $column_size = $number_links / $number_columns;
         // if more columns than links make one column for every link
         if ($column_size < 1) {
             $number_columns = $number_links;
         }
         // round the column size up to a whole number
         $column_size = ceil($column_size);
         // column class
         switch ($number_columns) {
             case 0:
                 $column_class = 'columns small-12 large-12';
                 break;
             case 1:
                 $column_class = 'columns small-12 large-12';
                 break;
             case 2:
                 $column_class = 'columns small-12 medium-6 large-6';
                 break;
             case 3:
                 $column_class = 'columns small-12 medium-4 large-4';
                 break;
             case 4:
                 $column_class = 'columns small-12 medium-3 large-3';
                 break;
         }
     }
     $output = '<div class="impress-city-list-links impress-city-list-links-' . $list_id . ' impress-row">' . "\n\t";
     $output .= true == $columns ? '<ul class="impress-' . $column_class . '">' : '<ul>';
     $count = 0;
     $cities_list = array();
     foreach ($cities as $city) {
         $count++;
         $href = $idx_api->subdomain_url() . 'city-' . $idx_id . '-' . rawurlencode($city->name) . '-' . $city->id;
         //do not add empty city names, ids, duplicates, or 'Other' cities
         if (!empty($city->name) && !empty($city->id) && !in_array($city->id, $cities_list) && $city->name !== 'Other' && $city->name !== 'Out of State' && $city->name !== 'Out of Area') {
             //avoid duplicates by keeping track of cities already used
             array_push($cities_list, $city->id);
             $output .= "\n\t\t" . '<li>' . "\n\t\t\t" . '<a href="' . $href . '">' . $city->name . '</a>' . "\n\t\t" . '</li>';
         }
         if (true == $columns && $count % $column_size == 0 && $count != 1 && $count != $number_links) {
             $output .= "\n\t" . '</ul>' . "\n\t" . '<ul class="impress-' . $column_class . '">';
         }
     }
     $output .= "\n\t" . '</ul>' . "\n" . '</div><!-- .city-list-links -->';
     return $output;
 }