Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Author URL: https://idxbroker.com
**Tags:** IDX, MLS, multiple listing service, impress, idx impress, impress for idx broker, IDX plugin, idx broker, idxbroker, idx broker platinum, idx wordpress, idx wordpress plugin, integrated idx, real estate, real estate wordpress, RETS, wordpress idx, wordpress mls, WordPress Plugin, platinum, realtor, idx broker lite, idx lite, idxbroker lite, crm
**Requires at least:** 5.3
**Tested up to:** 6.6.2
**Stable tag:** 3.2.5
**Stable tag:** 3.2.6
**Minimum PHP:** 7.1.8
**License:** GPLv2 or later
**License URI:** http://www.gnu.org/licenses/gpl-2.0.html
Expand Down Expand Up @@ -111,6 +111,10 @@ This plugin requires PHP 7.0 or higher. For security reasons, we recommend updat
For users with IMPress 3.0+ who have legacy versions of IMPress Listings and/or IMPress Agents already installed, the plugins will continue to work as-is. However, if the user selects ‘Enable Listings’ or ‘Enable Agents’ in the new IMPress for IDX dashboard, the legacy IMPress Listings/Agents will be deactivated and the new consolidated version of the plugin will be used. Any existing data for Listings/Agents will be unaffected.

## Changelog ##

### 3.2.6 ###
* New: Added optional parameter for price min to omnibar

### 3.2.5 ###
* Update: Handle for sold price being displayed for sold listings instead of the listing price.
* Fix : Handle for 0 legacy or 0 new widgets.
Expand Down
2 changes: 1 addition & 1 deletion assets/js/impress-omnibar-block.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions idx-broker-platinum.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Plugin Name: IMPress for IDX Broker
Plugin URI: https://idxbroker.com
Description: Over 600 IDX/MLS feeds serviced. The #1 IDX/MLS solution just got even better!
Version: 3.2.5
Version: 3.2.6
Author: IDX Broker
Contributors: IDX, LLC
Author URI: https://idxbroker.com
Expand All @@ -18,7 +18,7 @@
class Idx_Broker_Plugin {

// Placed here for convenient updating.
const IDX_WP_PLUGIN_VERSION = '3.2.5';
const IDX_WP_PLUGIN_VERSION = '3.2.6';
const VUE_DEV_MODE = false;

/**
Expand Down
23 changes: 13 additions & 10 deletions idx/register-blocks.php
Original file line number Diff line number Diff line change
Expand Up @@ -453,17 +453,20 @@ public function impress_omnibar_block_init() {
register_block_type(
'idx-broker-platinum/impress-omnibar-block',
[
'attributes' => [
'styles' => [
'type' => 'integer',
],
'extra' => [
'type' => 'integer',
],
'min_price' => [
'type' => 'integer',
],
'attributes' => [
'styles' => [
'type' => 'integer',
],
'extra' => [
'type' => 'integer',
],
'min_price' => [
'type' => 'integer',
],
'remove_price_validation' => [
'type' => 'integer',
],
],
'editor_script' => 'impress-omnibar-block',
'render_callback' => [ $this, 'impress_omnibar_block_render' ],
]
Expand Down
4 changes: 4 additions & 0 deletions idx/shortcodes/register-shortcode-for-ui.php
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,10 @@ public function get_omnibar( $shortcode ) {
echo '<input type="checkbox" id="min_price" data-short-name="min_price">';
echo '<label for="min_price">Include Min Price? (If Extra Fields is enabled)</label>';
echo '</div>';
echo '<div class="idx-modal-shortcode-field checkbox" data-shortcode="' . esc_attr( $shortcode ) . '">';
echo '<input type="checkbox" id="remove_price_validation" data-short-name="remove_price_validation">';
echo '<label for="remove_price_validation">Remove Price Validation (min/step attributes)?</label>';
echo '</div>';
echo '<div class="idx-modal-shortcode-field" data-shortcode="idx-omnibar"></div>';
// Styles and Scripts for Preview.
echo '<script>';
Expand Down
42 changes: 26 additions & 16 deletions idx/widgets/omnibar/create-omnibar.php
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,10 @@ public function idx_omnibar_basic( $plugin_dir, $idx_url, $styles = 1 ) {
* @param mixed $idx_url
* @param int $styles (default: 1)
* @param int $min_price (default: 0)
* @param int $remove_price_validation (default: 0)
* @return void
*/
public function idx_omnibar_extra( $plugin_dir, $idx_url, $styles = 1, $min_price = 0 ) {
public function idx_omnibar_extra( $plugin_dir, $idx_url, $styles = 1, $min_price = 0, $remove_price_validation = 0 ) {
$mlsPtIDs = $this->idx_omnibar_default_property_types();
$placeholder = get_option( 'idx_omnibar_placeholder' );
if ( empty( $placeholder ) ) {
Expand Down Expand Up @@ -127,7 +128,7 @@ public function idx_omnibar_extra( $plugin_dir, $idx_url, $styles = 1, $min_pric
wp_enqueue_script( 'idx-omnibar-js' );
wp_enqueue_script( 'idx-location-list', $idx_dir_url . '/locationlist.js', array( 'idx-omnibar-js' ), '1.0.0', true );

$price_field = $this->price_field( $min_price );
$price_field = $this->price_field( $min_price, $remove_price_validation );

return <<<EOD
<form class="idx-omnibar-form idx-omnibar-extra-form">
Expand All @@ -144,13 +145,18 @@ public function idx_omnibar_extra( $plugin_dir, $idx_url, $styles = 1, $min_pric
*
* @access public
* @param mixed $min_price
* @param int $remove_price_validation (default: 0)
* @return void
*/
public function price_field( $min_price ) {
public function price_field( $min_price, $remove_price_validation = 0 ) {
// Build min and step attributes conditionally
$min_attr = $remove_price_validation == 1 ? ' min="0"' : '';
$step_attr = $remove_price_validation == 1 ? ' step="10000"' : '';

if ( empty( $min_price ) ) {
$price_field = '<div class="idx-omnibar-extra idx-omnibar-price-container"><label for="idx-omnibar-extra-price">Price Max</label><input id="idx-omnibar-extra-price" class="idx-omnibar-price" type="number" min="0" step="10000"></div>';
$price_field = '<div class="idx-omnibar-extra idx-omnibar-price-container"><label for="idx-omnibar-extra-price">Price Max</label><input id="idx-omnibar-extra-price" class="idx-omnibar-price" type="number"' . $min_attr . $step_attr . '></div>';
} else {
$price_field = '<div class="idx-omnibar-extra idx-omnibar-price-container idx-omnibar-min-price-container"><label for="idx-omnibar-extra-min-price">Price Min</label><input id="idx-omnibar-extra-min-price" class="idx-omnibar-min-price" type="number" min="0" step="10000"></div><div class="idx-omnibar-extra idx-omnibar-price-container idx-omnibar-max-price-container"><label for="idx-omnibar-extra-max-price">Price Max</label><input id="idx-omnibar-extra-max-price" class="idx-omnibar-price" type="number" min="0" step="10000"></div>';
$price_field = '<div class="idx-omnibar-extra idx-omnibar-price-container idx-omnibar-min-price-container"><label for="idx-omnibar-extra-min-price">Price Min</label><input id="idx-omnibar-extra-min-price" class="idx-omnibar-min-price" type="number"' . $min_attr . $step_attr . '></div><div class="idx-omnibar-extra idx-omnibar-price-container idx-omnibar-max-price-container"><label for="idx-omnibar-extra-max-price">Price Max</label><input id="idx-omnibar-extra-max-price" class="idx-omnibar-price" type="number"' . $min_attr . $step_attr . '></div>';
}

return $price_field;
Expand Down Expand Up @@ -187,22 +193,24 @@ public function add_omnibar_shortcode( $atts ) {
extract(
shortcode_atts(
array(
'min_price' => 0,
'styles' => 1,
'extra' => 0,
'min_price' => 0,
'styles' => 1,
'extra' => 0,
'remove_price_validation' => 0,
),
$atts
)
);

$min_price = (int) esc_attr( $min_price );
$styles = (int) esc_attr( $styles );
$min_price = (int) esc_attr( $min_price );
$styles = (int) esc_attr( $styles );
$remove_price_validation = (int) esc_attr( $remove_price_validation );

$idx_url = get_option( 'idx_results_url' );
$plugin_dir = plugins_url();

if ( ! empty( $extra ) ) {
return $this->idx_omnibar_extra( $plugin_dir, $idx_url, $styles, $min_price );
return $this->idx_omnibar_extra( $plugin_dir, $idx_url, $styles, $min_price, $remove_price_validation );
} else {
return $this->idx_omnibar_basic( $plugin_dir, $idx_url, $styles );
}
Expand All @@ -219,20 +227,22 @@ public function add_omnibar_extra_shortcode( $atts ) {
extract(
shortcode_atts(
array(
'min_price' => 0,
'styles' => 1,
'min_price' => 0,
'styles' => 1,
'remove_price_validation' => 0,
),
$atts
)
);

$min_price = (int) esc_attr( $min_price );
$styles = (int) esc_attr( $styles );
$min_price = (int) esc_attr( $min_price );
$styles = (int) esc_attr( $styles );
$remove_price_validation = (int) esc_attr( $remove_price_validation );

$idx_url = get_option( 'idx_results_url' );
$plugin_dir = plugins_url();

return $this->idx_omnibar_extra( $plugin_dir, $idx_url, $styles, $min_price );
return $this->idx_omnibar_extra( $plugin_dir, $idx_url, $styles, $min_price, $remove_price_validation );
}

/**
Expand Down
28 changes: 17 additions & 11 deletions idx/widgets/omnibar/idx-omnibar-widget.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,11 @@ public function __construct() {
* @access public
*/
public $defaults = array(
'title' => '',
'min_price' => 0,
'styles' => 1,
'extra' => 0,
'title' => '',
'min_price' => 0,
'styles' => 1,
'extra' => 0,
'remove_price_validation' => 0,
);

/**
Expand Down Expand Up @@ -68,6 +69,10 @@ public function form( $instance ) {
<label for="<?php echo esc_attr( $this->get_field_id( 'min_price' ) ); ?>"><?php esc_html_e( 'Include Min Price? (If Extra Fields is enabled)', 'idxbroker' ); ?></label>
<input type="checkbox" id="<?php echo esc_attr( $this->get_field_id( 'min_price' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'min_price' ) ); ?>" value="1" <?php checked( $instance['min_price'], true ); ?>>
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'remove_price_validation' ) ); ?>"><?php esc_html_e( 'Remove Price Validation (min/step attributes)?', 'idxbroker' ); ?></label>
<input type="checkbox" id="<?php echo esc_attr( $this->get_field_id( 'remove_price_validation' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'remove_price_validation' ) ); ?>" value="1" <?php checked( $instance['remove_price_validation'], true ); ?>>
</p>
<?php
}

Expand All @@ -81,12 +86,13 @@ public function form( $instance ) {
*/
public function update( $new_instance, $old_instance ) {
// Merge defaults and new_instance to avoid any missing index warnings when used with the legacy block widget.
$new_instance = array_merge( $this->defaults, $new_instance );
$instance = $old_instance;
$instance['title'] = $new_instance['title'];
$instance['styles'] = (int) $new_instance['styles'];
$instance['extra'] = (int) $new_instance['extra'];
$instance['min_price'] = (int) $new_instance['min_price'];
$new_instance = array_merge( $this->defaults, $new_instance );
$instance = $old_instance;
$instance['title'] = $new_instance['title'];
$instance['styles'] = (int) $new_instance['styles'];
$instance['extra'] = (int) $new_instance['extra'];
$instance['min_price'] = (int) $new_instance['min_price'];
$instance['remove_price_validation'] = (int) $new_instance['remove_price_validation'];
return $instance;
}

Expand Down Expand Up @@ -126,7 +132,7 @@ public function widget( $args, $instance ) {

// Widget HTML:
if ( ! empty( $instance['extra'] ) ) {
echo $this->create_omnibar->idx_omnibar_extra( $plugin_dir, $idx_url, $instance['styles'], $instance['min_price'] );
echo $this->create_omnibar->idx_omnibar_extra( $plugin_dir, $idx_url, $instance['styles'], $instance['min_price'], $instance['remove_price_validation'] );
} else {
echo $this->create_omnibar->idx_omnibar_basic( $plugin_dir, $idx_url, $instance['styles'] );
}
Expand Down
6 changes: 5 additions & 1 deletion readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Author URL: https://idxbroker.com
Tags: IDX, MLS, multiple listing service, impress, idx impress, impress for idx broker, IDX plugin, idx broker, idxbroker, idx broker platinum, idx wordpress, idx wordpress plugin, integrated idx, real estate, real estate wordpress, RETS, wordpress idx, wordpress mls, WordPress Plugin, platinum, realtor, idx broker lite, idx lite, idxbroker lite, crm
Requires at least: 5.3
Tested up to: 6.6.2
Stable tag: 3.2.5
Stable tag: 3.2.6
Requires PHP: 7.1.8
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Expand Down Expand Up @@ -132,6 +132,10 @@ For users with IMPress 3.0+ who have legacy versions of IMPress Listings and/or
18. View Saved Properties created by or for your lead. One-click access to your IDX Broker Dashboard in order to create new saved properties, toggle emails on (for changes to property status, price, or other details), or remove an existing saved property.

== Changelog ==

= 3.2.6 =
* New: Added optional parameter for price min to omnibar

= 3.2.5 =
* Update: Handle for sold price being displayed for sold listings instead of the listing price.
* Fix : Handle for 0 legacy or 0 new widgets.
Expand Down
10 changes: 10 additions & 0 deletions src/blocks/impress-omnibar/script.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ registerBlockType(
min_price: {
type: 'int',
default: 0
},
remove_price_validation: {
type: 'int',
default: 0
}
},
edit: ({ attributes, setAttributes }) => {
Expand Down Expand Up @@ -51,6 +55,12 @@ registerBlockType(
checked={(attributes.min_price > 0)}
onChange={(value) => { setAttributes({ min_price: (value > 0 ? 1 : 0) }) }}
/>
<CheckboxControl
label={__('Remove Price Validation (min/step attributes)?', 'idx-broker-platinum')}
value={attributes.remove_price_validation}
checked={(attributes.remove_price_validation > 0)}
onChange={(value) => { setAttributes({ remove_price_validation: (value > 0 ? 1 : 0) }) }}
/>
</PanelBody>
</Panel>
</InspectorControls>
Expand Down
Loading