public static function load($old_image = '', $args = null) { $new_image = false; if (isset($args['fancybox']) && $args['fancybox']) { unset($args['fancybox']); } $args = self::process_defaults($args); $disable_dragonfly = pls_get_option('pls-disable-dragonfly'); // use standard default image if ($old_image === '' || empty($old_image)) { if (!empty($args['null_image'])) { $old_image = $args['null_image']; } else { $old_image = PLS_IMG_URL . "/null/listing-1200x720.jpg"; } } elseif ($args['allow_resize'] && $args['resize']['w'] && $args['resize']['h'] && get_theme_support('pls-dragonfly') && $disable_dragonfly != true) { $img_args = array('resize' => $args['resize'], 'old_image' => $old_image); $new_image = PLS_Plugin_API::resize_image($img_args); } if ($args['fancybox'] || $args['as_html']) { if ($new_image) { $new_image = self::as_html($old_image, $new_image, $args); } else { $new_image = self::as_html($old_image, null, $args); } } // return the new image if we've managed to create one if ($new_image) { return $new_image; } else { return $old_image; } }
public static function get_currency_symbol() { $current_symbol = pls_get_option('pls-currency-symbol'); if (!$current_symbol) { return '$'; } return $current_symbol; }
public function widget($args, $instance) { // Widget output /** Define the default argument array. */ $defaults = array('before_widget' => '<section id="pls_feedburner_widget" class="pls_feedburner_widget_wrapper widget">', 'after_widget' => '</section>', 'title' => '', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>'); /** Merge the arguments with the defaults. */ $args = wp_parse_args($args, $defaults); extract($args, EXTR_SKIP); $title = empty($instance['title']) ? ' ' : apply_filters('widget_title', $instance['title']); $instructions = empty($instance['instructions']) ? ' ' : apply_filters('instructions', $instance['instructions']); $email_placeholder = empty($instance['email_placeholder']) ? ' ' : apply_filters('email_placeholder', $instance['email_placeholder']); ?> <?php echo $before_widget; ?> <?php echo $before_title . $title . $after_title; ?> <form action="http://feedburner.google.com/fb/a/mailverify" method="post" target="popupwindow" onsubmit="window.open('http://feedburner.google.com/fb/a/mailverify?uri=<?php echo pls_get_option('pls-feedburner-uri'); ?> ', 'popupwindow', 'scrollbars=yes,width=550,height=520');return true"> <p><?php echo $instructions; ?> </p> <input type="email" name="email" placeholder="<?php echo $email_placeholder; ?> " /> <input type="hidden" value="<?php echo pls_get_option('pls-feedburner-uri'); ?> " name="uri"/> <input type="hidden" name="loc" value="en_US"/> <input type="submit" value="Subscribe" class="button-primary" /> </form> <?php echo $after_widget; ?> <?php }
public function widget($args, $instance) { // Widget output /** Define the default argument array. */ $defaults = array('before_widget' => '<section class="twitter-widget widget">', 'after_widget' => '</section>', 'title' => '', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>'); /** Merge the arguments with the defaults. */ $args = wp_parse_args($args, $defaults); extract($args, EXTR_SKIP); $title = empty($instance['title']) ? ' ' : apply_filters('title', $instance['title']); $twitter_username = empty($instance['username']) ? ' ' : apply_filters('username', $instance['username']); $count = empty($instance['count']) ? ' ' : apply_filters('count', $instance['count']); if (!empty($twitter_username)) { $username = $twitter_username; } else { $username = @pls_get_option('pls-twitter-username'); } ?> <?php echo $before_widget; ?> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script> <?php echo $before_title . $title . $after_title; ?> <p class="twitter-handle"><a href="https://twitter.com/<?php echo $username; ?> ">@<?php echo $username; ?> </a></p> <section id="twitter-sidebar-widget"> <?php echo get_twitter_feed($username, $count); ?> </section> <?php echo $after_widget; ?> <?php }
public static function show_window() { $show_debug = pls_get_option('display-debug-messages'); // optionally show debug messages. if ($show_debug == 1) { self::assemble_messages(); ?> <div style="position:fixed; bottom: 0px; left: 0px; width:100%; height: 35%; background-color: #F8F8F8 ; overflow: auto; border-top: 2px solid black; font-size: 11px; color: black;z-index: 9999"> <h4>Blueprint Debug Messages</h4> <?php echo self::$message_text; ?> </div> <?php } }
private static function handle_style($style, $id, $default, $type, $important) { if ($value = pls_get_option($id, $default)) { $css_style = ''; // check for special cases // sometimes the options framework saves certain options // in unique ways which can't be directly translated into styles if (self::is_special_case($type)) { //handles edge cases, returns a property formatted string return self::handle_special_case($value, $id, $default, $type, $important); } else { $css_style = self::make_style($style, $value, $important); return $css_style; } } else { return ''; } }
public static function get_featured($featured_option_id, $args = array()) { $api_response = array('listings' => array()); $option_ids = pls_get_option($featured_option_id); if (!empty($option_ids)) { $property_ids = array_keys($option_ids); if (!empty($property_ids)) { $args['property_ids'] = $property_ids; } $api_response = PLS_Plugin_API::get_listing_details($args); // Remove listings without images... foreach ($api_response['listings'] as $key => $listing) { if (empty($listing['images'])) { unset($api_response['listings'][$key]); } } } return $api_response; }
function tampa_custom_css() { $custom_css = pls_get_option('pls-custom-css'); if (pls_get_option('pls-css-options') && $custom_css) { printf('<style type="text/css">%s</style>', $custom_css); } }
public static function init($content) { global $post; if ($post->post_type == 'property') { $html = ''; $listing_data = PLS_Plugin_API::get_listing_in_loop(); // re-order images by assigned order $property_images = is_array($listing_data['images']) ? $listing_data['images'] : array(); usort($property_images, array('PLS_Partials_Property_Details', 'sort_images_by_order')); // reset the images $listing_data['images'] = $property_images; // Problems with API key or inconsistent data lead to notices due to null listings if (!is_null($listing_data)) { $listing_data['location']['full_address'] = $listing_data['location']['address'] . ' ' . $listing_data['location']['locality'] . ' ' . $listing_data['location']['region']; // This has to happen here to ensure it's not filtered out by whatever might be filtering this output... echo PLS_Plugin_API::log_snippet_js('listing_view', array('prop_id' => $listing_data['id'])); ob_start(); ?> <h2 itemprop="name" itemscope itemtype="http://schema.org/PostalAddress"> <span itemprop="streetAdress"><?php echo $listing_data['location']['address']; ?> </span> <span itemprop="addressLocality"><?php echo $listing_data['location']['locality']; ?> </span>, <span itemprop="addressRegion"><?php echo $listing_data['location']['region']; ?> </span> </h2> <?php echo PLS_Plugin_API::placester_favorite_link_toggle(array('property_id' => $listing_data['id'], 'add_text' => 'Add To Favorites', 'remove_text' => 'Remove From Favorites')); ?> <p itemprop="price"><?php echo PLS_Format::number($listing_data['cur_data']['price'], array('abbreviate' => false, 'add_currency_sign' => true)); ?> <span><?php echo PLS_Format::translate_lease_terms($listing_data); ?> </span></p> <p class="listing_type"><?php if (isset($listing_data['zoning_types'][0]) && isset($listing_data['purchase_types'][0])) { echo ucwords(@$listing_data['zoning_types'][0] . ' ' . @$listing_data['purchase_types'][0]); } ?> </p> <div class="clearfix"></div> <?php if ($listing_data['images']) { ?> <div class="theme-default property-details-slideshow"> <?php echo PLS_Image::load($listing_data['images'][0]['url'], array('resize' => array('w' => 590, 'h' => 300), 'fancybox' => false, 'as_html' => true, 'html' => array('itemprop' => 'image'))); ?> <?php // echo PLS_Slideshow::slideshow( array( 'anim_speed' => 1000, 'pause_time' => 15000, 'control_nav' => true, 'width' => 620, 'height' => 300, 'context' => 'home', 'data' => PLS_Slideshow::prepare_single_listing($listing_data) ) ); ?> </div> <div class="details-wrapper grid_8 alpha"> <div id="slideshow" class="clearfix theme-default left bottomborder"> <div class="grid_8 alpha"> <ul class="property-image-gallery grid_8 alpha"> <?php foreach ($listing_data['images'] as $images) { ?> <li><?php echo PLS_Image::load($images['url'], array('resize' => array('w' => 100, 'h' => 75), 'fancybox' => true, 'as_html' => true, 'html' => array('itemprop' => 'image'))); ?> </li> <?php } ?> </ul> </div> </div> </div> <?php } ?> <div class="basic-details grid_8 alpha"> <ul> <li><span>Beds: </span><?php echo $listing_data['cur_data']['beds']; ?> </li> <li><span>Baths: </span><?php echo $listing_data['cur_data']['baths']; ?> </li> <?php if (isset($listing_data['cur_data']['half_baths']) && $listing_data['cur_data']['half_baths'] != null) { ?> <li><span>Half Baths: </span><?php echo $listing_data['cur_data']['half_baths']; ?> </li> <?php } ?> <li><span>Square Feet: </span><?php echo PLS_Format::number($listing_data['cur_data']['sqft'], array('abbreviate' => false, 'add_currency_sign' => false)); ?> </li> <?php if (isset($listing_data['cur_data']['avail_on']) && $listing_data['cur_data']['avail_on'] != null) { ?> <li itemprop="availability"><span>Available: </span><?php echo @$listing_data['cur_data']['avail_on']; ?> </li> <?php } ?> <li>Property Type: <?php echo PLS_Format::translate_property_type($listing_data); ?> </li> <?php if (isset($listing_data['rets']) && isset($listing_data['rets']['mls_id'])) { ?> <li><span>MLS #: </span><?php echo $listing_data['rets']['mls_id']; ?> </li> <?php } ?> </ul> </div> <div class="details-wrapper grid_8 alpha"> <h3>Property Description</h3> <?php if (!empty($listing_data['cur_data']['desc'])) { ?> <p itemprop="description"><?php echo $listing_data['cur_data']['desc']; ?> </p> <?php } else { ?> <p> No description available </p> <?php } ?> </div> <?php $amenities = PLS_Format::amenities_but($listing_data, array('half_baths', 'beds', 'baths', 'url', 'sqft', 'avail_on', 'price', 'desc')); ?> <?php if (!empty($amenities['list'])) { ?> <div class="amenities-section grid_8 alpha"> <h3>Listing Amenities</h3> <ul> <?php $amenities['list'] = PLS_Format::translate_amenities($amenities['list']); ?> <?php foreach ($amenities['list'] as $amenity => $value) { ?> <li><span><?php echo $amenity; ?> </span> <?php echo $value; ?> </li> <?php } ?> </ul> </div> <?php } ?> <?php if (!empty($amenities['ngb'])) { ?> <div class="amenities-section grid_8 alpha"> <h3>Local Amenities</h3> <ul> <?php $amenities['ngb'] = PLS_Format::translate_amenities($amenities['ngb']); ?> <?php foreach ($amenities['ngb'] as $amenity => $value) { ?> <li><span><?php echo $amenity; ?> </span> <?php echo $value; ?> </li> <?php } ?> </ul> </div> <?php } ?> <?php if (!empty($amenities['uncur'])) { ?> <div class="amenities-section grid_8 alpha"> <h3>Custom Amenities</h3> <ul> <?php $amenities['uncur'] = PLS_Format::translate_amenities($amenities['uncur']); ?> <?php foreach ($amenities['uncur'] as $amenity => $value) { ?> <li><span><?php echo $amenity; ?> </span> <?php echo $value; ?> </li> <?php } ?> </ul> </div> <?php } ?> <div class="map-wrapper grid_8 alpha"> <h3>Property Map</h3> <script type="text/javascript"> jQuery(document).ready(function( $ ) { var map = new Map(); var listing = new Listings({ single_listing : <?php echo json_encode($listing_data); ?> , map: map }); map.init({ type: 'single_listing', listings: listing, lat : <?php echo json_encode($listing_data['location']['coords'][0]); ?> , lng : <?php echo json_encode($listing_data['location']['coords'][1]); ?> , zoom : 14 }); listing.init(); }); </script> <div class="map"> <?php echo PLS_Map::dynamic($listing_data, array('lat' => $listing_data['location']['coords'][0], 'lng' => $listing_data['location']['coords'][1], 'height' => 250, 'zoom' => 16)); ?> </div> </div> <?php PLS_Listing_Helper::get_compliance(array('context' => 'listings', 'agent_name' => @$listing_data['rets']['aname'], 'office_name' => @$listing_data['rets']['oname'])); ?> <?php // Store output... $html = ob_get_clean(); } // Enable Lead Capture $lead_capture_enable = pls_get_option('pd-lc-enable'); if ($lead_capture_enable == 1) { ob_start(); ?> <!-- Lead Capture Shortcode --> <div style="display:none;" href="#" id="property-details-lead-capture"> <?php do_shortcode('[lead_capture_template lead_capture_cookie="true" name_required="true" question_required="false" width="440"]'); ?> </div> <?php // Store output... $lead_capture_block = ob_get_clean(); } $html = apply_filters('property_details_filter', $html, $listing_data); // Add lead capture block to HTML if (isset($lead_capture_block)) { $html = $lead_capture_block . $html; } return $html; } // Post is not of type property, so just return what was initially passed in... return $content; }
public function widget($args, $instance) { global $post; if (!empty($post) && isset($post->post_type) && $post->post_type == 'property') { $data = PLS_Plugin_API::get_listing_in_loop(); } else { $data = array(); } // Labels and Values $title = apply_filters('widget_title', empty($instance['title']) ? ' ' : $instance['title']); $success_message = apply_filters('success_message', empty($instance['success_message']) ? 'Thank you for the email, we\'ll get back to you shortly' : $instance['success_message']); $submit_value = apply_filters('button', empty($instance['button']) ? 'Send' : $instance['button']); $email_label = apply_filters('email_label', !isset($instance['email_label']) ? 'Email Address (required)' : $instance['email_label']); $email_value = apply_filters('email_value', !isset($instance['email_value']) ? 'Email Address' : $instance['email_value']); $phone_label = apply_filters('phone_label', !isset($instance['phone_label']) ? 'Phone Number (required)' : $instance['phone_label']); $phone_value = apply_filters('phone_value', !isset($instance['phone_value']) ? 'Phone Number' : $instance['phone_value']); $subject_label = apply_filters('subject_label', !isset($instance['subject_label']) ? 'Subject' : $instance['subject_label']); $subject_value = apply_filters('subject_value', !isset($instance['subject_value']) ? 'Subject' : $instance['subject_value']); $departments_label = apply_filters('departments_label', !isset($instance['departments_label']) ? 'Department' : $instance['departments_label']); $departments_value = apply_filters('departments_value', !isset($instance['departments_value']) ? 'Department' : $instance['departments_value']); $include_name = isset($instance['include_name']) && $instance['include_name'] == "false" ? false : true; $name_label = apply_filters('name_label', !isset($instance['name_label']) ? 'Name (required)' : $instance['name_label']); $name_value = apply_filters('name_value', !isset($instance['name_value']) ? 'Name' : $instance['name_value']); $question_label = apply_filters('question_label', !isset($instance['question_label']) ? 'Questions/Comments' : $instance['question_label']); $question_value = apply_filters('question_value', !isset($instance['question_value']) ? 'Any questions for us?' : $instance['question_value']); $custom_link = apply_filters('custom_link', !isset($instance['custom_link']) ? '' : $instance['custom_link']); $custom_link_target = apply_filters('custom_link_target', !isset($instance['custom_link_target']) ? '_blank' : $instance['custom_link_target']); $form_title = apply_filters('form_title', !isset($instance['form_title']) ? '' : $instance['form_title']); // Reguired Attribute $name_required = isset($instance['name_required']) && $instance['name_required'] == "false" ? false : true; $email_required = isset($instance['email_required']) && $instance['email_required'] == "false" ? true : true; $phone_required = isset($instance['phone_required']) && $instance['phone_required'] == "true" ? true : false; $subject_required = isset($instance['subject_required']) && $instance['subject_required'] == "true" ? true : false; $question_required = isset($instance['question_required']) && $instance['question_required'] == "false" ? false : true; // Error Messages $name_error = isset($instance['name_error']) && $instance['name_error'] != "" ? $instance['name_error'] : "Your name is required."; $email_error = isset($instance['email_error']) && $instance['email_error'] != "" ? $instance['email_error'] : "A valid email is required."; $phone_error = isset($instance['phone_error']) && $instance['phone_error'] != "" ? $instance['phone_error'] : "A valid phone is required."; $question_error = isset($instance['question_error']) && $instance['question_error'] != "" ? $instance['question_error'] : "Don't forget to leave a question or comment."; $subject_error = isset($instance['subject_error']) && $instance['subject_error'] != "" ? $instance['subject_error'] : "What subject would you like to speak about?"; // Classes $container_class = apply_filters('container_class', empty($instance['container_class']) ? '' : $instance['container_class']); $inner_class = apply_filters('inner_class', empty($instance['inner_class']) ? '' : $instance['inner_class']); $inner_containers = apply_filters('inner_containers', empty($instance['inner_containers']) ? '' : $instance['inner_containers']); $textarea_container = apply_filters('textarea_container', !isset($instance['textarea_container']) ? $inner_containers : $instance['textarea_container']); $button_class = apply_filters('button_class', !isset($instance['button_class']) ? 'button-primary' : $instance['button_class']); // Send To Options $email_confirmation = apply_filters('email_confirmation', empty($instance['email_confirmation']) ? false : $instance['email_confirmation']); $send_to_email = apply_filters('send_to_email', !isset($instance['send_to_email']) ? '' : $instance['send_to_email']); $cc_value = apply_filters('cc_value', !isset($instance['cc_value']) ? '' : $instance['cc_value']); $bcc_value = apply_filters('bcc_value', !isset($instance['bcc_value']) ? '' : $instance['bcc_value']); // Lead Capture Cookie $lead_capture_cookie = apply_filters('lead_capture_cookie', !isset($instance['lead_capture_cookie']) ? '' : $instance['lead_capture_cookie']); // Form Options // Get lead capture's force-back theme option from admin $back_on_lc_cancel_option = pls_get_option('pd-lc-force-back'); if (!empty($instance['back_on_lc_cancel'])) { // if option has been set in the contact form call $back_on_lc_cancel = apply_filters('back_on_lc_cancel', !isset($instance['back_on_lc_cancel']) ? '' : $instance['back_on_lc_cancel']); } elseif (isset($back_on_lc_cancel_option)) { // Elseif the theme option is set, let the theme option set the force-back for canceling the lead capture form $back_on_lc_cancel = $back_on_lc_cancel_option; } else { // else, don't force users back $back_on_lc_cancel = 0; } $show_property = isset($instance['show_property']) && !empty($instance['show_property']) ? 1 : 0; $template_url = get_template_directory_uri(); /** Define the default argument array. */ $defaults = array('before_widget' => '<section class="side-ctnr placester_contact ' . $container_class . ' widget">', 'after_widget' => '</section>', 'title' => '', 'before_title' => '<h3>', 'after_title' => '</h3>'); /** Merge the arguments with the defaults. */ $args = wp_parse_args($args, $defaults); extract($args, EXTR_SKIP); ?> <?php pls_do_atomic('contact_form_before_widget'); ?> <?php echo $before_widget; ?> <?php pls_do_atomic('contact_form_before_title'); ?> <?php echo $before_title . $title . $after_title; ?> <?php pls_do_atomic('contact_form_after_title'); ?> <section class="<?php echo $inner_class; ?> common-side-cont placester_contact_form clearfix"> <div class="success"><?php echo $success_message; ?> </div> <form name="widget_contact" action="" method="post"> <?php //this must be included to get additional user data; ?> <input type="hidden" name="ip" value="<?php print $ip = isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']; ?> "/> <input type="hidden" name="user_agent" value="<?php print $_SERVER['HTTP_USER_AGENT']; ?> "/> <input type="hidden" name="url" value="<?php print 'https://' . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]; ?> "/> <?php if (isset($lead_capture_cookie) && $lead_capture_cookie == true) { ?> <input type="hidden" name="lead_capture_cookie" value="true"> <?php } ?> <input type="hidden" name="id" value="<?php if (isset($data['id'])) { echo $data['id']; } ?> "> <input type="hidden" name="fullAddress" value="<?php echo @self::_get_full_address($data); ?> "> <input type="hidden" name="email_confirmation" value="<?php echo $email_confirmation; ?> "> <input type="hidden" name="send_to_email" value="<?php echo $send_to_email; ?> "> <input type="hidden" name="cc_value" value="<?php echo @$cc_value; ?> "> <input type="hidden" name="bcc_value" value="<?php echo @$bcc_value; ?> "> <input type="hidden" name="back_on_lc_cancel" value="<?php echo @$back_on_lc_cancel; ?> "> <input type="hidden" name="form_submitted" value="0"> <input type="hidden" name="custom_link" value="<?php echo @$custom_link; ?> "> <input type="hidden" name="custom_link_target" value="<?php echo @$custom_link_target; ?> "> <input type="hidden" name="form_title" value="<?php echo @$form_title; ?> "> <?php if (!empty($include_name)) { ?> <?php echo empty($instance['inner_containers']) ? '' : '<div class="' . $instance['inner_containers'] . '">'; ?> <label class="required" for="name"><?php echo $name_label; ?> </label> <input class="required" id="name" placeholder="<?php echo $name_value; ?> " type="text" name="name" <?php echo $name_required == true ? 'required="required"' : ''; ?> <?php echo !empty($name_error) ? 'data-message="' . $name_error . '"' : ''; ?> /> <?php echo empty($instance['inner_containers']) ? '' : '</div>'; ?> <?php } ?> <?php echo empty($instance['inner_containers']) ? '' : '<div class="' . $instance['inner_containers'] . '">'; ?> <label class="required" for="email"><?php echo $email_label; ?> </label><input class="required" id="email" placeholder="<?php echo $email_value; ?> " type="email" name="email" <?php echo $email_required == true ? 'required="required"' : ''; ?> <?php echo !empty($email_error) ? 'data-message="' . $email_error . '"' : ''; ?> /> <?php echo empty($instance['inner_containers']) ? '' : '</div>'; ?> <?php if (!empty($instance['phone_number'])) { ?> <?php echo empty($instance['inner_containers']) ? '' : '<div class="' . $instance['inner_containers'] . '">'; ?> <label class="required" for="phone"><?php echo $phone_label; ?> </label><input class="required" id="phone" placeholder="<?php echo $phone_value; ?> " type="text" name="phone" <?php echo $phone_required == true ? 'required="required"' : ''; ?> <?php echo !empty($phone_error) ? 'data-message="' . $phone_error . '"' : ''; ?> /> <?php echo empty($instance['inner_containers']) ? '' : '</div>'; ?> <?php } ?> <?php if (!empty($instance['subject'])) { ?> <?php echo empty($instance['inner_containers']) ? '' : '<div class="' . $instance['inner_containers'] . '">'; ?> <label class="required" for="subject"><?php echo $subject_label; ?> </label><input class="required" id="subject" placeholder="<?php echo $subject_value; ?> " type="text" name="subject" <?php echo $subject_required == true ? 'required="required"' : ''; ?> <?php echo !empty($subject_error) ? 'data-message="' . $subject_error . '"' : ''; ?> /> <?php echo empty($instance['inner_containers']) ? '' : '</div>'; ?> <?php } ?> <?php if (!empty($instance['departments'])) { ?> <?php echo empty($instance['inner_containers']) ? '' : '<div class="' . $instance['inner_containers'] . '">'; ?> <label class="required" for="department"><?php echo $departments_label; ?> </label> <?php $departments = explode(',', $instance['departments']); ?> <select id="department" placeholder="<?php echo $departments_value; ?> " name="department"> <?php foreach ($departments as $department) { ?> <option value="<?php echo $department; ?> "><?php echo $department; ?> </option> <?php } ?> </select> <?php echo empty($instance['inner_containers']) ? '' : '</div>'; ?> <?php } ?> <?php if ($show_property == 1) { ?> <?php $full_address = @self::_get_full_address($data); if (!empty($full_address)) { ?> <?php echo empty($instance['inner_containers']) ? '' : '<div class="' . $instance['inner_containers'] . '">'; ?> <label>Property</label><span class="info"><?php echo str_replace("\n", " ", $full_address); ?> </span> <?php echo empty($instance['inner_containers']) ? '' : '</div>'; ?> <?php } ?> <?php } ?> <?php echo empty($instance['textarea_container']) ? '' : '<div class="' . $instance['textarea_container'] . '">'; ?> <label for="question"><?php echo $question_label; ?> </label> <textarea rows="5" id="question" name="question" placeholder="<?php echo $question_value; ?> " <?php echo $question_required == true ? 'required="required"' : ''; ?> <?php echo !empty($question_error) ? 'data-message="' . $question_error . '"' : ''; ?> ></textarea> <?php echo empty($instance['textarea_container']) ? '' : '</div>'; ?> <input type="submit" value="<?php echo $submit_value; ?> " class="<?php echo $button_class; ?> " /> <div class="pls-contact-form-loading" style='display:none;'> <div id="medium-spinner"><div class="bar1"></div><div class="bar2"></div><div class="bar3"></div><div class="bar4"></div><div class="bar5"></div><div class="bar6"></div><div class="bar7"></div><div class="bar8"></div></div> </div> </form> </section> <div class="separator"></div> <?php echo $after_widget; ?> <?php pls_do_atomic('contact_form_after_widget'); ?> <?php }
/** * Outputs and filters the widget. * * The widget connects to the plugin using the framework plugin api class. * If the class returns false, this means that either the plugin is * missing, either the it has no API key set. * * @since 0.0.1 */ public function widget($args, $instance) { list($args, $instance) = self::process_defaults($args, $instance); /** Extract the arguments into separate variables. */ extract($args, EXTR_SKIP); /** Get the agent information from the plugin. */ $agent = PLS_Plugin_API::get_user_details(); $agent_array = array(); // pls_dump($agent); /** If the plugin is active, and has an API key set... */ if ($agent) { /* Output the theme's $before_widget wrapper. */ echo $before_widget; /* If a title was input by the user, display it. */ $widget_title = ''; if (!empty($instance['title'])) { $widget_title = $before_title . apply_filters('widget_title', $instance['title'], $instance, $this->id_base) . $after_title; } /** This array will hold the html for the agent info sections and will be passed to the filters. */ $agent_html = $instance; unset($agent_html['title']); // Add Name if (!empty($instance['name_custom'])) { // if admin set custom name $agent_html['name'] = self::checkForCustom($instance, 'name'); $agent_array['name'] = $instance['name_custom']; } else { // otherwise use admin's name if (!empty($instance['name']) && (!empty($agent['user']['first_name']) || !empty($agent['user']['last_name']))) { $agent_html['name'] = pls_h_p(trim($agent['user']['first_name'] . ' ' . $agent['user']['last_name']), array('class' => 'fn h5', 'itemprop' => 'name')); $agent_array['name'] = $agent['user']['first_name'] . ' ' . $agent['user']['last_name']; } else { $agent_html['name'] = ''; $agent_array['name'] = ''; } } // Add Email if (!empty($instance['email_custom'])) { // if admin set custom email $agent_html['email'] = self::checkForCustom($instance, 'email'); $agent_array['email'] = $instance['email_custom']; } else { // otherwise use admin's email if (!empty($instance['email']) && !empty($agent['user']['email'])) { $agent_html['email'] = pls_h_p(pls_h_a("mailto:{$agent['user']['email']}", $agent['user']['email']), array('class' => 'email', 'itemprop' => 'email')); $agent_array['email'] = $agent['user']['email']; } else { $agent_html['email'] = ''; $agent_array['email'] = ''; } } // Add Phone if (!empty($instance['phone_custom'])) { // if admin set custom phone $agent_html['phone'] = self::checkForCustom($instance, 'phone'); $agent_array['phone'] = $instance['phone_custom']; } else { // otherwise use admin's phone if (!empty($instance['phone']) && !empty($agent['user']['phone'])) { $agent_html['phone'] = pls_h_p(PLS_Format::phone($agent['user']['phone']), array('class' => 'phone', 'itemprop' => 'phone')); $agent_array['phone'] = PLS_Format::phone($agent['user']['phone'], array('class' => 'phone', 'itemprop' => 'phone')); } else { $agent_html['phone'] = ''; $agent_array['phone'] = ''; } } // Add Description if (!empty($instance['description_custom'])) { // if admin set custom description $agent_html['description'] = self::checkForCustom($instance, 'description'); $agent_array['description'] = $instance['description_custom']; } else { // otherwise use admin's descriptions if (!empty($instance['description']) && pls_get_option('pls-user-description')) { $agent_bio = pls_get_option('pls-user-description'); $agent_html['description'] = pls_h_p($agent_bio, array('class' => 'desc p4', 'itemprop' => 'description')); $agent_array['description'] = $agent_bio; } else { $agent_html['description'] = ''; $agent_array['description'] = ''; } } // Add Photo if (!empty($instance['image_uri'])) { // if admin set custom photo self::checkForCustom($instance, 'photo'); $agent_array['photo'] = $instance['image_uri']; } else { // otherwise use admin's photo $user_image_option = pls_get_option('pls-user-image'); if (!empty($instance['photo']) && !empty($user_image_option)) { $agent_html['photo'] = pls_h_img(@pls_get_option('pls-user-image'), trim($agent['user']['first_name'] . ' ' . $agent['user']['last_name']), array('class' => 'photo', 'itemprop' => 'image') + array() + array()); $agent_array['photo'] = $user_image_option; } else { if (isset($agent['user']['headshot'])) { $agent_html['photo'] = pls_h_img($agent['user']['headshot'], trim($agent['user']['first_name'] . ' ' . $agent['user']['last_name']), array('class' => 'photo', 'itemprop' => 'image') + array() + array()); $agent_array['photo'] = $agent['user']['headshot']; } else { $agent_array['photo'] = ''; } } } // Form the HTML elements // photo $agent_html['photo'] = '<img class="pls-agent-phone" src="' . esc_url($instance['image_uri']) . '" />'; // texts $agent_info = array('name', 'email', 'phone', 'description'); foreach ($agent_info as $value) { $agent_html[$value] = pls_h_p($agent_html[$value], array('class' => 'pls-agent-' . $value)); } /** Combine the agent information. */ $widget_body = $agent_html['photo'] . $agent_html['name'] . $agent_html['email'] . $agent_html['phone'] . $agent_html['description']; /** Wrap the agent information in a section element. */ $widget_body = apply_filters('pls_widget_agent_inner', $widget_body, $agent_html, $agent_array, $instance, $agent, $widget_id); /** Apply a filter on the whole widget */ echo apply_filters('pls_widget_agent', $widget_title . $widget_body, $widget_title, $before_title, $after_title, $widget_body, $agent_html, $agent, $instance, $widget_id); /* Close the theme's widget wrapper. */ if ($args['clearfix']) { echo '<div class="clearfix"></div>'; } echo $after_widget; } elseif (current_user_can('administrator')) { /** Display an error message if the user is admin. */ // echo pls_get_no_plugin_placeholder( $widget_id ); } }
public static function get_contact_form() { // Get args passed to shortcode $form_args = func_get_args(); extract($form_args[0], EXTR_SKIP); $title_text = pls_get_option('pd-lc-form-title'); $description = pls_get_option('pd-lc-form-description'); // Default ob_start(); ?> <div class="lead-capture-wrapper" style="width: <?php echo $width; ?> px !important; height:<?php echo $height; ?> px !important;"> <?php if ($title_visible == 1 && !empty($title_text)) { ?> <p class="lc-title"><?php echo $title_text; ?> </p> <?php } ?> <!-- Lead Capture Description Text --> <?php if ($description_visible == true && !empty($description)) { ?> <div class="lc-description"> <?php echo $description; ?> </div> <?php } ?> <!-- Contact Form --> <div class="lc-contact-form"> <?php if (class_exists('Placester_Contact_Widget')) { // Lead Capture Form $instance = array("title" => '', "title_visible" => $title_visible != false ? true : false, "success_message" => !empty($success_message) ? $success_message : "Thank you for the email, we'll get back to you shortly", "name_value" => $name_placeholder != "Full Name" ? $name_placeholder : "Full Name", "name_required" => $name_required != false ? $name_required : true, "name_error" => $name_error != false ? $name_error : false, "email_value" => $email_placeholder != "Email Address" ? $email_placeholder : "Email Address", "email_required" => $email_required != false ? $email_required : true, "email_error" => $email_error != false ? $email_error : false, "phone_value" => $phone_placeholder != "Phone Number" ? $phone_placeholder : "Phone Number", "phone_required" => $phone_required != false ? $phone_required : true, "phone_error" => $phone_error != false ? $phone_error : false, "subject_value" => $subject_placeholder != "Subject" ? $subject_placeholder : "Subject", "subject_required" => $subject_required != false ? $subject_required : true, "subject_error" => $subject_error != false ? $subject_error : false, "question_label" => $question_placeholder != "Comments" ? $question_placeholder : "Comments", "question_required" => $question_required != false ? $question_required : true, "question_error" => $question_error != false ? $question_error : false, "phone_number" => $phone_include != true ? false : true, "cc_value" => $cc_value != false ? $cc_value : false, "bcc_value" => $bcc_value != false ? $bcc_value : false, "back_on_lc_cancel" => '', "button" => $button_text != "Submit" ? $button_text : "Submit", "number" => 9); $args = array("id" => 99); //giving high tab index numbers as to not collide with sidebar widgets $sb = new Placester_Contact_Widget(); $sb->number = $instance['number']; $sb->widget($args, $instance); } ?> </div> </div> <?php $form = ob_get_clean(); return $form; }
/** * Returns a form that can be used to search for listings. * * The defaults are as follows: * 'ajax' - Default is false. Wether the resulting form should use ajax * or not. If ajax is set to true, then for the form to work, the * results container should be defined on the page. * {@link PLS_Partials::get_listings_list_ajax()} should be used. * 'context' - An execution context for the function. Used when the * filters are created. * 'context_var' - Any variable that needs to be passed to the filters * when function is executed. * Defines the following hooks. * pls_listings_search_form_bedrooms_array[_context] - Filters the * array with the data used to generate the select. * pls_listings_search_form_bathrooms_array[_context] * pls_listings_search_form_available_on_array[_context] * pls_listings_search_form_cities_array[_context] * pls_listings_search_form_min_price_array[_context] * pls_listings_search_form_max_price_array[_context] * * pls_listings_search_form_bedrooms_attributes[_context] - Filters * the attribute array for the select. If extra attributes need to * be added to the select element, they should be provided in * a array( $attribute_key => $attribute_value ) form. * pls_listings_search_form_bathrooms_attributes[_context] * pls_listings_search_form_available_on_attributes[_context] * pls_listings_search_form_cities_attributes[_context] * pls_listings_search_form_min_price_attributes[_context] * pls_listings_search_form_max_price_attributes[_context] * * pls_listings_search_form_bedrooms_html[_context] - Filters the html * for this option. Can be used to add extra containers. * pls_listings_search_form_bathrooms_html[_context] * pls_listings_search_form_available_on_html[_context] * pls_listings_search_form_cities_html[_context] * pls_listings_search_form_min_price_html[_context] * pls_listings_search_form_max_price_html[_context] * * pls_listings_search_form_submit[_context] - Filters the form submit * button. * * pls_listings_search_form_inner[_context] - Filters the form inner html. * pls_listings_search_form_outer[_context] - Filters the form html. * * @static * @param array $args Optional. Overrides defaults. * @return string The html for the listings search form. * @since 0.0.1 */ public static function init($args = '') { // Define the default argument array $defaults = array('ajax' => false, 'class' => 'pls_search_form_listings', 'context' => '', 'theme_option_id' => '', 'context_var' => null, 'bedrooms' => 1, 'min_beds' => 1, 'max_beds' => 1, 'bathrooms' => 1, 'min_baths' => 1, 'max_baths' => 1, 'price' => 1, 'half_baths' => 1, 'property_type' => 1, 'listing_types' => 1, 'zoning_types' => 1, 'purchase_types' => 1, 'available_on' => 1, 'cities' => 1, 'multi_cities' => 0, 'states' => 1, 'multi_states' => 0, 'zips' => 1, 'neighborhood' => 1, 'multi_neighborhoods' => 0, 'county' => 1, 'min_price' => 1, 'max_price' => 1, 'min_price_rental' => 1, 'max_price_rental' => 1, 'min_price_sales' => 1, 'max_price_sales' => 1, 'neighborhood_polygons' => 0, 'neighborhood_polygons_type' => false, 'min_sqft' => 1, 'max_sqft' => 1, 'include_submit' => true, 'pls_empty_value' => array()); $args = wp_parse_args($args, $defaults); $cache_id = $args; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $cache_id['$_POST'] = $_POST; } $cache = new PLS_Cache('Search Form'); if ($result = $cache->get($cache_id)) { return $result; } $form_options = array(); // Set Form Defaults for params onload, set in Theme Options $form_options['location']['locality'] = pls_get_option('form_default_options_locality'); $form_options['location']['region'] = pls_get_option('form_default_options_region'); $form_options['location']['postal'] = pls_get_option('form_default_options_postal'); $form_options['location']['neighborhood'] = pls_get_option('form_default_options_neighborhood'); $form_options['location']['county'] = pls_get_option('form_default_options_county'); $form_options['property_type'] = pls_get_option('form_default_options_property_type'); $_POST = wp_parse_args($_POST, $form_options); //respect user settings, unless they are all empty. $user_search_params = pls_get_option($args['theme_option_id']); if (isset($user_search_params['hide_all']) && $user_search_params['hide_all'] == 1) { return ''; } $args = wp_parse_args($args, $user_search_params); /** Extract the arguments after they merged with the defaults. */ extract(wp_parse_args($args, $defaults), EXTR_SKIP); // Set the default empty values for the all the form elements. // Dev can change defaults via a filter in process defaults. $pls_empty_value = self::process_default_value_array($pls_empty_value, $context); /** * Elements options arrays. Used to generate the HTML. */ /** Prepend the default empty valued element. */ $user_beds_start = pls_get_option('pls-option-bed-min'); $user_beds_end = pls_get_option('pls-option-bed-max'); if (is_numeric($user_beds_start) && is_numeric($user_beds_end)) { $beds_range = range($user_beds_start, $user_beds_end); $form_options['bedrooms'] = array('pls_empty_value' => $pls_empty_value['bedrooms']) + array_combine($beds_range, $beds_range); } else { $form_options['bedrooms'] = array('pls_empty_value' => $pls_empty_value['bedrooms']) + range(0, 16); } /** Prepend the default empty valued element. */ $user_baths_start = pls_get_option('pls-option-bath-min'); $user_baths_end = pls_get_option('pls-option-bath-max'); if (is_numeric($user_baths_start) && is_numeric($user_baths_end)) { $baths_range = range($user_baths_start, $user_baths_end); $form_options['bathrooms'] = array('pls_empty_value' => $pls_empty_value['bathrooms']) + array_combine($baths_range, $baths_range); } else { $form_options['bathrooms'] = array('pls_empty_value' => $pls_empty_value['bathrooms']) + range(0, 10); } /** Prepend the default empty valued element. */ $user_half_baths_start = pls_get_option('pls-option-half-bath-min'); $user_half_baths_end = pls_get_option('pls-option-half-bath-max'); if (is_numeric($user_half_baths_start) && is_numeric($user_half_baths_end)) { $half_bath_range = range($user_half_baths_start, $user_half_baths_end); $form_options['half_baths'] = array('pls_empty_value' => $pls_empty_value['half_baths']) + array_combine($half_bath_range, $half_bath_range); } else { $form_options['half_baths'] = array('pls_empty_value' => $pls_empty_value['half_baths']) + range(0, 10); } /** Generate an array with the next 12 months. */ $current_month = (int) date('m'); for ($i = $current_month; $i < $current_month + 12; $i++) { $form_options['available_on'][date('d-m-Y', mktime(0, 0, 0, $i, 1))] = date('F Y', mktime(0, 0, 0, $i, 1)); } /** Get the property type options */ $get_type_response = PLS_Plugin_API::get_type_list(); // error_log("GET_TYPE_RESPONSE\n" . serialize($get_type_response) . "\n"); if (empty($get_type_response)) { $form_options['property_type'] = array('pls_empty_value' => $pls_empty_value['property_type']); } else { // if API serves up 'false' key in the array, remove it, because we're going to add one. if (isset($get_type_response['false'])) { unset($get_type_response['false']); } $form_options['property_type'] = array_merge(array('pls_empty_value' => $pls_empty_value['property_type']), $get_type_response); } /** Get the listing type options. */ $form_options['listing_types'] = array('pls_empty_value' => $pls_empty_value['listing_types']) + PLS_Plugin_API::get_type_values('listing'); /** Get the zoning type options. */ $form_options['zoning_types'] = array('pls_empty_value' => $pls_empty_value['zoning_types']) + PLS_Plugin_API::get_type_values('zoning'); // removed "All" - it's not giving all listings. jquery needs to change to not include "[]"s // $form_options['zoning_types'] = PLS_Plugin_API::get_type_values( 'zoning' ); // for Multiple, not for single, see below /** Get the purchase type options. */ $form_options['purchase_types'] = array('pls_empty_value' => $pls_empty_value['purchase_types']) + PLS_Plugin_API::get_type_values('purchase'); // removed "All" - it's not giving all listings. jquery needs to change to not include "[]"s // $form_options['purchase_types'] = PLS_Plugin_API::get_type_values( 'purchase' ); /** Prepend the default empty valued element. */ $form_options['available_on'] = array('pls_empty_value' => $pls_empty_value['available_on']) + $form_options['available_on']; /** Prepend the default empty valued element. */ $locations = PLS_Plugin_API::get_location_list(); $neighborhood_polygons_options = PLS_Plugin_API::get_location_list_polygons($neighborhood_polygons_type); if (empty($locations['locality'])) { $form_options['cities'] = array('pls_empty_value' => $pls_empty_value['cities']); } else { unset($locations['locality']['false']); sort($locations['locality']); $form_options['cities'] = array('pls_empty_value' => $pls_empty_value['cities']) + $locations['locality']; } if (empty($locations['region'])) { $form_options['states'] = array('pls_empty_value' => $pls_empty_value['states']); } else { unset($locations['region']['false']); sort($locations['region']); $form_options['states'] = array('pls_empty_value' => $pls_empty_value['states']) + $locations['region']; } if (empty($locations['postal'])) { $form_options['zips'] = array('pls_empty_value' => $pls_empty_value['zips']); } else { unset($locations['postal']['false']); sort($locations['postal']); $form_options['zips'] = array('pls_empty_value' => $pls_empty_value['zips']) + $locations['postal']; } if (empty($locations['neighborhood'])) { $form_options['neighborhood'] = array('pls_empty_value' => $pls_empty_value['neighborhoods']); } else { unset($locations['neighborhood']['false']); sort($locations['neighborhood']); $form_options['neighborhood'] = array('pls_empty_value' => $pls_empty_value['neighborhoods']) + $locations['neighborhood']; } if (empty($locations['county'])) { $form_options['county'] = array('pls_empty_value' => $pls_empty_value['county']); } else { unset($locations['county']['false']); sort($locations['county']); $form_options['county'] = array('pls_empty_value' => $pls_empty_value['county']) + $locations['county']; } if (empty($neighborhood_polygons_options)) { $form_options['neighborhood_polygons'] = array('pls_empty_value' => $pls_empty_value['neighborhood_polygons']); } else { unset($neighborhood_polygons_options['false']); sort($neighborhood_polygons_options); $form_options['neighborhood_polygons'] = array('pls_empty_value' => $pls_empty_value['neighborhood_polygons']) + $neighborhood_polygons_options; } // Min/Max Sqft /** Define the minimum price options array. */ $form_options['min_sqft'] = array('pls_empty_value' => $pls_empty_value['min_sqft'], '200' => '200', '400' => '400', '600' => '600', '800' => '800', '1000' => '1,000', '1200' => '1,200', '1400' => '1,400', '1600' => '1,600', '1800' => '1,800', '2000' => '2,000', '2200' => '2,200', '2400' => '2,400', '2600' => '2,600', '2800' => '2,800', '3000' => '3,000', '3500' => '3,500', '4000' => '4,000', '4500' => '4,500', '5000' => '5,000', '6000' => '6,000', '7000' => '7,000', '8000' => '8,000'); $user_start_sqft = pls_get_option('pls-option-sqft-min') ? pls_get_option('pls-option-sqft-min') : 0; $user_end_sqft = pls_get_option('pls-option-sqft-max'); $user_inc_sqft = pls_get_option('pls-option-sqft-inc'); if (is_numeric($user_start_sqft) && is_numeric($user_end_sqft) && is_numeric($user_inc_sqft)) { // Handle when increment is larger than the range from start to end if ($user_inc_sqft > $user_end_sqft - $user_start_sqft) { $user_inc_sqft = $user_end_sqft - $user_start_sqft; } $range = range($user_start_sqft, $user_end_sqft, $user_inc_sqft); $form_options['min_sqft'] = array(); foreach ($range as $sqft_value) { $form_options['min_sqft'][$sqft_value] = PLS_Format::number($sqft_value, array('abbreviate' => false)); } } /** Set the maximum price options array. */ $form_options['max_sqft'] = $form_options['min_sqft']; /* max_sqft default needs to be set too */ $form_options['max_sqft']['pls_empty_value'] = __($pls_empty_value['max_sqft'], pls_get_textdomain()); // Price Ranges /** Define the minimum price options array. */ $form_options['min_price'] = array('pls_empty_value' => __($pls_empty_value['min_price'], pls_get_textdomain()), '0' => '$0', '400' => '$400', '500' => '$500', '2000' => '$2,000', '3000' => '$3,000', '4000' => '$4,000', '5000' => '$5,000', '50000' => '$50,000', '100000' => '$100,000', '200000' => '$200,000', '350000' => '$350,000', '400000' => '$400,000', '450000' => '$450,000', '500000' => '$500,000', '600000' => '$600,000', '700000' => '$700,000', '800000' => '$800,000', '900000' => '$900,000', '1000000' => '$1,000,000'); /* Set the maximum price options array + its default */ $form_options['max_price'] = $form_options['min_price']; $form_options['max_price']['pls_empty_value'] = __($pls_empty_value['max_price'], pls_get_textdomain()); $user_price_start = pls_get_option('pls-option-price-min') ? pls_get_option('pls-option-price-min') : 0; $user_price_end = pls_get_option('pls-option-price-max'); $user_price_inc = pls_get_option('pls-option-price-inc'); if (is_numeric($user_price_start) && is_numeric($user_price_end) && is_numeric($user_price_inc)) { $range = range($user_price_start, $user_price_end, $user_price_inc); // Create empty arrays $form_options['min_price'] = array(); $form_options['max_price'] = array(); // set empty values $form_options['min_price']['pls_empty_value'] = __($pls_empty_value['min_price'], pls_get_textdomain()); $form_options['max_price']['pls_empty_value'] = __($pls_empty_value['max_price'], pls_get_textdomain()); foreach ($range as $price_value) { $form_options['min_price'][$price_value] = PLS_Format::number($price_value, array('abbreviate' => false)); $form_options['max_price'][$price_value] = PLS_Format::number($price_value, array('abbreviate' => false)); } } // Price for Rentals /** Define the minimum price options array. */ $form_options['min_price_rental'] = array('pls_empty_value' => __($pls_empty_value['min_price_rental'], pls_get_textdomain()), '200' => '$200', '400' => '$400', '600' => '$600', '800' => '$800', '1000' => '$1,000', '1100' => '$1,100', '1200' => '$1,200', '1300' => '$1,300', '1400' => '$1,400', '1500' => '$1,500', '1600' => '$1,600', '1700' => '$1,700', '1800' => '$1,800', '1900' => '$1,900', '2000' => '$2,000', '2100' => '$2,100', '2200' => '$2,200', '2300' => '$2,300', '2400' => '$2,400', '2500' => '$2,500', '2600' => '$2,600', '2700' => '$2,700', '2800' => '$2,800', '2900' => '$2,900', '3000' => '$3,000', '3500' => '$3,500', '4000' => '$4,000', '4500' => '$4,500', '5000' => '$5,000', '6000' => '$6,000', '7000' => '$7,000', '8000' => '$8,000'); /* Set the maximum price rental options array + its default */ $form_options['max_price_rental'] = $form_options['min_price_rental']; $form_options['max_price_rental']['pls_empty_value'] = __($pls_empty_value['max_price_rental'], pls_get_textdomain()); $user_price_start_rental = pls_get_option('pls-option-rental-price-min') ? pls_get_option('pls-option-rental-price-min') : 0; $user_price_end_rental = pls_get_option('pls-option-rental-price-max'); $user_price_inc_rental = pls_get_option('pls-option-rental-price-inc'); if (is_numeric($user_price_start_rental) && is_numeric($user_price_end_rental) && is_numeric($user_price_inc_rental)) { // Handle when increment is larger than the range from start to end if ($user_price_inc_rental > $user_price_end_rental - $user_price_start_rental) { $user_price_inc_rental = $user_price_end_rental - $user_price_start_rental; } $range = range($user_price_start_rental, $user_price_end_rental, $user_price_inc_rental); // Create empty arrays $form_options['min_price_rental'] = array(); $form_options['max_price_rental'] = array(); // set empty values $form_options['min_price_rental']['pls_empty_value'] = __($pls_empty_value['min_price_rental'], pls_get_textdomain()); $form_options['max_price_rental']['pls_empty_value'] = __($pls_empty_value['max_price_rental'], pls_get_textdomain()); foreach ($range as $price_value) { $form_options['min_price_rental'][$price_value] = PLS_Format::number($price_value, array('abbreviate' => false)); $form_options['max_price_rental'][$price_value] = PLS_Format::number($price_value, array('abbreviate' => false)); } } // Price for Sales /** Define the minimum price options array. */ $form_options['min_price_sales'] = array('pls_empty_value' => __($pls_empty_value['min_price_sales'], pls_get_textdomain()), '20000' => '$20,000', '40000' => '$40,000', '60000' => '$60,000', '80000' => '$80,000', '100000' => '$100,000', '120000' => '$120,000', '140000' => '$140,000', '160000' => '$160,000', '180000' => '$180,000', '200000' => '$200,000', '250000' => '$250,000', '300000' => '$300,000', '350000' => '$350,000', '400000' => '$400,000', '450000' => '$450,000', '500000' => '$500,000', '550000' => '$550,000', '600000' => '$600,000', '650000' => '$650,000', '700000' => '$700,000', '750000' => '$750,000', '800000' => '$800,000', '850000' => '$850,000', '900000' => '$900,000', '950000' => '$950,000', '1000000' => '$1,000,000'); /* Set the maximum price sales options array + its default */ $form_options['max_price_sales'] = $form_options['min_price_sales']; $form_options['max_price_sales']['pls_empty_value'] = __($pls_empty_value['max_price_sales'], pls_get_textdomain()); $user_price_start_sales = pls_get_option('pls-option-sales-price-min') ? pls_get_option('pls-option-sales-price-min') : 0; $user_price_end_sales = pls_get_option('pls-option-sales-price-max'); $user_price_inc_sales = pls_get_option('pls-option-sales-price-inc'); if (is_numeric($user_price_start_sales) && is_numeric($user_price_end_sales) && is_numeric($user_price_inc_sales)) { // Handle when increment is larger than the range from start to end if ($user_price_inc_sales > $user_price_end_sales - $user_price_start_sales) { $user_price_inc_sales = $user_price_end_sales - $user_price_start_sales; } $range = range($user_price_start_sales, $user_price_end_sales, $user_price_inc_sales); // Create empty arrays $form_options['min_price_sales'] = array(); $form_options['max_price_sales'] = array(); // set empty values $form_options['min_price_sales']['pls_empty_value'] = __($pls_empty_value['min_price_sales'], pls_get_textdomain()); $form_options['max_price_sales']['pls_empty_value'] = __($pls_empty_value['max_price_sales'], pls_get_textdomain()); foreach ($range as $price_value) { $form_options['min_price_sales'][$price_value] = PLS_Format::number($price_value, array('abbreviate' => false)); $form_options['max_price_sales'][$price_value] = PLS_Format::number($price_value, array('abbreviate' => false)); } } // Set min_beds/max_beds form element $form_options['min_beds'] = array('pls_empty_value' => __($pls_empty_value['min_beds'], pls_get_textdomain()), '0' => '0', '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '10' => '10', '11' => '11', '12' => '12', '13' => '13', '14' => '14', '15' => '15'); $user_bed_start = pls_get_option('pls-option-bed-min') ? pls_get_option('pls-option-bed-min') : 0; $user_bed_end = pls_get_option('pls-option-bed-max') ? pls_get_option('pls-option-bed-max') : 15; $user_bed_inc = pls_get_option('pls-option-bed-inc') ? pls_get_option('pls-option-bed-inc') : 1; if (is_numeric($user_bed_start) && is_numeric($user_bed_end) && is_numeric($user_bed_inc)) { $range = range($user_bed_start, $user_bed_end, $user_bed_inc); $form_options['min_beds'] = array(); foreach ($range as $bed_value) { $form_options['min_beds'][$bed_value] = $bed_value; } $form_options['min_beds'] = array('pls_empty_value' => $pls_empty_value['min_beds']) + $form_options['min_beds']; } /** Set the max beds array too. */ $form_options['max_beds'] = $form_options['min_beds']; // Set min_baths/max_baths form element $form_options['min_baths'] = array('pls_empty_value' => __($pls_empty_value['min_baths'], pls_get_textdomain()), '0' => '0', '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '10' => '10'); $user_bath_start = pls_get_option('pls-option-bath-min') ? pls_get_option('pls-option-bath-min') : 0; $user_bath_end = pls_get_option('pls-option-bath-max') ? pls_get_option('pls-option-bath-max') : 10; $user_bath_inc = pls_get_option('pls-option-bath-inc') ? pls_get_option('pls-option-bath-inc') : 1; if (is_numeric($user_bath_start) && is_numeric($user_bath_end) && is_numeric($user_bath_inc)) { $range = range($user_bath_start, $user_bath_end, $user_bath_inc); $form_options['min_baths'] = array(); foreach ($range as $bath_value) { $form_options['min_baths'][$bath_value] = $bath_value; } $form_options['min_baths'] = array('pls_empty_value' => $pls_empty_value['min_baths']) + $form_options['min_baths']; } /** Set the max baths array too. */ $form_options['max_baths'] = $form_options['min_baths']; /** Define an array for extra attributes. */ $form_opt_attr = array(); /** Filter form fields. */ $form_option_keys = array_keys($form_options); $form_options_count = count($form_option_keys); // foreach( $form_options as $option_name => &$opt_array ) { // replace the foreach with for to provide reference update functionality in the loop for ($i = 0; $i < $form_options_count; $i++) { $option_name = $form_option_keys[$i]; $opt_array = $form_options[$option_name]; /** Filter each of the fields options arrays. */ $opt_array = apply_filters(pls_get_merged_strings(array("pls_listings_search_form_{$option_name}_array", $context), '_', 'pre', false), $opt_array, $context_var); /** Form options array. */ $form_opt_attr[$option_name] = apply_filters(pls_get_merged_strings(array("pls_listings_search_form_{$option_name}_attributes", $context), '_', 'pre', false), array(), $context_var); /** Make sure it is an array. */ if (!is_array($form_opt_attr[$option_name])) { $form_opt_attr[$option_name] = array(); } /** Append the data-placeholder attribute. */ if (isset($opt_array['pls_empty_value'])) { $form_opt_attr[$option_name] = $form_opt_attr[$option_name] + array('data-placeholder' => $opt_array['pls_empty_value']); } $form_options[$option_name] = $opt_array; } if (!isset($_POST['metadata'])) { $_POST['metadata'] = array(); } /** * Elements HTML. */ /** Add the bedrooms select element. */ if ($bedrooms == 1) { $selected_beds = isset($_POST['metadata']['beds']) ? wp_kses_post($_POST['metadata']['beds']) : false; $form_html['bedrooms'] = pls_h('select', array('name' => 'metadata[beds]') + $form_opt_attr['bedrooms'], pls_h_options($form_options['bedrooms'], $selected_beds)); } /** Add the bedrooms select element. */ if ($min_beds == 1) { $selected_min_beds = isset($_POST['metadata']['min_beds']) ? $_POST['metadata']['min_beds'] : false; $form_html['min_beds'] = pls_h('select', array('name' => 'metadata[min_beds]') + $form_opt_attr['min_beds'], pls_h_options($form_options['min_beds'], $selected_min_beds)); } /** Add the bedrooms select element. */ if ($max_beds == 1) { $selected_max_beds = isset($_POST['metadata']['max_beds']) ? $_POST['metadata']['max_beds'] : false; $form_html['max_beds'] = pls_h('select', array('name' => 'metadata[max_beds]') + $form_opt_attr['max_beds'], pls_h_options($form_options['max_beds'], $selected_max_beds)); } /** Add the bathroms select element. */ if ($bathrooms == 1) { $selected_baths = isset($_POST['metadata']['baths']) ? wp_kses_post($_POST['metadata']['baths']) : false; $form_html['bathrooms'] = pls_h('select', array('name' => 'metadata[baths]') + $form_opt_attr['bathrooms'], pls_h_options($form_options['bathrooms'], $selected_baths)); } /** Add the min baths select element. */ if ($min_baths == 1) { $selected_min_baths = isset($_POST['metadata']['min_baths']) ? $_POST['metadata']['min_baths'] : false; $form_html['min_baths'] = pls_h('select', array('name' => 'metadata[min_baths]') + $form_opt_attr['min_baths'], pls_h_options($form_options['min_baths'], $selected_min_baths)); } /** Add the max baths select element. */ if ($max_baths == 1) { $selected_max_baths = isset($_POST['metadata']['max_baths']) ? $_POST['metadata']['max_baths'] : false; $form_html['max_baths'] = pls_h('select', array('name' => 'metadata[max_baths]') + $form_opt_attr['max_baths'], pls_h_options($form_options['max_baths'], $selected_max_baths)); } /** Add the bathroms select element. */ if ($half_baths == 1) { $selected_half_baths = isset($_POST['metadata']['half_baths']) ? wp_kses_post($_POST['metadata']['half_baths']) : false; $form_html['half_baths'] = pls_h('select', array('name' => 'metadata[half_baths]') + $form_opt_attr['half_baths'], pls_h_options($form_options['half_baths'], $selected_half_baths)); } /** Add the property type select element. */ if ($property_type == 1) { $selected_property_type = isset($_POST['property_type']) ? wp_kses_post($_POST['property_type']) : false; $form_html['property_type'] = pls_h('select', array('name' => 'property_type') + $form_opt_attr['property_type'], pls_h_options($form_options['property_type'], $selected_property_type)); } /** Add the listing type select element. */ if ($listing_types == 1) { $selected_listing_types = isset($_POST['listing_types']) ? wp_kses_post($_POST['listing_types']) : false; $form_html['listing_types'] = pls_h('select', array('name' => 'listing_types') + $form_opt_attr['listing_types'], pls_h_options($form_options['listing_types'], $selected_listing_types)); } /** Add the zoning type select element. */ if ($zoning_types == 1) { $selected_zoning_types = isset($_POST['zoning_types']) ? wp_kses_post($_POST['zoning_types']) : false; $form_html['zoning_types'] = pls_h('select', array('name' => 'zoning_types[]') + $form_opt_attr['zoning_types'], pls_h_options($form_options['zoning_types'], $selected_zoning_types)); } /** Add the purchase type select element. */ if ($purchase_types == 1) { $default_purchase_types = @pls_get_option('default_form_options_purchase_types'); // Set Default if (empty($_POST['purchase_types'])) { $purchase_types_select = array($default_purchase_types); } else { $purchase_types_select = wp_kses_post($_POST['purchase_types']); } $form_html['purchase_types'] = pls_h('select', array('name' => 'purchase_types[]') + $form_opt_attr['purchase_types'], pls_h_options($form_options['purchase_types'], $purchase_types_select)); } /** Add the availability select element. */ if ($available_on == 1) { $selected_avail_on = isset($_POST['metadata']['avail_on']) ? wp_kses_post($_POST['metadata']['avail_on']) : false; $form_html['available_on'] = pls_h('select', array('name' => 'metadata[avail_on]') + $form_opt_attr['available_on'], pls_h_options($form_options['available_on'], $selected_avail_on)); } /** Add the cities select element. */ if ($multi_cities == 1) { // multi-city select option enabled $selected_locality = isset($_POST['location']['locality']) ? wp_kses_post($_POST['location']['locality']) : false; $form_html['cities'] = pls_h('select', array('name' => 'location[locality][]', 'multiple' => 'multiple') + $form_opt_attr['cities'], pls_h_options($form_options['cities'], $selected_locality, true)); } elseif ($cities == 1) { $selected_locality = isset($_POST['location']['locality']) ? wp_kses_post($_POST['location']['locality']) : false; $form_html['cities'] = pls_h('select', array('name' => 'location[locality]') + $form_opt_attr['cities'], pls_h_options($form_options['cities'], $selected_locality, true)); } /** Add the cities select element. */ if ($multi_states == 1) { // multi-state select option enabled $selected_region = isset($_POST['location']['region']) ? wp_kses_post($_POST['location']['region']) : false; $form_html['states'] = pls_h('select', array('name' => 'location[region][]', 'multiple' => 'multiple') + $form_opt_attr['states'], pls_h_options($form_options['states'], $selected_region, true)); } elseif ($states == 1) { $selected_region = isset($_POST['location']['region']) ? wp_kses_post($_POST['location']['region']) : false; $form_html['states'] = pls_h('select', array('name' => 'location[region]') + $form_opt_attr['states'], pls_h_options($form_options['states'], $selected_region, true)); } /** Add the cities select element. */ if ($zips == 1) { $selected_postal = isset($_POST['location']['postal']) ? wp_kses_post($_POST['location']['postal']) : false; $form_html['zips'] = pls_h('select', array('name' => 'location[postal]') + $form_opt_attr['zips'], pls_h_options($form_options['zips'], $selected_postal, true)); } /** Add the neighborhood select element. */ if ($multi_neighborhoods == 1) { // multi-neighborhood select option enabled $selected_neighborhood = isset($_POST['location']['neighborhood']) ? wp_kses_post($_POST['location']['neighborhood']) : false; $form_html['neighborhood'] = pls_h('select', array('name' => 'location[neighborhood][]', 'multiple' => 'multiple') + $form_opt_attr['neighborhood'], pls_h_options($form_options['neighborhood'], $selected_neighborhood, true)); } elseif ($neighborhood == 1) { $selected_neighborhood = isset($_POST['location']['neighborhood']) ? wp_kses_post($_POST['location']['neighborhood']) : false; $form_html['neighborhood'] = pls_h('select', array('name' => 'location[neighborhood]') + $form_opt_attr['neighborhood'], pls_h_options($form_options['neighborhood'], $selected_neighborhood, true)); } /** Add the county select element. */ if ($county == 1) { $selected_county = isset($_POST['location']['county']) ? wp_kses_post($_POST['location']['county']) : false; $form_html['county'] = pls_h('select', array('name' => 'location[county]') + $form_opt_attr['county'], pls_h_options($form_options['county'], $selected_county, true)); } /** Add the neighborhood / neighborhood_polygon select element. */ if ($neighborhood_polygons == 1) { if (count($form_options['neighborhood_polygons']) > 1) { $selected_polygons = isset($_POST['neighborhood_polygons']) ? wp_kses_post($_POST['neighborhood_polygons']) : false; $form_html['neighborhood_polygons'] = pls_h('select', array('name' => 'neighborhood_polygons') + $form_opt_attr['neighborhood_polygons'], pls_h_options($form_options['neighborhood_polygons'], $selected_polygons, true)); } else { // default to MLS data for neighborhoods if no polygons are set $selected_polygons = isset($_POST['location']['neighborhood']) ? wp_kses_post($_POST['location']['neighborhood']) : false; $form_html['neighborhood_polygons'] = pls_h('select', array('name' => 'location[neighborhood]') + $form_opt_attr['neighborhood'], pls_h_options($form_options['neighborhood'], $selected_neighborhood, true)); } } /** Add the minimum sqft select element. */ if ($min_sqft == 1) { $selected_min_sqft = isset($_POST['metadata']['min_sqft']) ? wp_kses_post($_POST['metadata']['min_sqft']) : false; $form_html['min_sqft'] = pls_h('select', array('name' => 'metadata[min_sqft]') + $form_opt_attr['min_sqft'], pls_h_options($form_options['min_sqft'], $selected_min_sqft)); } /** Add the minimum price select element. */ if ($max_sqft == 1) { $selected_max_sqft = isset($_POST['metadata']['max_sqft']) ? wp_kses_post($_POST['metadata']['max_sqft']) : false; $form_html['max_sqft'] = pls_h('select', array('name' => 'metadata[max_sqft]') + $form_opt_attr['max_sqft'], pls_h_options($form_options['max_sqft'], $selected_max_sqft)); } /** Add the minimum price select element. */ if ($min_price == 1) { $selected_min_price = isset($_POST['metadata']['min_price']) ? wp_kses_post($_POST['metadata']['min_price']) : false; $form_html['min_price'] = pls_h('select', array('name' => 'metadata[min_price]') + $form_opt_attr['min_price'], pls_h_options($form_options['min_price'], $selected_min_price)); } /** Add the maximum price select element. */ if ($max_price == 1) { $selected_max_price = isset($_POST['metadata']['max_price']) ? wp_kses_post($_POST['metadata']['max_price']) : false; $form_html['max_price'] = pls_h('select', array('name' => 'metadata[max_price]') + $form_opt_attr['max_price'], pls_h_options($form_options['max_price'], $selected_max_price)); } /** Add the minimum price select element. */ if ($min_price_rental == 1) { $selected_min_price = isset($_POST['metadata']['min_price']) ? wp_kses_post($_POST['metadata']['min_price']) : false; $form_html['min_price_rental'] = pls_h('select', array('name' => 'metadata[min_price]') + $form_opt_attr['min_price'], pls_h_options($form_options['min_price_rental'], $selected_min_price)); } /** Add the maximum price select element. */ if ($max_price_rental == 1) { $selected_max_price = isset($_POST['metadata']['max_price']) ? wp_kses_post($_POST['metadata']['max_price']) : false; $form_html['max_price_rental'] = pls_h('select', array('name' => 'metadata[max_price]') + $form_opt_attr['max_price'], pls_h_options($form_options['max_price_rental'], $selected_max_price)); } /** Add the minimum price select element. */ if ($min_price_sales == 1) { $selected_min_price = isset($_POST['metadata']['min_price']) ? wp_kses_post($_POST['metadata']['min_price']) : false; $form_html['min_price_sales'] = pls_h('select', array('name' => 'metadata[min_price]') + $form_opt_attr['min_price'], pls_h_options($form_options['min_price_sales'], $selected_min_price)); } /** Add the maximum price select element. */ if ($max_price_sales == 1) { $selected_max_price = isset($_POST['metadata']['max_price']) ? wp_kses_post($_POST['metadata']['max_price']) : false; $form_html['max_price_sales'] = pls_h('select', array('name' => 'metadata[max_price]') + $form_opt_attr['max_price'], pls_h_options($form_options['max_price_sales'], $selected_max_price)); } $section_title = array('bedrooms' => 'Beds', 'min_beds' => 'Min Beds', 'max_beds' => 'Max Beds', 'bathrooms' => 'Baths', 'min_baths' => 'Min Baths', 'max_baths' => 'Max Baths', 'half_baths' => 'Half Baths', 'property_type' => 'Property Type', 'zoning_types' => 'Zoning Type', 'listing_types' => 'Listing Type', 'purchase_types' => 'Purchase Type', 'available_on' => 'Available', 'cities' => 'Near', 'states' => 'State', 'zips' => 'Zip Code', 'min_price' => 'Min Price', 'max_price' => 'Max Price', 'neighborhood' => 'Neighborhood', 'county' => 'County', 'min_beds' => 'Min Beds', 'max_beds' => 'Max Beds', 'min_price_rental' => 'Min Price Rental', 'max_price_rental' => 'Max Price Rental', 'min_price_sales' => 'Min Price Sales', 'max_price_sales' => 'Max Price Sales', 'neighborhood_polygons' => 'Neighborhood Polygon', 'min_sqft' => 'Min Sqft', 'max_sqft' => 'Max Sqft'); // In case user somehow disables all filters. if (empty($form_html)) { return ''; } /** Apply filters on all the form elements html. */ $form_html_keys = array_keys($form_html); $form_html_count = count($form_html_keys); // foreach( $form_html as $option_name => &$opt_html ) { for ($i = 0; $i < $form_html_count; $i++) { $option_name = $form_html_keys[$i]; $opt_html = $form_html[$option_name]; $opt_html = apply_filters(pls_get_merged_strings(array("pls_listings_search_form_{$option_name}_html", $context), '_', 'pre', false), $opt_html, $form_options[$option_name], $section_title[$option_name], $context_var); $form_html[$option_name] = $opt_html; } /** Combine the form elements. */ $form = ''; foreach ($form_html as $label => $select) { $form .= pls_h('section', array('class' => $label . ' pls_search_form'), pls_h_label($section_title[$label], $label) . $select); } /** Add the filtered submit button. */ if ($include_submit) { $form_html['submit'] = apply_filters(pls_get_merged_strings(array("pls_listings_search_submit", $context), '_', 'pre', false), pls_h('input', array('class' => 'pls_search_button', 'type' => 'submit', 'value' => 'Search')), $context_var); /** Append the form submit. */ $form .= $form_html['submit']; } /** Wrap the combined form content in the form element and filter it. */ $form_id = pls_get_merged_strings(array('pls-listings-search-form', $context), '-', 'pre', false); $form = pls_h('form', array('action' => @$form_data->action, 'method' => 'post', 'id' => $form_id, 'class' => $class), @$form_data->hidden_field . apply_filters(pls_get_merged_strings(array("pls_listings_search_form_inner", $context), '_', 'pre', false), $form, $form_html, $form_options, $section_title, $context_var)); /** Filter the form. */ $result = apply_filters(pls_get_merged_strings(array("pls_listings_search_form_outer", $context), '_', 'pre', false), $form, $form_html, $form_options, $section_title, @$form_data, $form_id, $context_var); // Load the filters.js script... $result .= '<script type="text/javascript" src="' . trailingslashit(PLS_JS_URL) . 'scripts/filters.js"></script>'; $cache->save($result); return $result; }
function custom_side_agent_widget_html($post_item, $post_html) { //pls_dump($post_html); $agent = PLS_Plugin_API::get_user_details(); ob_start(); ?> <section class="agent"> <?php if (pls_get_option('pls-user-image')) { ?> <img src="<?php echo pls_get_option('pls-user-image'); ?> " alt="<?php _e('agent photo', 'tampa'); ?> " height=120> <?php } else { if (isset($agent['user']['headshot']) && $agent['user']['headshot']) { ?> <img src="<?php echo $agent['user']['headshot']; ?> " alt="<?php _e('agent photo', 'tampa'); ?> " height=120> <?php } } ?> <?php if (pls_get_option('pls-user-name')) { ?> <h4><?php echo pls_get_option('pls-user-name'); ?> </h4> <?php } else { ?> <h4><?php echo $agent['user']['first_name'] . ' ' . $agent['user']['last_name']; ?> </h4> <?php } ?> <?php if (pls_get_option('pls-user-phone')) { ?> <span><?php echo pls_get_option('pls-user-phone'); ?> </span> <?php } else { ?> <span><?php echo $agent['user']['phone']; ?> </span <?php } ?> <?php if (pls_get_option('pls-user-email')) { ?> <span><a href="mailto:<?php echo pls_get_option('pls-user-email'); ?> "><?php echo pls_get_option('pls-user-email'); ?> </a></span> <?php } else { ?> <span><a href="mailto:<?php echo $agent['user']['email']; ?> "><?php echo $agent['user']['email']; ?> </a></span> <?php } ?> <?php if (pls_get_option('pls-user-description')) { ?> <p><?php echo pls_get_option('pls-user-description'); ?> </p> <?php } ?> </section> <?php return trim(ob_get_clean()); }
function tampa_custom_home_listing_list($listing_html, $listing_data) { // pls_dump($listing_data); ob_start(); ?> <section class="list-unit"> <section class="lu-left"> <?php if (isset($listing_data['images']) && is_array($listing_data['images'])) { ?> <?php echo PLS_Image::load($listing_data['images'][0]['url'], array('resize' => array('w' => 144, 'h' => 93, 'method' => 'crop'), 'fancybox' => true)); ?> <?php } else { ?> <?php echo PLS_Image::load('', array('resize' => array('w' => 144, 'h' => 93, 'method' => 'crop'), 'fancybox' => true)); ?> <?php } ?> <?php if (isset($listing_data['rets']['mls_id']) && $listing_data['rets']['mls_id']) { ?> <p class="mls"><span>MLS #:</span> <?php echo $listing_data['rets']['mls_id']; ?> </p> <?php } ?> </section> <section class="lu-right"> <div class="lu-address"> <h4><a href="<?php echo $listing_data['cur_data']['url']; ?> "><?php echo $listing_data['location']['address']; ?> </a></h4> <p class="area"><?php echo $listing_data['location']['locality']; ?> , <?php echo $listing_data['location']['region']; ?> </p> </div><!--lu-address--> <div class="lu-price"> <p class="price"><strong><?php echo PLS_Format::number($listing_data['cur_data']['price'], array('abbreviate' => false, 'add_currency_sign' => true)); ?> </strong><?php if ($listing_data['cur_data']['lse_trms'] != null) { echo $listing_data['cur_data']['lse_trms']; } ?> </p> <p class="rent-label"><?php if (isset($listing_data['purchase_types'][0])) { echo ucwords($listing_data['purchase_types'][0]); } ?> </p> </div><!--lu-price--> <div class="lu-main"> <?php if (isset($listing_data['cur_data']['desc'])) { echo '<p>'; if (strlen($listing_data['cur_data']['desc']) < 200) { echo $listing_data['cur_data']['desc']; } else { $position = strrpos(substr($listing_data['cur_data']['desc'], 0, 200), ' '); echo substr($listing_data['cur_data']['desc'], 0, $position) . '...'; } echo '</p>'; } ?> <p class="info"><span><?php echo $listing_data['cur_data']['beds']; ?> </span> Bedrooms | <span><?php echo $listing_data['cur_data']['baths']; ?> </span> Bathrooms <?php if ($listing_data['cur_data']['sqft'] != null) { echo '| <span>' . PLS_Format::number($listing_data['cur_data']['sqft'], array('abbreviate' => false, 'add_currency_sign' => false)) . '</span> sqft'; } ?> </p> <!-- <a class="fav" href="#">Add to Favorites</a> --> <?php $api_whoami = PLS_Plugin_API::get_user_details(); ?> <?php if (pls_get_option('pls-user-email')) { ?> <a class="info-bt" href="mailto:<?php echo pls_get_option('pls-user-email'); ?> " target="_blank"><?php _e('Request Information', 'tampa'); ?> </a> <?php } else { ?> <a class="info-bt" href="mailto:<?php echo $api_whoami['user']['email']; ?> " target="_blank"><?php _e('Request Information', 'tampa'); ?> </a> <?php } ?> <a class="see-details-link details-bt" href="<?php echo $listing_data['cur_data']['url']; ?> "><?php _e('See Details', 'tampa'); ?> </a> </div><!--lu-main--> </section><!--lu-right--> <?php PLS_Listing_Helper::get_compliance(array('context' => 'inline_search', 'agent_name' => $listing_data['rets']['aname'], 'office_name' => $listing_data['rets']['oname'], 'office_phone' => PLS_Format::phone($listing_data['contact']['phone']), 'agent_license' => isset($listing_data['rets']['alicense']) ? $listing_data['rets']['alicense'] : false, 'co_agent_name' => isset($listing_data['rets']['aconame']) ? $listing_data['rets']['aconame'] : false, 'co_office_name' => isset($listing_data['rets']['oconame']) ? $listing_data['rets']['oconame'] : false)); ?> <div class="clr"></div> </section><!--list-unit--> <?php $listing_html = ob_get_clean(); return $listing_html; }
public function widget($args, $instance) { // Widget output extract($args); $title = empty($instance['title']) ? ' ' : apply_filters('title', $instance['title']); $facebook_id = empty($instance['facebook_id']) ? ' ' : apply_filters('facebook_id', $instance['facebook_id']); $count = empty($instance['count']) ? ' ' : apply_filters('count', $instance['count']); if (!empty($facebook_id)) { $page_id = $facebook_id; } else { $page_id = @pls_get_option('pls-facebook-id'); } $limit = $count; // get Facebook Feed $feed = get_facebook_feed($page_id, $limit, $post_types = array()); $widget_body = ''; foreach ($feed['posts']['data'] as $post) { $fb_post = build_fb_post_html($post); ob_start(); ?> <article class="fb_post <?php echo $fb_post['type']; ?> "> <p class="fb_post_message"><?php echo $fb_post['message']; ?> </p> <?php if (!empty($fb_post['media'])) { ?> <div class="fb_post_media"> <!-- Media --> <?php echo $fb_post['media']; ?> <div class="fb_media_caption_wrapper"> <?php if (!empty($fb_post['title_caption'])) { ?> <!-- Caption Title --> <p class="fb_media_title_caption"><a href="<?php echo $fb_post['link']; ?> "><?php echo $fb_post['title_caption']; ?> </a></p> <?php } ?> <?php if (!empty($fb_post['description'])) { ?> <!-- description --> <p class="fb_media_caption"><?php echo $fb_post['description']; ?> </p> <?php } ?> </div> </div> <?php } ?> <p class="fb_post_date"><span class="fb_month"><?php echo $fb_post['month']; ?> </span> <span class="fb_day"><?php echo $fb_post['day']; ?> </span>, <span class="fb_year"><?php echo $fb_post['year']; ?> </span></p> </article> <?php $post_item = ob_get_clean(); if (!isset($widget_id)) { $widget_id = 1; } /** Wrap the post in an article element and filter its contents. */ $post_item = apply_filters('pls_widget_facebook_post_inner', $post_item, $fb_post, $instance, $widget_id); /** Append the filtered post to the post list. */ $widget_body .= apply_filters('pls_widget_facebook_post_outer', $post_item, $fb_post, $instance, $widget_id); } /** Define the default argument array. */ $defaults = array('before_widget' => '<section class="facebook-widget widget">', 'after_widget' => '</section>', 'title' => '', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>'); /** Merge the arguments with the defaults. */ $args = wp_parse_args($args, $defaults); extract($args, EXTR_SKIP); ?> <?php echo $before_widget; ?> <?php echo $before_title . $title . $after_title; ?> <style type="text/css" media="screen"> .fb-play-icon { background: url(http://static.ak.fbcdn.net/rsrc.php/v2/yJ/x/Gj2ad6O09TZ.png) no-repeat 0 0; height: 26px; width: 35px; top: 50%; left: 50%; margin: -13px 0 0 -17px; position: absolute; } </style> <section class="facebook-sidebar-widget"> <?php echo $widget_body; ?> </section> <?php echo $after_widget; ?> <?php }
public function widget($args, $instance) { // Widget output extract($args); $title = empty($instance['title']) ? ' ' : apply_filters('title', $instance['title']); $fb_page_url = empty($instance['fb_page_url']) ? ' ' : apply_filters('fb_page_url', $instance['fb_page_url']); $width = empty($instance['width']) ? ' ' : apply_filters('width', $instance['width']); $height = empty($instance['height']) ? ' ' : apply_filters('height', $instance['height']); $faces = isset($instance['faces']) && $instance['faces'] == "false" ? false : true; $stream = isset($instance['stream']) && $instance['stream'] == "false" ? false : true; $border = isset($instance['border']) && $instance['border'] == "false" ? false : true; $header = isset($instance['header']) && $instance['header'] == "false" ? false : true; if (!empty($fb_page_url)) { $page_id = $fb_page_url; } else { $page_id = @pls_get_option('pls-facebook-page-url'); } /** Define the default argument array. */ $defaults = array('before_widget' => '<section class="facebook-like-box-widget widget">', 'after_widget' => '</section>', 'title' => '', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>'); /** Merge the arguments with the defaults. */ $args = wp_parse_args($args, $defaults); extract($args, EXTR_SKIP); // header: true // show_border: true // show_faces: true // colorscheme: light ?> <?php echo $before_widget; ?> <?php echo $before_title . $title . $after_title; ?> <section class="facebook-like-box-sidebar-widget"> <iframe src="//www.facebook.com/plugins/likebox.php?href=<?php echo $fb_page_url; ?> &width=<?php echo $width; ?> &height=<?php echo $height; ?> &show_faces=true&colorscheme=light&stream=false&show_border=true&header=true&appId=263914027073402" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:<?php echo $width; ?> px; height:<?php echo $height; ?> px;" allowTransparency="true"></iframe> </section> <?php echo $after_widget; ?> <?php }
public static function get($args = array()) { // Store this for use in the final output/response... $sEcho = isset($_POST['sEcho']) ? $_POST['sEcho'] : 0; unset($_POST['sEcho']); $context_orig = isset($_POST['context']) ? $_POST['context'] : ''; unset($_POST['context']); // If length is not set for number of listings to return, set it to our Theme Options default $_POST['limit'] = isset($_POST['iDisplayLength']) ? $_POST['iDisplayLength'] : pls_get_option('listings_default_list_length'); unset($_POST['iDisplayLength']); $_POST['offset'] = isset($_POST['iDisplayStart']) ? $_POST['iDisplayStart'] : 0; unset($_POST['iDisplayStart']); $saved_search_lookup = isset($_POST['saved_search_lookup']) ? $_POST['saved_search_lookup'] : null; unset($_POST['saved_search_lookup']); // Remove this so it doesn't accidentally end up as a superfluous argument of an API call... unset($_POST['action']); // Handle location edge-case... if (!empty($_POST['location']) && !empty($_POST['location']['address']) && empty($_POST['location']['address_match'])) { $_POST['location']['address_match'] = 'like'; } // Handle saved search... if (!is_null($saved_search_lookup)) { // Attempt to retrieve search filters associated with the given saved search lookup ID... // NOTE: If no filters exist for the passed ID, $filters = PLS_Plugin_API::get_saved_search_filters($saved_search_lookup); if (empty($filters) || !is_array($filters)) { PLS_Plugin_API::save_search($saved_search_lookup, $_POST); } else { // For backwards compatibility, handle older fields that are no longer stored as saved search filters... $old_field_map = array('sEcho' => false, 'context' => false, 'iDisplayLength' => 'limit', 'iDisplayStart' => 'offset', 'saved_search_lookup' => false, 'action' => false); foreach ($old_field_map as $old => $new) { if (isset($filters[$old])) { if ($new !== false) { $filters[$new] = $filters[$old]; } unset($filters[$old]); } } // Swap all existing POST filters for the ones associated with the retrieved saved search... $_POST = $filters; } } // Define the default argument array $defaults = array('loading_img' => admin_url('images/wpspin_light.gif'), 'image_width' => 100, 'crop_description' => 0, 'sort_type' => pls_get_option('listings_default_sort_type'), 'listings_per_page' => pls_get_option('listings_default_list_length'), 'context' => $context_orig, 'context_var' => NULL, 'append_to_map' => true, 'search_query' => $_POST, 'property_ids' => isset($_POST['property_ids']) ? $_POST['property_ids'] : '', 'allow_id_empty' => false); // Resolve function args with default ones (which include any existing POST fields)... $merged_args = wp_parse_args($args, $defaults); $cache = new PLS_Cache('list'); if ($cached_response = $cache->get($merged_args)) { // This field must match the one passed in with this request... $cached_response['sEcho'] = $sEcho; echo json_encode($cached_response); die; } // Extract the arguments after they merged with the defaults extract($merged_args, EXTR_SKIP); // Start off with a placeholder in case the plugin is not active or there is no API key... $api_response = PLS_Listing_Helper::$default_listing; // If plugin is active, grab listings intelligently... if (!pls_has_plugin_error()) { // Get the listings list markup and JS if (!empty($property_ids) || $allow_id_empty) { // Sometimes property_ids are passed in as a flat screen from the JS post object if (is_string($property_ids)) { $property_ids = explode(',', $property_ids); } $api_response = PLS_Plugin_API::get_listing_details(array('property_ids' => $property_ids, 'limit' => $_POST['limit'], 'offset' => $_POST['offset'])); } elseif (isset($search_query['neighborhood_polygons']) && !empty($search_query['neighborhood_polygons'])) { $api_response = PLS_Plugin_API::get_polygon_listings($search_query); } else { $api_response = PLS_Plugin_API::get_listings($search_query); } } $response = array(); // Build response for datatables.js $listings = array(); $listings_cache = new PLS_Cache('Listing Thumbnail'); foreach ($api_response['listings'] as $key => $listing) { // Check for cached listing thumbnail... $cache_id = array('context' => $context, 'listing_id' => $listing['id']); if (!($item_html = $listings_cache->get($cache_id))) { // Handle case of zero listing images... if (empty($listing['images'])) { $listing['images'][0]['url'] = ''; } ob_start(); ?> <div class="listing-item grid_8 alpha" itemscope itemtype="http://schema.org/Offer" data-listing="<?php echo $listing['id']; ?> "> <div class="listing-thumbnail grid_3 alpha"> <?php $property_images = is_array($listing['images']) ? $listing['images'] : array(); usort($property_images, array(__CLASS__, 'order_images')); ?> <a href="<?php echo @$listing['cur_data']['url']; ?> " itemprop="url"> <?php echo PLS_Image::load($property_images[0]['url'], array('resize' => array('w' => 210, 'h' => 140), 'fancybox' => true, 'as_html' => true, 'html' => array('alt' => $listing['location']['full_address'], 'itemprop' => 'image', 'placeholder' => PLS_IMG_URL . "/null/listing-300x180.jpg"))); ?> </a> </div> <div class="listing-item-details grid_5 omega"> <header> <p class="listing-item-address h4" itemprop="name"> <a href="<?php echo PLS_Plugin_API::get_property_url($listing['id']); ?> " rel="bookmark" title="<?php echo $listing['location']['address']; ?> " itemprop="url"> <?php echo $listing['location']['address'] . ', ' . $listing['location']['locality'] . ' ' . $listing['location']['region'] . ' ' . $listing['location']['postal']; ?> </a> </p> </header> <div class="basic-details"> <ul> <?php if (!empty($listing['cur_data']['beds'])) { ?> <li class="basic-details-beds p1"><span>Beds:</span> <?php echo @$listing['cur_data']['beds']; ?> </li> <?php } ?> <?php if (!empty($listing['cur_data']['baths'])) { ?> <li class="basic-details-baths p1"><span>Baths:</span> <?php echo @$listing['cur_data']['baths']; ?> </li> <?php } ?> <?php if (!empty($listing['cur_data']['half_baths'])) { ?> <li class="basic-details-half-baths p1"><span>Half Baths:</span> <?php echo @$listing['cur_data']['half_baths']; ?> </li> <?php } ?> <?php if (!empty($listing['cur_data']['price'])) { ?> <li class="basic-details-price p1" itemprop="price"><span>Price:</span> <?php echo PLS_Format::number($listing['cur_data']['price'], array('abbreviate' => false, 'add_currency_sign' => true)); ?> </li> <?php } ?> <?php if (!empty($listing['cur_data']['sqft'])) { ?> <li class="basic-details-sqft p1"><span>Sqft:</span> <?php echo PLS_Format::number($listing['cur_data']['sqft'], array('abbreviate' => false, 'add_currency_sign' => false)); ?> </li> <?php } ?> <?php if (!empty($listing['rets']['mls_id'])) { ?> <li class="basic-details-mls p1"><span>MLS ID:</span> <?php echo @$listing['rets']['mls_id']; ?> </li> <?php } ?> </ul> </div> <p class="listing-description p4" itemprop="description"> <?php echo substr($listing['cur_data']['desc'], 0, 300); ?> </p> </div> <div class="actions"> <a class="more-link" href="<?php echo PLS_Plugin_API::get_property_url($listing['id']); ?> " itemprop="url">View Property Details</a> <?php echo PLS_Plugin_API::placester_favorite_link_toggle(array('property_id' => $listing['id'])); ?> </div> <?php PLS_Listing_Helper::get_compliance(array('context' => 'inline_search', 'agent_name' => @$listing['rets']['aname'], 'office_name' => @$listing['rets']['oname'])); ?> </div> <?php $item_html = ob_get_clean(); $item_html = apply_filters(pls_get_merged_strings(array("pls_listings_list_ajax_item_html", $context), '_', 'pre', false), htmlspecialchars_decode($item_html), $listing, $context_var); $listings_cache->save($item_html); } $listings[$key][] = $item_html; $listings[$key][] = $listing; } // Required for datatables.js to function properly... $response['sFirst'] = 'Previous'; $response['sPrevious'] = 'Next'; $response['sEcho'] = $sEcho; $response['aaData'] = $listings; $api_total = isset($api_response['total']) ? $api_response['total'] : 0; $response['iTotalRecords'] = $api_total; $response['iTotalDisplayRecords'] = $api_total; $cache->save($response); ob_start("ob_gzhandler"); echo json_encode($response); // Wordpress echos out a "0" randomly -- die prevents this... die; }
/** * Slideshow * * @param string $args * @param mixed $data * @static * @access public * @return void */ public static function slideshow($args = '') { /** Define the default argument array */ $defaults = array('animation' => 'fade', 'animationSpeed' => 800, 'timer' => true, 'advanceSpeed' => 4000, 'pauseOnHover' => true, 'startClockOnMouseOut' => true, 'startClockOnMouseOutAfter' => 500, 'directionalNav' => true, 'captions' => true, 'captionAnimation' => 'fade', 'captionAnimationSpeed' => 800, 'afterSlideChange' => 'function(){}', 'bullets' => 'false', 'width' => 620, 'height' => 300, 'container_height' => false, 'context' => '', 'context_var' => false, 'featured_option_id' => false, 'allow_user_slides' => false, 'user_slides_header_id' => false, 'listings' => 'limit=5&sort_by=price', 'data' => false, 'post_id' => false, 'post_meta_key' => false, 'fluid' => false); $args = wp_parse_args($args, $defaults); /** Check cache, return something is there **/ $cache = new PLS_Cache('slide'); if ($result = $cache->get($args)) { return $result; } /** Extract all args for easy usage **/ extract($args, EXTR_SKIP); /** If the slideshow data is null or not an array AND the plugin is working, try to fetch the proper data... **/ if ((!$data || !is_array($data)) && !pls_has_plugin_error()) { /** Data assumed to take this form. */ $data = array('images' => array(), 'links' => array(), 'captions' => array()); // If the calling theme allows user input, get slideshow config option... if ($allow_user_slides && $user_slides_header_id) { $slides = pls_get_option($user_slides_header_id, array()); // Check to see if slides are set to custom, but are empty $custom_but_empty = isset($slides[0]) && $slides[0]['type'] == 'custom' && empty($slides[0]['image']); // Populate slides when '$custom_but_empty' is true OR when no slides exist... if ($custom_but_empty || empty($slides)) { $slides = self::empty_slides_and_add_random_listings(); } foreach ($slides as $index => $slide) { switch ($slide['type']) { case 'listing': unset($slide['html'], $slide['image'], $slide['type'], $slide['link']); // In this case, the slide's remaining key will correspond to it's property ID... $property_id = key($slide); $api_response = PLS_Plugin_API::get_listing_details(array('property_ids' => array($property_id))); if (!empty($api_response['listings']) && $api_response['listings'][0]['id'] === false) { self::$listings_to_delete[] = $property_id; } if ($api_response['total'] == '1') { $listing = $api_response['listings'][0]; $first_valid_img_url = null; // Overwrite the placester url with the local url... $listing_url = PLS_Plugin_API::get_property_url($listing['id']); $data['links'][] = $listing_url; // Try to retrieve the image url if order is set... if (is_array($listing['images']) && isset($listing['images'][0]['order'])) { foreach ($listing['images'] as $key => $image) { if ($image['order'] == 1) { $data['images'][$index] = $image['url']; // break, just in case the listing has more than one '1' in the 'order' param break; } // Record the first valid image URL in case no image has the top order... if (!isset($first_valid_img_url) && isset($image['url'])) { $first_valid_img_url = $image['url']; } } } // If image still isn't set, use first valid image URL discovered above, or just set to default... if (empty($data['images'][$index])) { $data['images'][$index] = isset($first_valid_img_url) ? $first_valid_img_url : self::$default_img_url; } $data['type'][] = 'listing'; $data['listing'][] = $listing; /** Get the listing caption **/ $data['captions'][] = trim(self::render_listing_caption($listing, $index)); } break; case 'custom': $is_empty = empty($slide['image']) && empty($slide['link']) && empty($slide['image']) && empty($slide['html']); // Only include a custom slide if it's not entirely empty... if (!$is_empty) { $data['images'][] = $slide['image']; $data['links'][] = $slide['link']; $data['type'][] = 'custom'; $data['captions'][] = trim(self::render_custom_caption($slide['html'], $index)); } break; } } } else { if (!empty($args['post_id']) && !empty($args['post_meta_key'])) { $api_response = PLS_Listing_Helper::get_featured_from_post($args['post_id'], $args['post_meta_key']); } elseif ($featured_option_id) { $api_response = PLS_Listing_Helper::get_featured($featured_option_id); } if (empty($api_response['listings'])) { $api_response = PLS_Plugin_API::get_listings($listings); } foreach ($api_response['listings'] as $index => $listing) { if (empty($listing['id'])) { continue; } $listing_url = PLS_Plugin_API::get_property_url($listing['id']); /** Overwrite the placester url with the local url. */ $data['links'][] = $listing_url; $data['images'][] = !empty($listing['images']) ? $listing['images'][0]['url'] : self::$default_img_url; $data['listing'][] = $listing; // Get the listing caption $listing_caption = trim(self::render_listing_caption($listing, $index)); // Add a filter for a single caption, to be edited via a template $single_caption = apply_filters(pls_get_merged_strings(array('pls_slideshow_single_caption', $context), '_', 'pre', false), $listing_caption, $listing, $context, $context_var, $index); $data['captions'][] = $single_caption; } } } /** Filter the data array */ $data = apply_filters(pls_get_merged_strings(array('pls_slideshow_data', $context), '_', 'pre', false), $data, $context, $context_var); /** Create the slideshow */ $html = array('slides' => '', 'captions' => ''); if (is_array($data['images'])) { foreach ($data['images'] as $index => $slide_src) { $extra_attr = array(); $extra_attr['title'] = ''; /** Save the caption and the title attribute for the img. */ if (isset($data['captions'][$index])) { $html['captions'] .= $data['captions'][$index]; $extra_attr['title'] = "#caption-{$index}"; } if (isset($data['type'][$index])) { // Get image, but only Dragonfly listing images switch ($data['type'][$index]) { case "listing": $slide_src = PLS_Image::load($slide_src, array('resize' => array('w' => $width, 'h' => $height), 'fancybox' => false, 'as_html' => false)); break; case "custom": $slide_src = PLS_Image::load($slide_src, array('allow_resize' => false, 'fancybox' => false, 'as_html' => false)); break; } } /** Create the img element. */ $slide = pls_h_img($slide_src, false, $extra_attr); /** Wrap it in an achor if the anchor exists. */ if (isset($data['links'][$index])) { $slide = pls_h_a($data['links'][$index], $slide, array('data-caption' => "#caption-{$index}")); } $html['slides'] .= $slide; } } /** Combine the HTML **/ $html = pls_h_div($html['slides'], array('id' => 'slider', 'class' => 'orbitSlider')) . $html['captions']; /** Filter the HTML array */ $html = apply_filters(pls_get_merged_strings(array('pls_slideshow_html', $context), '_', 'pre', false), $html, $data, $context, $context_var, $args); if (!$container_height) { $container_height = $height; } /** Render the necessary inline CSS... */ $css_args = array('width' => $width, 'height' => $height, 'container_height' => $container_height); $css = self::render_inline_css($css_args); /** Render the necessary inline JS... **/ $args['data'] = is_string($data) ? $data : ''; // For compatibility... $js = self::render_inline_js($args); /** Filter inline JS **/ $js = apply_filters(pls_get_merged_strings(array('pls_slideshow_js', $context), '_', 'pre', false), $js, $html, $data, $context, $context_var); /** Filter the final output **/ $full_slideshow = apply_filters(pls_get_merged_strings(array('pls_slideshow', $context), '_', 'pre', false), $css . $html . $js, $html, $js, $data, $context, $context_var, $args); /** Cache rendered slideshow for future retrieval **/ $cache->save($full_slideshow); return $full_slideshow; }
<h2 id="site-description" <?php echo PLS_Micro_Data::itemprop('organization', 'description'); ?> class="option-pls-site-subtitle"><?php echo pls_get_option('pls-site-subtitle'); ?> </h2> <?php } ?> <?php } ?> <?php if (!pls_get_option('pls-site-logo') && !pls_get_option('pls-site-title')) { ?> <h1 id="site-title" <?php echo PLS_Micro_Data::itemprop('organization', 'name'); ?> > <a href="<?php echo esc_url(home_url('/')); ?> " title="<?php echo esc_attr(get_bloginfo('name', 'display')); ?> " rel="home" <?php echo PLS_Micro_Data::itemprop('organization', 'url'); ?> class="option-pls-site-title"><?php
private static function process_defaults($args) { // Process passed args against defaults... if (is_home()) { $title = pls_get_option('pls-company-name'); $url = esc_html(home_url()); } else { $title = isset($post->post_title) ? $post->post_title : pls_get_option('pls-company-name'); $url = get_permalink(); } $defaults = array('itemtype' => 'http://schema.org/LocalBusiness', 'title' => $title, 'image' => pls_get_option('pls-site-logo'), 'description' => pls_get_option('pls-company-description'), 'address' => pls_get_option('pls-company-street') . " " . pls_get_option('pls-company-locality') . ", " . pls_get_option('pls-company-region'), 'author' => pls_get_option('pls-user-name'), 'url' => $url, 'email' => pls_get_option('pls-user-email')); return wp_parse_args($args, $defaults); }
function custom_listings_search_list($listing_item_html, $listing, $context_var) { // return $listing_item_html; /** Start output buffering. The buffered html will be returned to the filter. */ ob_start(); // pls_dump($listing); ?> <section class="list-item"> <section class="list-pic"> <div class="thumbs"> <?php if (is_array($listing['images'])) { ?> <?php echo PLS_Image::load($listing['images'][0]['url'], array('resize' => array('w' => 144, 'h' => 93, 'method' => 'crop'), 'fancybox' => true, 'as_html' => true)); ?> <?php } else { ?> <?php echo PLS_Image::load('', array('resize' => array('w' => 144, 'h' => 93, 'method' => 'crop'), 'fancybox' => true, 'as_html' => true)); ?> <?php } ?> </div> <?php if (isset($listing['rets']['mls_id'])) { ?> <p class="nrm-txt"><?php _e('MLS', 'manchester'); ?> #: <?php echo $listing['rets']['mls_id']; ?> </p> <?php } ?> </section> <section class="list-txt"> <section class="list-info"> <h5><a href="<?php echo $listing['cur_data']['url']; ?> "><?php echo $listing['location']['address']; ?> </a></h5> <h6><?php echo $listing['location']['locality'] . ', ' . $listing['location']['region']; ?> </h6> <p class="nrm-txt"><?php echo substr($listing['cur_data']['desc'], 0, 300); ?> </p> <p class="nrm-txt"> <b><?php echo $listing['cur_data']['beds']; ?> </b> <span class="beds-n-baths"><?php _e('Beds', 'manchester'); ?> </span> | <b><?php echo $listing['cur_data']['baths']; ?> </b> <span class="beds-n-baths"><?php _e('Baths', 'manchester'); ?> </span> <?php if ($listing['cur_data']['sqft'] != null) { ?> | <b><?php echo PLS_Format::number($listing['cur_data']['sqft'], array('abbreviate' => false, 'add_currency_sign' => false)); ?> </b><span class="beds-n-baths"> <?php _e('sqft', 'manchester'); ?> </span> <?php } ?> </p> </section> <section class="list-price"> <span class="green"><b><?php echo PLS_Format::number($listing['cur_data']['price'], array('abbreviate' => false, 'add_currency_sign' => true)); ?> </b><?php if (isset($listing['cur_data']['lse_trms'])) { echo $listing['cur_data']['lse_trms']; } ?> </span><br /> <?php if (!empty($listing['property_type'])) { ?> <span class="nrm-txt"><?php echo ucwords($listing['property_type']); ?> </span> <?php } ?> </section> <section class="list-links"> <!-- <section class="list-fav"><a href="#"><?php _e('Add to favorites', 'manchester'); ?> </a></section> --> <section class="list-req"><a href="mailto:<?php echo pls_get_option('pls-user-email'); ?> "><?php _e('Request more info', 'manchester'); ?> </a></section> <section class="list-btn1"> <div class="img_btn"><a href="<?php echo $listing['cur_data']['url']; ?> "><input type="submit" value="<?php _e('See Details', 'manchester'); ?> " class="button b-blue medium" /></a></div> </section> </section> </section> <?php PLS_Listing_Helper::get_compliance(array('context' => 'inline_search', 'agent_name' => $listing['rets']['aname'], 'office_name' => $listing['rets']['oname'], 'office_phone' => PLS_Format::phone($listing['contact']['phone']), 'agent_license' => isset($listing['rets']['alicense']) ? $listing['rets']['alicense'] : false, 'co_agent_name' => isset($listing['rets']['aconame']) ? $listing['rets']['aconame'] : false, 'co_office_name' => isset($listing['rets']['oconame']) ? $listing['rets']['oconame'] : false)); ?> <div class="separator-1-sma"></div> <?php $html = ob_get_clean(); // current js build throws a fit when newlines are present // will need to strip them. // added EMCA tag will solve in the future. $html = preg_replace('/[\\n\\r\\t]/', ' ', $html); return $html; }
function custom_property_details_page($html, $listing) { ob_start(); ?> <section id="lvl2"> <div class="wrapper"> <div id="property"> <h2><?php _e('Property Details', 'manchester'); ?> </h2> <section class="property-inf"> <div class="property-title"> <span class="blue"><b><?php echo $listing['location']['full_address']; ?> </b></span> <p><span><?php echo $listing['cur_data']['beds']; ?> <?php _e('Bedrooms', 'manchester'); ?> </span> <span><?php echo $listing['cur_data']['baths']; ?> <?php _e('Bathrooms', 'manchester'); ?> </span></p> </div> <div class="property-price"> <span class="green"><b><?php echo PLS_Format::number($listing['cur_data']['price'], array('abbreviate' => false, 'add_currency_sign' => true)); ?> </b></span> </div> </section> <section class="property-bin"> <div class="property-img"> <div class="img_box"> <?php if ($listing['images']) { ?> <?php echo PLS_Image::load($listing['images'][0]['url'], array('resize' => array('w' => 600, 'h' => 250, 'method' => 'crop'), 'fancybox' => false, 'as_html' => true, 'html' => array('img_classes' => 'main-banner'))); ?> <?php } else { ?> <?php echo PLS_Image::load(null, array('resize' => array('w' => 600, 'h' => 250, 'method' => 'crop'), 'fancybox' => false, 'as_html' => true, 'html' => array('img_classes' => 'main-banner'))); ?> <?php } ?> </div> </div> </section> <!-- sidebar container section --> <section class="property-map"> <div class="property-gmap"> <?php echo PLS_Map::dynamic($listing, array('lat' => $listing['location']['coords'][0], 'lng' => $listing['location']['coords'][1], 'zoom' => '14', 'width' => 338, 'height' => 230, 'canvas_id' => 'map_canvas', 'class' => 'custom_google_map', 'map_js_var' => 'pls_google_map', 'ajax_form_class' => false)); ?> </div> <script type="text/javascript"> jQuery(document).ready(function( $ ) { var map = new Map(); var listing = new Listings({ single_listing: <?php echo json_encode($listing); ?> , map: map }); map.init({ type: 'single_listing', listings: listing, lat : <?php echo json_encode($listing['location']['coords'][0]); ?> , lng : <?php echo json_encode($listing['location']['coords'][1]); ?> , zoom : 14 }); listing.init(); }); </script> <div class="property-lnks"> <!-- <section class="list-fav"><a href="#"><?php _e('Add to favorites', 'manchester'); ?> </a></section> --> <section class="list-req"><a href="<?php echo pls_get_option('pls-user-email'); ?> "><?php _e('Request more info', 'manchester'); ?> </a></section> </div> </section> <!-- </div> </div> end of wrapper </section> --> <section id="lvl4"> <div class="wrapper"> <section class="left-content"> <section class="list2"> <h5><?php _e('DETAILS', 'manchester'); ?> </h5> <section class="list-item"> <section class="list-details"> <section class="list-details-1-2"> <label><?php _e('Zoning Type', 'manchester'); ?> </label> <p><?php echo ucwords($listing['zoning_types'][0]); ?> </p> <?php if (isset($listing['purchase_types'][0])) { ?> <label><?php _e('Listing Type', 'manchester'); ?> </label> <p><?php echo ucwords($listing['purchase_types'][0]); ?> </p> <?php } ?> <?php if ($listing['property_type']) { ?> <label><?php _e('Property Type', 'manchester'); ?> </label> <p><?php echo PLS_Format::translate_property_type($listing); ?> </p> <?php } ?> <?php if (isset($listing['rets']['mls_id'])) { ?> <label><?php _e('MLS#', 'manchester'); ?> </label> <p><?php echo $listing['rets']['mls_id']; ?> </p> <?php } else { ?> <label><?php _e('Ref #', 'manchester'); ?> </label> <p><?php echo $listing['id']; ?> </p> <?php } ?> </section> <section class="list-details-2-2"> <label><?php _e('Bedrooms', 'manchester'); ?> </label> <p><?php echo $listing['cur_data']['beds']; ?> </p> <label><?php _e('Bathrooms', 'manchester'); ?> </label> <p><?php echo $listing['cur_data']['baths']; ?> </p> <label><?php _e('Half Baths', 'manchester'); ?> </label> <p><?php echo $listing['cur_data']['half_baths']; ?> </p> </section> </section> </section> <div class="separator-1-sma"></div> <?php if ($listing['cur_data']['desc']) { ?> <h5><?php _e('DESCRIPTION', 'manchester'); ?> </h5> <section class="list-item"> <section class="list-details"><?php echo $listing['cur_data']['desc']; ?> </section> </section> <?php } ?> <div class="separator-1-sma"></div> <?php $amenities = PLS_Format::amenities_but($listing, array('half_baths', 'beds', 'baths', 'url', 'sqft', 'avail_on', 'price', 'desc')); ?> <?php if (isset($amenities['list']) && $amenities['list'] != null) { ?> <?php $amenities['list'] = PLS_Format::translate_amenities($amenities['list']); ?> <h5><?php _e('PROPERTY AMENITIES', 'manchester'); ?> </h5> <section class="list-item"> <section class="list-amenity"> <?php foreach ($amenities['list'] as $amenity => $value) { ?> <label><span><?php echo $amenity; ?> </span> <?php echo $value; ?> </label> <?php } ?> </section> </section> <div class="separator-1-sma"></div> <?php } ?> <?php if (isset($amenities['ngb']) && $amenities['ngb'] != null) { ?> <?php $amenities['ngb'] = PLS_Format::translate_amenities($amenities['ngb']); ?> <h5><?php _e('NEIGHBORHOOD AMENITIES', 'manchester'); ?> </h5> <section class="list-item"> <section class="list-amenity"> <?php foreach ($amenities['ngb'] as $amenity => $value) { ?> <label><span><?php echo $amenity; ?> </span> <?php echo $value; ?> </label> <?php } ?> </section> </section> <div class="separator-1-sma"></div> <?php } ?> <?php if (isset($amenities['uncur']) && $amenities['uncur'] != null) { ?> <?php $amenities['uncur'] = PLS_Format::translate_amenities($amenities['uncur']); ?> <h5><?php _e('CUSTOM AMENITIES', 'manchester'); ?> </h5> <section class="list-item"> <section class="list-amenity"> <?php foreach ($amenities['uncur'] as $amenity => $value) { ?> <label><span><?php echo $amenity; ?> </span> <?php echo $value; ?> </label> <?php } ?> </section> </section> <div class="separator-1-sma"></div> <?php } ?> </section><!-- /.list2 --> </section><!-- /.left-content --> <aside class="sidebar"> <section class="side-bin2"> <?php if ($listing['images']) { ?> <h5><?php _e('PHOTO GALLERY', 'manchester'); ?> </h5> <section class="gallery"> <?php foreach ($listing['images'] as $image) { ?> <?php echo PLS_Image::load($image['url'], array('resize' => array('w' => 140, 'h' => 93, 'method' => 'crop'), 'fancybox' => true, 'as_html' => false)); ?> <?php } ?> </section> <?php } ?> </section> </aside> <div class="clr"></div> </div><!-- end of wrapper --> </section> <section id="lvl5"> <div class="wrapper"> <section class="neighborhood"> <h5><?php _e('NEIGHBORHOOD', 'manchester'); ?> </h5> <section class="neighborhood-map"> <?php echo PLS_Map::dynamic($listing, array('lat' => $listing['location']['coords'][0], 'lng' => $listing['location']['coords'][1], 'zoom' => '13', 'width' => 960, 'height' => 258, 'canvas_id' => 'map_canvas_nbr', 'class' => 'custom_google_map_nbr', 'map_js_var' => 'pls_google_map_nbr', 'ajax_form_class' => false)); ?> </section> <script type="text/javascript"> jQuery(document).ready(function( $ ) { var map_nbr = new Map(); var listing_nbr = new Listings({ single_listing: <?php echo json_encode($listing); ?> , map: map_nbr }); map_nbr.init({ type: 'single_listing', dom_id: 'map_canvas_nbr', listings: listing_nbr, lat: <?php echo json_encode($listing['location']['coords'][0]); ?> , lng: <?php echo json_encode($listing['location']['coords'][1]); ?> , zoom: 14 }); listing_nbr.init(); }); </script> </section> <?php PLS_Listing_Helper::get_compliance(array('context' => 'listings', 'agent_name' => $listing['rets']['aname'], 'office_name' => $listing['rets']['oname'], 'office_phone' => PLS_Format::phone($listing['contact']['phone']), 'agent_license' => isset($listing['rets']['alicense']) ? $listing['rets']['alicense'] : false, 'co_agent_name' => isset($listing['rets']['aconame']) ? $listing['rets']['aconame'] : false, 'co_office_name' => isset($listing['rets']['oconame']) ? $listing['rets']['oconame'] : false)); ?> </div><!-- end of wrapper --> </section> <?php return ob_get_clean(); }
<?php $email = pls_get_option('pls-user-email'); $phone = pls_get_option('pls-user-phone'); $email_str = $phone_str = $contact_str = ''; $street = pls_get_option('pls-company-street'); $locality = pls_get_option('pls-company-locality'); $region = pls_get_option('pls-company-region'); $postal = pls_get_option('pls-company-postal'); $street_str = $address_str = ''; $agent = PLS_Plugin_API::get_user_details(); $email = strval($email ? $email : $agent['user']['email']); $phone = strval($phone ? $phone : $agent['user']['phone']); $street = strval($street ? $street : $agent['location']['address']); $locality = strval($locality ? $locality : $agent['location']['locality']); $region = strval($region ? $region : $agent['location']['region']); $postal = strval($postal ? $postal : $agent['location']['postal']); if ($email) { $email_str = sprintf(__('Email: <a href="mailto:%s">%s</a><br />', 'manchester'), esc_attr($email), esc_html($email)); } if ($phone) { $phone_str = sprintf(__('Phone: <strong>%s</strong>', 'manchester'), esc_html($phone)); } if ($email_str || $phone_str) { $contact_str = sprintf('<p class="contact">%s%s</p>', $email_str, $phone_str); } if ($street) { $street_str = esc_html($street) . '<br />'; } if ($street || $locality || $region || $postal) { $address_str = sprintf('<p class="address">%s %s %s %s<br /></p>', $street_str, esc_html($locality), esc_html($region), esc_html($postal));
function manchester_custom_home_listing_list($listing_html, $listing_data) { // pls_dump($listing_data); ob_start(); ?> <section class="list-item"> <section class="list-pic"> <div class="thumbs"> <?php if (isset($listing_data['images']) && is_array($listing_data['images'])) { ?> <?php echo PLS_Image::load($listing_data['images'][0]['url'], array('resize' => array('w' => 144, 'h' => 93, 'method' => 'crop'), 'fancybox' => true)); ?> <?php } else { ?> <?php echo PLS_Image::load('', array('resize' => array('w' => 144, 'h' => 93, 'method' => 'crop'), 'fancybox' => true)); ?> <?php } ?> </div> <?php if (isset($listing_data['rets']['mls_id'])) { ?> <p class="nrm-txt"><?php _e('MLS', 'manchester'); ?> #: <?php echo $listing_data['rets']['mls_id']; ?> </p> <?php } ?> </section> <section class="list-txt"> <section class="list-info"> <h5><a href="<?php echo $listing_data['cur_data']['url']; ?> "><?php echo $listing_data['location']['address']; ?> </a></h5> <h6><?php echo $listing_data['location']['locality']; ?> , <?php echo $listing_data['location']['region']; ?> </h6> <?php if (isset($listing_data['cur_data']['desc'])) { echo '<p class="nrm-txt">'; if (strlen($listing_data['cur_data']['desc']) < 150) { echo $listing_data['cur_data']['desc']; } else { $position = strrpos(substr($listing_data['cur_data']['desc'], 0, 150), ' '); echo substr($listing_data['cur_data']['desc'], 0, $position) . '...'; } echo '</p>'; } ?> <p class="nrm-txt"> <b><?php echo $listing_data['cur_data']['beds']; ?> </b> <span class="beds-n-baths"><?php _e('Beds', 'manchester'); ?> </span> | <b><?php echo $listing_data['cur_data']['baths']; ?> </b> <span class="beds-n-baths"><?php _e('Baths', 'manchester'); ?> </span> <?php if (isset($listing_data['cur_data']['sqft'])) { echo '| <b>' . PLS_Format::number($listing_data['cur_data']['sqft'], array('abbreviate' => false, 'add_currency_sign' => false)) . '</b><span class="beds-n-baths"> ' . __('sqft', 'manchester') . '</span>'; } ?> </p> </section><!-- /list-info --> <section class="list-price"> <span class="green"><b><?php echo PLS_Format::number($listing_data['cur_data']['price'], array('abbreviate' => false)); ?> </b> <?php if ($listing_data['cur_data']['lse_trms'] != null) { // translate lease terms to human form echo PLS_Format::translate_lease_terms($listing_data); } ?> </span><br /> <span class="nrm-txt"> <?php if ($listing_data['property_type'] == "fam_home") { echo __("Single Family Home", 'manchester'); } else { $prop_type_frmttd = is_array($listing_data['property_type']) ? implode($listing_data['property_type']) : $listing_data['property_type']; echo ucwords($prop_type_frmttd); } ?> </span> </section><!-- /list-price --> <section class="list-links"> <!-- <section class="list-fav"><a href="#">Add to favorites</a></section> --> <?php $api_whoami = PLS_Plugin_API::get_user_details(); if (pls_get_option('pls-user-email')) { ?> <section class="list-req"> <a href="mailto:<?php echo pls_get_option('pls-user-email'); ?> " target="_blank"><?php _e('Request more info', 'manchester'); ?> </a> </section> <?php } else { ?> <section class="list-req"> <a href="mailto:<?php echo $api_whoami['user']['email']; ?> "><?php _e('Request more info', 'manchester'); ?> </a> </section> <?php } ?> <section class="list-btn1"> <div class="img_btn"> <a href="<?php echo $listing_data['cur_data']['url']; ?> "><input type="submit" Value="<?php _e('See Details', 'manchester'); ?> " class="button b-blue medium" /></a> </div> </section> </section><!-- /list-links --> </section><!-- /list-text --> <?php PLS_Listing_Helper::get_compliance(array('context' => 'inline_search', 'agent_name' => $listing_data['rets']['aname'], 'office_name' => $listing_data['rets']['oname'], 'office_phone' => PLS_Format::phone($listing_data['contact']['phone']), 'agent_license' => isset($listing_data['rets']['alicense']) ? $listing_data['rets']['alicense'] : false, 'co_agent_name' => isset($listing_data['rets']['aconame']) ? $listing_data['rets']['aconame'] : false, 'co_office_name' => isset($listing_data['rets']['oconame']) ? $listing_data['rets']['oconame'] : false)); ?> </section><!-- /list-item --> <div class="separator-1-sma"></div> <?php // END FOR EACH ?> <?php $listing_html = ob_get_clean(); return $listing_html; }
function custom_listings_search_list($listing_item_html, $listing, $context_var) { // return $listing_item_html; /** Start output buffering. The buffered html will be returned to the filter. */ ob_start(); // pls_dump($listing); ?> <section class="list-unit"> <section class="lu-left"> <?php if (!empty($listing['images'])) { ?> <?php echo PLS_Image::load($listing['images'][0]['url'], array('resize' => array('w' => 149, 'h' => 90, 'method' => 'crop'), 'fancybox' => true, 'as_html' => true)); ?> <?php } else { ?> <?php echo PLS_Image::load('', array('resize' => array('w' => 149, 'h' => 90, 'method' => 'crop'), 'fancybox' => true, 'as_html' => true)); ?> <?php } ?> <?php if (isset($listing['rets']['mls_id'])) { ?> <p class="mls"><span><?php _e('MLS #', 'tampa'); ?> :</span> <?php echo $listing['rets']['mls_id']; ?> </p> <?php } ?> </section><!--lu-left--> <section class="lu-right"> <div class="lu-address"> <h4><a href="<?php echo $listing['cur_data']['url']; ?> "><?php echo $listing['location']['address']; ?> </a></h4> <p class="area"><?php echo $listing['location']['locality']; ?> , <?php echo $listing['location']['region']; ?> </p> </div><!--lu-address--> <div class="lu-price"> <p class="price"><?php echo PLS_Format::number($listing['cur_data']['price'], array('abbreviate' => false, 'add_currency_sign' => true)); ?> </p> <p class="month"><?php echo ucwords($listing['purchase_types'][0]); ?> </p> </div><!--LU PRICE--> <div class="lu-main"> <p><?php echo substr($listing['cur_data']['desc'], 0, 300); ?> </p> <p class="info"><span><?php echo $listing['cur_data']['beds']; ?> </span> <?php _e('Bedrooms', 'tampa'); ?> | <span><?php echo $listing['cur_data']['baths']; ?> </span> <?php _e('Bathrooms', 'tampa'); ?> <?php if ($listing['cur_data']['sqft'] != null) { echo '| <span>' . PLS_Format::number($listing['cur_data']['sqft'], array('abbreviate' => false, 'add_currency_sign' => false)) . '</span> ' . __('sqft', 'tampa'); } ?> </p> <!-- <a class="fav" href="#"><?php _e('Add to Favorites', 'tampa'); ?> </a> --> <a class="info-bt" href="mailto:<?php echo pls_get_option('pls-user-email'); ?> "><?php _e('Request Information', 'tampa'); ?> </a> <a class="see-details-link details-bt" href="<?php echo $listing['cur_data']['url']; ?> "><?php _e('See Details', 'tampa'); ?> </a> </div><!--lu-main--> </section><!--LU-RIGHT--> <?php PLS_Listing_Helper::get_compliance(array('context' => 'inline_search', 'agent_name' => $listing['rets']['aname'], 'office_name' => $listing['rets']['oname'], 'office_phone' => PLS_Format::phone($listing['contact']['phone']), 'agent_license' => isset($listing['rets']['alicense']) ? $listing['rets']['alicense'] : false, 'co_agent_name' => isset($listing['rets']['aconame']) ? $listing['rets']['aconame'] : false, 'co_office_name' => isset($listing['rets']['oconame']) ? $listing['rets']['oconame'] : false)); ?> <div class="clearfix"></div> </section><!--LIST UNIT--> <?php $html = ob_get_clean(); // current js build throws a fit when newlines are present // will need to strip them. // added EMCA tag will solve in the future. $html = preg_replace('/[\\n\\r\\t]/', ' ', $html); return $html; }
function manch_custom_css() { if (!is_admin()) { $custom_css = pls_get_option('pls-custom-css'); if (pls_get_option('pls-css-options') && $custom_css) { printf('<style type="text/css">%s</style>', $custom_css); } } }
function custom_property_details_page($html, $listing) { ob_start(); // pls_dump($listing); ?> <div id="main"> <section class="property-banner"> <?php if ($listing['images']) { ?> <?php echo PLS_Image::load($listing['images'][0]['url'], array('resize' => array('w' => 625, 'h' => 292, 'method' => 'crop'), 'fancybox' => false, 'as_html' => true, 'html' => array('img_classes' => 'main-banner'))); ?> <?php } else { ?> <?php echo PLS_Image::load(null, array('resize' => array('w' => 625, 'h' => 292, 'method' => 'crop'), 'fancybox' => false, 'as_html' => true, 'html' => array('img_classes' => 'main-banner'))); ?> <?php } ?> <p class="state"><?php echo $listing['location']['full_address']; ?> <span class="rent"><?php echo PLS_Format::number($listing['cur_data']['price'], array('abbreviate' => false, 'add-currency-sign' => true)); ?> <em></em></span><br><span class="details"><?php echo $listing['cur_data']['beds']; ?> <?php _e('Bedrooms', 'tampa'); ?> | <?php echo $listing['cur_data']['baths']; ?> <?php _e('Bathrooms', 'tampa'); ?> </span></p> </section> <section class="user-generated"> <h3><?php _e('Details', 'tampa'); ?> </h3> <ul class="list-half"> <li><?php _e('Listing Type', 'tampa'); ?> <span><?php echo ucwords($listing['purchase_types'][0]); ?> </span></li> <li><?php _e('Bedrooms', 'tampa'); ?> <span><?php echo $listing['cur_data']['beds']; ?> </span></li> <li><?php _e('Property Type', 'tampa'); ?> <span><?php echo PLS_Format::translate_property_type($listing); ?> </span> </li> <li><?php _e('Bathrooms', 'tampa'); ?> <span><?php echo $listing['cur_data']['baths']; ?> </span></li> <?php if (isset($listing['rets']['mls_id'])) { ?> <li><?php _e('MLS #', 'tampa'); ?> <span><?php echo $listing['rets']['mls_id']; ?> </span> </li> <?php } ?> <li><?php _e('Half Baths', 'tampa'); ?> <span><?php echo $listing['cur_data']['half_baths']; ?> </span></li> </ul><!--list-half--> <div class="clr"></div> </section><!--user-generated--> <?php if ($listing['cur_data']['desc']) { ?> <section class="user-generated"> <h3><?php _e('Description', 'tampa'); ?> </h3> <p><?php echo $listing['cur_data']['desc']; ?> </p> </section> <?php } ?> <?php $amenities = PLS_Format::amenities_but($listing, array('half_baths', 'beds', 'baths', 'url', 'sqft', 'avail_on', 'price', 'desc')); ?> <?php if (isset($amenities['list']) && $amenities['list'] != null) { ?> <section class="user-generated"> <h3><?php _e('Property Amenities', 'tampa'); ?> </h3> <ul class="list-third"> <?php $amenities['list'] = PLS_Format::translate_amenities($amenities['list']); ?> <?php foreach ($amenities['list'] as $amenity => $value) { ?> <li><span><?php echo $amenity; ?> </span> <?php echo $value; ?> </li> <?php } ?> </ul> <div class="clr"></div> </section> <?php } ?> <?php if (isset($amenities['ngb']) && $amenities['ngb'] != null) { ?> <section class="user-generated"> <h3><?php _e('Neighborhood Amenities', 'tampa'); ?> </h3> <ul class="list-third"> <?php $amenities['ngb'] = PLS_Format::translate_amenities($amenities['ngb']); ?> <?php foreach ($amenities['ngb'] as $amenity => $value) { ?> <li><span><?php echo $amenity; ?> </span> <?php echo $value; ?> </li> <?php } ?> </ul> <div class="clr"></div> </section> <?php } ?> <?php if (isset($amenities['uncur']) && $amenities['uncur'] != null) { ?> <section class="user-generated"> <h3><?php _e('Property Amenities', 'tampa'); ?> </h3> <ul class="list-third"> <?php $amenities['uncur'] = PLS_Format::translate_amenities($amenities['uncur']); ?> <?php foreach ($amenities['uncur'] as $amenity => $value) { ?> <li><span><?php echo $amenity; ?> </span> <?php echo $value; ?> </li> <?php } ?> </ul> <div class="clr"></div> </section> <?php } ?> </div><!--main--> <aside> <section id="single-property-mini-map"> <h3><php _e('Location', 'tampa'); ?></h3> <?php echo PLS_Map::dynamic($listing, array('lat' => $listing['location']['coords'][0], 'lng' => $listing['location']['coords'][1], 'zoom' => '14', 'width' => 288, 'height' => 217, 'canvas_id' => 'map_canvas', 'class' => 'custom_google_map', 'map_js_var' => 'pls_google_map', 'ajax_form_class' => false)); ?> <script type="text/javascript"> jQuery(document).ready(function( $ ) { var map = new Map(); var listing = new Listings({ single_listing: <?php echo json_encode($listing); ?> , map: map }); map.init({ type: 'single_listing', listings: listing, lat : <?php echo json_encode($listing['location']['coords'][0]); ?> , lng : <?php echo json_encode($listing['location']['coords'][1]); ?> , zoom : 14 }); listing.init(); }); </script> <div class="map-bar"> <!-- <a class="fav-org" href="#">Add to Favorites</a> --> <a class="info-org" href="mailto:<?php echo pls_get_option('pls-user-email'); ?> "><?php _e('Request More Info', 'tampa'); ?> </a> <div class="clr"></div> </div><!--map-bar--> </section> <?php if ($listing['images']) { ?> <section id="gallery"> <h3><?php _e('Photo Gallery', 'tampa'); ?> </h3> <?php foreach ($listing['images'] as $image) { ?> <?php echo PLS_Image::load($image['url'], array('resize' => array('w' => 120, 'h' => 95, 'method' => 'crop'), 'fancybox' => true, 'as_html' => false)); ?> <?php } ?> </section><!--gallery--> <?php } ?> </aside> <div class="clr"></div> <section id="full"> <section class="user-generated"> <h3><?php _e('Neighborhood', 'tampa'); ?> </h3> <?php echo PLS_Map::dynamic($listing, array('lat' => $listing['location']['coords'][0], 'lng' => $listing['location']['coords'][1], 'zoom' => '14', 'width' => 930, 'height' => 260, 'canvas_id' => 'map_canvas_nbr', 'class' => 'custom_google_map_nbr', 'map_js_var' => 'pls_google_map_nbr', 'ajax_form_class' => false)); ?> </section> <script type="text/javascript"> jQuery(document).ready(function( $ ) { var map_nbr = new Map(); var listing_nbr = new Listings({ single_listing: <?php echo json_encode($listing); ?> , map: map_nbr }); map_nbr.init({ type: 'single_listing', dom_id: 'map_canvas_nbr', listings: listing_nbr, lat: <?php echo json_encode($listing['location']['coords'][0]); ?> , lng: <?php echo json_encode($listing['location']['coords'][1]); ?> , zoom: 14 }); listing_nbr.init(); }); </script> <?php if (isset($listing['cur_data']['mls_number']) && isset($listing['mls_logo'])) { ?> <section class="user-generated"> <h3><?php _e('Listing Supply Source', 'tampa'); ?> </h3> <p class="p-supply"><?php _e('MLS #', 'tampa'); ?> : <?php echo $listing['cur_data']['mls_number']; ?> </p> <div class="clr"></div> </section> <?php } ?> <?php PLS_Listing_Helper::get_compliance(array('context' => 'listings', 'agent_name' => $listing['rets']['aname'], 'office_name' => $listing['rets']['oname'], 'office_phone' => PLS_Format::phone($listing['contact']['phone']), 'agent_license' => isset($listing['rets']['alicense']) ? $listing['rets']['alicense'] : false, 'co_agent_name' => isset($listing['rets']['aconame']) ? $listing['rets']['aconame'] : false, 'co_office_name' => isset($listing['rets']['oconame']) ? $listing['rets']['oconame'] : false)); ?> </section><!--full--> <?php return ob_get_clean(); }
?> charset=<?php bloginfo('charset'); ?> " /> <title><?php pls_document_title(); ?> </title> <!-- SEO Tags --> <meta name="description" content="<?php echo get_bloginfo('description'); ?> "> <meta name="author" content="<?php echo pls_get_option('pls-user-name'); ?> "> <meta property="og:site_name" content="<?php echo get_bloginfo('name'); ?> " /> <meta property="og:title" content="<?php pls_document_title(); ?> " /> <meta property="og:url" content="<?php echo $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?> " /> <meta itemprop="name" content="<?php
function add_mixpanel() { // get theme option for mixpanel ID $mixpanel_id = pls_get_option('pls-mixpanel-id'); if (isset($mixpanel_id) && !empty($mixpanel_id)) { ob_start(); ?> <!-- start Mixpanel --> <script type="text/javascript">(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src=("https:"===e.location.protocol?"https:":"http:")+'//cdn.mxpnl.com/libs/mixpanel-2.2.min.js';f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f);b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!== typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.append people.track_charge people.clear_charges people.delete_user".split(" ");for(g=0;g<i.length;g++)f(c,i[g]); b._i.push([a,e,d])};b.__SV=1.2}})(document,window.mixpanel||[]); mixpanel.init("<?php echo $mixpanel_id; ?> ");</script> <!-- end Mixpanel --> <script type="text/javascript"> window.onload = function () { mixpanel.track_pageview(); } </script> <?php echo ob_get_clean(); } }