/** * 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); }
<?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); } } ?>
/** * 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; }