This commit is contained in:
Lieu Le 2019-09-30 17:30:15 +07:00
commit 6be05eed76
26 changed files with 439 additions and 100 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -38,6 +38,7 @@ class Opalestate_Admin_Property {
// add_action( 'transition_post_status', array( __CLASS__, 'save_post' ), 10, 3 );
}
/**
*
*/

View File

@ -308,7 +308,49 @@ class Opalestate_Agency_Front {
*
*/
public function register_shortcodes() {
$this->shortcodes = [
'search_agencies' => [ 'code' => 'search_agencies', 'label' => esc_html__( 'Search Agencies', 'opalestate-pro' ) ],
'agency_carousel' => [ 'code' => 'agency_carousel', 'label' => esc_html__( 'Agency Carousel', 'opalestate-pro' ) ],
];
foreach ( $this->shortcodes as $shortcode ) {
add_shortcode( 'opalestate_' . $shortcode['code'], [ $this, $shortcode['code'] ] );
}
}
public function agency_carousel ( $atts ) {
$atts = is_array( $atts ) ? $atts : [];
$default = array(
'current_uri' => null,
'column' => 3,
'limit' => 12,
'paged' => 1,
'onlyfeatured' => 0,
);
$atts = array_merge( $default, $atts );
return opalestate_load_template_path( 'shortcodes/agency-carousel' , $atts );
}
/**
*
*/
public function search_agencies ( $atts=[] ) {
$atts = is_array( $atts ) ? $atts : [];
$layout = 'search-agency-form';
$default = array(
'current_uri' => null,
'form' => $layout
);
$atts = array_merge( $default, $atts );
return opalestate_load_template_path( 'shortcodes/search-agencies' , $atts );
}
/**

View File

@ -5,7 +5,7 @@
* @version $Id$
* @package $package$
* @author Opal Team <info@wpopal.com >
* @copyright Copyright (C) 2014 wpopal.com. All Rights Reserved.
* @copyright Copyright (C) 2019 wpopal.com. All Rights Reserved.
* @license GNU/GPL v2 or later http://www.gnu.org/licenses/gpl-2.0.html
*
* @website http://www.wpopal.com

View File

@ -3,7 +3,7 @@
* Opalestate_Agent_Front
*
* @author Opal Team <info@wpopal.com >
* @copyright Copyright (C) 2014 wpopal.com. All Rights Reserved.
* @copyright Copyright (C) 2019 wpopal.com. All Rights Reserved.
*/
// Exit if accessed directly
@ -307,6 +307,7 @@ class Opalestate_Agent_Front {
'change_agent_profile' => [ 'code' => 'change_agent_profile', 'label' => esc_html__( 'Agent Profile', 'opalestate-pro' ) ],
'search_agents' => [ 'code' => 'search_agents', 'label' => esc_html__( 'Search Agents', 'opalestate-pro' ) ],
'agent_carousel' => [ 'code' => 'agent_carousel', 'label' => esc_html__( 'Agent Carousel', 'opalestate-pro' ) ],
];
foreach ( $this->shortcodes as $shortcode ) {
@ -315,6 +316,25 @@ class Opalestate_Agent_Front {
}
public function agent_carousel ( $atts ) {
$atts = is_array( $atts ) ? $atts : [];
$layout = 'search-agency-form';
$default = array(
'current_uri' => null,
'column' => 4,
'limit' => 12,
'paged' => 1,
'onlyfeatured' => 0,
'form' => $layout
);
$atts = array_merge( $default, $atts );
return opalestate_load_template_path( 'shortcodes/agent-carousel' , $atts );
}
public function archives_query( $query ) {
if ( $query->is_main_query() && is_post_type_archive( 'opalestate_agent' ) ) {

View File

@ -5,7 +5,7 @@
* @version $Id$
* @package $package$
* @author Opal Team <info@wpopal.com >
* @copyright Copyright (C) 2014 wpopal.com. All Rights Reserved.
* @copyright Copyright (C) 2019 wpopal.com. All Rights Reserved.
* @license GNU/GPL v2 or later http://www.gnu.org/licenses/gpl-2.0.html
*
* @website http://www.wpopal.com

View File

@ -5,7 +5,7 @@
* @version $Id$
* @package $package$
* @author Opal Team <info@wpopal.com >
* @copyright Copyright (C) 2014 wpopal.com. All Rights Reserved.
* @copyright Copyright (C) 2019 wpopal.com. All Rights Reserved.
* @license GNU/GPL v2 or later http://www.gnu.org/licenses/gpl-2.0.html
*
* @website http://www.wpopal.com
@ -287,6 +287,9 @@ class Opalestate_Emails {
],
//------------------------------------------
[
'name' => esc_html__( 'Notification For New Property Submission', 'opalestate-pro' ),
'desc' => '<hr>',
@ -354,7 +357,32 @@ class Opalestate_Emails {
'desc' => esc_html__( 'Enter the email a user should receive when they make an initial payment request.', 'opalestate-pro' ),
'default' => OpalEstate_Send_Email_Approve::get_default_template(),
],
/// enquire contact template ////
[
'name' => esc_html__( 'Email Enquiry Contact Templates (Template Tags)', 'opalestate-pro' ),
'desc' => $contact_list_tags . '<br><hr>',
'id' => 'opalestate_title_email_settings_6_1',
'type' => 'title',
],
[
'id' => 'enquiry_email_subject',
'name' => esc_html__( 'Email Subject', 'opalestate-pro' ),
'type' => 'text',
'desc' => esc_html__( 'The email subject a user should receive when they make an initial property request.', 'opalestate-pro' ),
'attributes' => [
'placeholder' => 'Your property at I Love WordPress is pending',
get_bloginfo( 'name' ),
'rows' => 3,
],
'default' => esc_html__( 'You got a message', 'opalestate-pro' ),
],
[
'id' => 'enquiry_email_body',
'name' => esc_html__( 'Email Body', 'opalestate-pro' ),
'type' => 'wysiwyg',
'default' => OpalEstate_Send_Email_Notification::get_default_template( 'enquiry' )
],
/// email contact template ////
[
'name' => esc_html__( 'Email Contact Templates (Template Tags)', 'opalestate-pro' ),
@ -362,7 +390,6 @@ class Opalestate_Emails {
'id' => 'opalestate_title_email_settings_6',
'type' => 'title',
],
[
'id' => 'contact_email_subject',
'name' => esc_html__( 'Email Subject', 'opalestate-pro' ),
@ -380,15 +407,33 @@ class Opalestate_Emails {
'id' => 'contact_email_body',
'name' => esc_html__( 'Email Body', 'opalestate-pro' ),
'type' => 'wysiwyg',
'desc' => trim( preg_replace( '/\t+/', '', "Hi {receive_name},<br>
You have got message from {name} with email {email}. Here is detail:
<br>
<br>
{message}
<br>
&nbsp;<br>
<br>
<em>This message was sent by {site_link} on {current_time}.</em>" ) ),
'default' => OpalEstate_Send_Email_Notification::get_default_template()
],
/// Email Request Review ///
[
'name' => esc_html__( 'Email Request Review Templates (Template Tags)', 'opalestate-pro' ),
'desc' => $contact_list_tags . '<br><hr>',
'id' => 'opalestate_title_email_settings_7',
'type' => 'title',
],
[
'id' => 'request_review_email_subject',
'name' => esc_html__( 'Email Subject', 'opalestate-pro' ),
'type' => 'text',
'desc' => esc_html__( 'The email subject a user should receive when they make an initial property request.', 'opalestate-pro' ),
'attributes' => [
'placeholder' => 'Your property at I Love WordPress is pending',
get_bloginfo( 'name' ),
'rows' => 3,
],
'default' =>esc_html__( 'You have a message request reviewing at: %s', 'opalestate-pro' ),
],
[
'id' => 'request_review_email_body',
'name' => esc_html__( 'Email Body', 'opalestate-pro' ),
'type' => 'wysiwyg',
'default' => OpalEstate_Send_Email_Request_Reviewing::get_default_template()
],
]
),

View File

@ -103,6 +103,7 @@ class OpalEstate_Enqueue {
* Register and enqueue javascript, css library
*/
public function register_enqueue() {
wp_register_script(
'jquery-modernizr',
OPALESTATE_PLUGIN_URL . '/assets/3rd/magnific-popup/jquery.magnific-popup.min.js',
@ -112,6 +113,7 @@ class OpalEstate_Enqueue {
'4.4.3',
true
);
wp_enqueue_script( 'jquery-magnific-popup' );
wp_register_script( 'jquery-sticky-kit', trailingslashit( OPALESTATE_PLUGIN_URL ) . 'assets/3rd/sticky/jquery.sticky-kit.min.js', [], null, true );
wp_enqueue_script( 'jquery-sticky-kit' );
@ -124,6 +126,7 @@ class OpalEstate_Enqueue {
wp_enqueue_script( 'jquery-toast' );
wp_register_script(
'jquery-swiper',
OPALESTATE_PLUGIN_URL . '/assets/3rd/swiper/js/swiper.min.js',
@ -134,6 +137,10 @@ class OpalEstate_Enqueue {
true
);
if( !defined("ELEMENTOR_VERSION") ) {
wp_enqueue_style( 'jquery-swiper', OPALESTATE_PLUGIN_URL . '/assets/3rd/swiper/css/swiper.min.css' );
}
wp_enqueue_script( 'jquery-swiper' );
}

View File

@ -28,7 +28,11 @@ class OpalEstate_Send_Email_Approve extends OpalEstate_Abstract_Email_Template {
*/
public function get_subject () {
$propety_title = '' ;
return sprintf( esc_html__( 'New Property Listing Submitted: {property_name}', 'opalestate-pro' ), $propety_title );
$subject = sprintf( esc_html__( 'The Property Listing Approved: {property_name}', 'opalestate-pro' ), $propety_title );
$subject = opalestate_options( 'approve_email_body' , $subject );
return $subject;
}
/**
@ -58,7 +62,9 @@ class OpalEstate_Send_Email_Approve extends OpalEstate_Abstract_Email_Template {
*
*/
public function get_content_template() {
return opalestate_load_template_path( 'emails/request-reviewing' );
$content = opalestate_options( 'approve_email_body' , self::get_default_template() );
return $content;
}
/**

View File

@ -31,11 +31,17 @@ class OpalEstate_Send_Email_Notification extends OpalEstate_Abstract_Email_Templ
public function get_subject () {
switch ( $this->type ) {
case 'enquiry':
$subject = html_entity_decode( esc_html__('You got a message enquiry', 'opalestate-pro') );
$subject = opalestate_options( 'enquiry_email_subject', $subject );
break;
default:
$subject = html_entity_decode( esc_html__('You got a message contact', 'opalestate-pro') );
$subject = opalestate_options( 'contact_email_subject', $subject );
break;
}
@ -46,14 +52,12 @@ class OpalEstate_Send_Email_Notification extends OpalEstate_Abstract_Email_Templ
* Send Email
*/
public function get_content_template() {
switch ( $this->type ) {
case 'enquiry':
return opalestate_load_template_path( 'emails/enquiry' );
return opalestate_options( 'enquiry_email_body', self::get_default_template( 'enquiry' ) );
break;
default:
return opalestate_load_template_path( 'emails/contact' );
return opalestate_options( 'contact_email_body', self::get_default_template( ) );
break;
}
}
@ -70,5 +74,15 @@ class OpalEstate_Send_Email_Notification extends OpalEstate_Abstract_Email_Templ
$this->args['email'] = $this->args['receiver_email'];
return parent::get_body();
}
/***/
public static function get_default_template ( $type='contact' ) {
if( $type == 'enquiry' ) {
return opalestate_load_template_path( 'emails/enquiry' );
}
return opalestate_load_template_path( 'emails/contact' );
}
}
?>

View File

@ -62,8 +62,7 @@ class OpalEstate_Send_Email_New_Submitted extends OpalEstate_Abstract_Email_Temp
*/
public function get_content_template() {
$body = opalestate_get_option( 'newproperty_email_body', self::newproperty_email_body() );
$body = opalestate_get_option( 'newproperty_email_body', self::get_default_template() );
return $body;
}
@ -103,7 +102,6 @@ class OpalEstate_Send_Email_New_Submitted extends OpalEstate_Abstract_Email_Temp
* Send Email
*/
public function get_body() {
return parent::get_body();
}
}

View File

@ -29,14 +29,18 @@ class OpalEstate_Send_Email_Request_Reviewing extends OpalEstate_Abstract_Email_
public function get_subject() {
$propety_title = '';
return sprintf( esc_html__( 'You have a message request reviewing: %s at', 'opalestate-pro' ), $propety_title );
$content = sprintf( esc_html__( 'You have a message request reviewing: %s at', 'opalestate-pro' ), $propety_title );
$content = opalestate_options( 'request_review_email_subject', $content );
return $content;
}
/**
* Send Email
*/
public function get_content_template() {
return opalestate_load_template_path( 'emails/request-reviewing' );
$content = opalestate_options( 'request_review_email_body', self::get_default_template() );
return $content;
}
/**
@ -65,4 +69,9 @@ class OpalEstate_Send_Email_Request_Reviewing extends OpalEstate_Abstract_Email_
return parent::get_body();
}
public static function get_default_template() {
return opalestate_load_template_path( 'emails/request-reviewing' );
}
}

View File

@ -23,6 +23,17 @@ if ( ! defined( 'ABSPATH' ) ) {
*/
class OpalEstate_Shortcodes {
/**
* Get instance of this object
*/
public static function get_instance(){
static $_instance;
if( !$_instance ){
$_instance = new OpalEstate_Shortcodes();
}
return $_instance;
}
/**
* Static $shortcodes
*/
@ -39,11 +50,11 @@ class OpalEstate_Shortcodes {
'properties' => [ 'code' => 'properties', 'label' => esc_html__( 'Properties', 'opalestate-pro' ) ],
'search_properties_result' => [ 'code' => 'search_properties_result', 'label' => esc_html__( 'Search Properties Result', 'opalestate-pro' ) ],
'search_properties' => [ 'code' => 'search_properties', 'label' => esc_html__( 'Search Properties', 'opalestate-pro' ) ],
'search_properties_v' => [ 'code' => 'search_properties_v', 'label' => esc_html__( 'Search Properties Vertical', 'opalestate-pro' ) ],
'search_split_maps' => [ 'code' => 'search_split_maps', 'label' => esc_html__( 'Search Split Maps', 'opalestate-pro' ) ],
'search_map_properties' => [ 'code' => 'search_map_properties', 'label' => esc_html__( 'Show Map + Search Box and Properties', 'opalestate-pro' ) ],
'ajax_map_search' => [ 'code' => 'ajax_map_search', 'label' => esc_html__( 'Ajax Search Map Properties And Horizontal Search', 'opalestate-pro' ) ],
'search_map_properties' => [ 'code' => 'search_map_properties', 'label' => esc_html__( 'Search Map Properties', 'opalestate-pro' ) ],
'ajax_map_search' => [ 'code' => 'ajax_map_search', 'label' => esc_html__( 'Ajax Search Map Properties', 'opalestate-pro' ) ],
'ajax_map_quick_search' => [ 'code' => 'ajax_map_quick_search', 'label' => esc_html__( 'Ajax Search Map Properties', 'opalestate-pro' ) ],
'register_form' => [ 'code' => 'register_form', 'label' => esc_html__( 'Register User Form', 'opalestate-pro' ) ],
'login_form' => [ 'code' => 'login_form', 'label' => esc_html__( 'Login Form', 'opalestate-pro' ) ],
];
@ -58,6 +69,9 @@ class OpalEstate_Shortcodes {
}
/**
* Display all properties follow user when logined
*/
public function shortcode_button() {
}
@ -68,18 +82,66 @@ class OpalEstate_Shortcodes {
public function search_properties_form ( $atts=[] ) {
$atts = is_array( $atts ) ? $atts : [];
$layout = 'collapse-advanced';
$atts['hidden_labels'] = true;
$default = array(
'hidden_labels' => true,
'display_more_options' => true,
'nobutton' => false,
'layout' => $layout
);
return opalestate_load_template_path( 'search-box/collapse-advanced', $atts );
$atts = array_merge( $default, $atts );
return opalestate_load_template_path( 'search-box/'.$layout, $atts );
}
public function properties() {
return opalestate_load_template_path( 'shortcodes/properties' );
/**
* Display all properties follow user when logined
*/
public function properties( $atts=[] ) {
$atts = is_array( $atts ) ? $atts : [];
$default = array (
'posts_per_page' => 9,
'show_pagination' => true,
'column' => apply_filters( 'opalestate_properties_column_row', 3 ),
'layout' => 'content-property-grid-v2',
'showmode' => '',
'categories' => null,
'types' => null,
'labels' => null,
'cities' => null,
'statuses' => null,
);
$atts = array_merge( $default, $atts );
return opalestate_load_template_path( 'shortcodes/properties', $atts );
}
public function search_properties_result() {
return opalestate_load_template_path( 'shortcodes/search-properties-result' );
/**
* [opalestate_search_properties_result] Display all properties follow user when logined
*/
public function search_properties_result( $atts=[] ) {
$atts = is_array( $atts ) ? $atts : [];
$default = array(
'style' => null,
'style_list' => null,
'column' => null,
);
$atts = array_merge( $default, $atts );
$html = '<div class="opalesate-properties-ajax opalesate-properties-results" data-mode="html">';
$html .= opalestate_load_template_path( 'shortcodes/ajax-map-search-result', $atts );
$html .= '</div>';
return $html;
}
/**
@ -99,25 +161,40 @@ class OpalEstate_Shortcodes {
/**
* Render search property page with vertical form and map
*/
public function search_properties_v() {
return opalestate_load_template_path( 'shortcodes/search-properties-v', [ 'loop' => '' ] );
public function search_split_maps( $atts=[] ) {
$atts = is_array( $atts ) ? $atts : [];
$default = array(
'search_form' => 'simple-city',
'paged' => 1
);
$atts = array_merge( $default, $atts );
return opalestate_load_template_path( 'shortcodes/search-split-maps', $atts );
}
/**
* Render search property page with vertical form and map
*/
public function search_map_properties() {
return opalestate_load_template_path( 'shortcodes/search-map-properties', [ 'loop' => '' ] );
}
/**
* Render search property page with vertical form and map
*/
public function ajax_map_search() {
wp_enqueue_script( 'sticky-kit', OPALESTATE_PLUGIN_URL . 'assets/js/jquery.sticky-kit.min.js' );
return opalestate_load_template_path( 'shortcodes/ajax-map-search', [ 'loop' => '' ] );
}
public function ajax_map_quick_search() {
return opalestate_load_template_path( 'shortcodes/ajax-map-quick-search', [ 'loop' => '' ] );
}
/* register form show up */
/*
* Register form show up
*/
public function register_form( $atts = [] ) {
$atts = shortcode_atts( [
'message' => '',
@ -128,7 +205,9 @@ class OpalEstate_Shortcodes {
return opalestate_load_template_path( 'user/register-form', $atts );
}
/* sign in show up */
/*
* sign in show up
*/
public function login_form( $atts = [] ) {
$atts = shortcode_atts( [
'message' => '',
@ -141,4 +220,4 @@ class OpalEstate_Shortcodes {
}
new OpalEstate_Shortcodes();
OpalEstate_Shortcodes::get_instance();

View File

@ -219,7 +219,13 @@ add_action( 'opalestate_single_property_preview', 'opalestate_property_preview',
function opalestate_property_request_viewing_button( $islink = false ) {
$class = $islink ? 'btn-link' : 'btn btn-primary';
echo '<a href="#opalestate-user-form-popup" class="' . $class . ' btn-request-viewing opalestate-popup-button" data-target="#property-request-view-popup" >
if ( ! is_user_logged_in() ) {
$class .= ' opalestate-need-login';
} else {
$class .= ' opalestate-popup-button';
}
echo '<a href="#opalestate-user-form-popup" class="' . $class . ' btn-request-viewing" data-target="#property-request-view-popup" >
<i class="fa fa-calendar-check-o"></i>
<span class="btn-request-viewing__text">' . esc_html__( 'Request Viewing', 'opalestate-pro' ) . '</span>
</a>';
@ -254,6 +260,10 @@ add_action( 'opalestate_single_property_layout', 'opalestate_single_property_lay
* Forms
*/
function opalestate_property_request_view_form() {
if ( ! is_user_logged_in() ) {
return;
}
if ( ! is_single_property() ) {
return;
}

View File

@ -89,7 +89,7 @@ class OpalEstate_Membership {
add_action( 'opalmembership_dashboard_container_before', [ __CLASS__, 'check_membership_validation_message' ] );
// included logic functions
require_once( 'free-package.php' );
// require_once( 'free-package.php' );
require_once( 'functions.php' );
add_action( 'opalmembership_current_package_summary_after', [ __CLASS__, 'render_membership_summary' ], 10, 2 );

View File

@ -3,7 +3,7 @@
* Plugin Name: Opal Estate Pro
* Plugin URI: http://www.wpopal.com/product/opal-estate-wordpress-plugin/
* Description: Opal Real Estate Plugin is an ideal solution and brilliant choice for you to set up a professional estate website.
* Version: 1.0.7
* Version: 1.0.8
* Author: WPOPAL
* Author URI: http://www.wpopal.com
* Requires at least: 4.6

View File

@ -89,13 +89,18 @@ The plugin will not make you disappointed with ease of use, friendly & flexible
-=-=-=-=-=-=-=-=-=- Shortcodes -=-=-=-=-=-=-=-=-=-
- [opalestate_search_properties] => Show Search Properties horizontal form
- [opalestate_search_properties_v] => Show Search Properties vertical form
- [opalestate_search_properties_result] => Show Search Results
- [opalestate_search_map_properties] => Show Search Map Properties
- [opalestate_ajax_map_search] => Ajax Search Map Properties
- [opalestate_ajax_map_quick_search] => Ajax Search Map Properties
- [opalestate_search_properties_result] => Show Collection Results Working with
- [opalestate_search_map_properties] => Show Map + Search Box and Properties
- [opalestate_search_split_maps] => Ajax Search Split Map With Collection
- [opalestate_ajax_map_search] => Ajax Search Map Properties And Horizontal Search
- [opalestate_register_form] => Register User Form
- [opalestate_login_form] => Login Form
- [opalestate_properties] => Display list of property estate in grid with pagination
- [opalestate_search_agents] => Dislay Search box and agents collection
- [opalestate_agent_carousel] => Display List of Agent in carousel style
- [opalestate_agency_carousel] => Display List of Agency in carousel style
= Elementor Widgets =

View File

@ -1,37 +1,10 @@
<?php
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$rowcls = apply_filters( 'opalestate_row_container_class', 'opal-row' );
$atts = array(
'paged' => 1,
'search_form' => $settings['search_form']
);
?>
<div class="ajax-map-search-split full-width">
<div class="inner">
<div class="<?php echo esc_attr( $rowcls ); ?>">
<div class="col-lg-6 col-md-12 col-sm-12 split-maps-container">
<div id="opalestate-map-preview" style="height:800px;" data-page="<?php echo esc_attr( $paged ); ?>">
<div id="mapView">
<div class="mapPlaceholder"><span class="fa fa-spin fa-spinner"></span> <?php esc_html_e( 'Loading map...', 'opalestate-pro' ); ?>
<div class="sk-folding-cube">
<div class="sk-cube1 sk-cube"></div>
<div class="sk-cube2 sk-cube"></div>
<div class="sk-cube4 sk-cube"></div>
<div class="sk-cube3 sk-cube"></div>
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-6 col-md-12 col-sm-12 pull-right">
<div class="split-search-container">
<div class="ajax-search-form">
<?php echo opalestate_load_template_path( 'search-box/' . $settings['search_form'], [ 'nobutton' => true ] ); ?>
</div>
<div class="opalesate-properties-ajax opalesate-properties-results" data-mode="html">
<?php echo opalestate_load_template_path( 'shortcodes/ajax-map-search-result', [ 'column' => 2 ] ); ?>
</div>
</div>
</div>
</div>
</div>
</div>
<?php echo opalestate_load_template_path( 'shortcodes/search-split-maps', $atts ); ?>

View File

@ -36,6 +36,9 @@ switch ( $supports[ $post_type ]['post_type'] ) {
break;
}
if( !is_object($object) ) {
return;
}
$cpt_feature = $supports[ $post_type ]['features_cpt'];
$features = Opalestate_Rating_Helper::get_features( $cpt_feature );

View File

@ -0,0 +1,37 @@
<?php
$_id = time();
$query = Opalestate_Query::get_agencies( array("posts_per_page"=>$limit, 'paged' => $paged), $onlyfeatured );
$item = $column;
$data = [
'slidesPerView' => $item,
'spaceBetween' => 30,
'slidesPerGroup' => $item,
'loop' => false,
];
?>
<div class="opalesate-agency-carousel opalestate-rows">
<?php if ( $query->have_posts() ) : ?>
<div class="opalestate-swiper-play swiper-container" id="postcarousel-<?php echo esc_attr( $_id ); ?>" data-swiper="<?php echo esc_attr( wp_json_encode( $data ) ); ?>">
<div class="swiper-wrapper">
<?php
$column = 5;
$clscol = floor( 12 / $column );
while ( $query->have_posts() ) : $query->the_post(); ?>
<div class="swiper-slide">
<?php echo opalestate_load_template_path( 'content-agency-grid' ); ?>
</div>
<?php endwhile; ?>
</div>
<?php if ( absint( $query->post_count ) > absint( $item ) ) : ?>
<div class="swiper-pagination"></div>
<div class="swiper-button-prev"> <i class="fas fa-angle-left"></i></div>
<div class="swiper-button-next"> <i class="fas fa-angle-right"></i></div>
<?php endif; ?>
</div>
<?php else: ?>
<?php echo opalestate_load_template_path( 'content-no-results' ); ?>
<?php endif; ?>
</div>

View File

@ -0,0 +1,37 @@
<?php
$_id = time();
$query = Opalestate_Query::get_agents( array("posts_per_page"=>$limit, 'paged' => $paged), $onlyfeatured );
$item = $column;
$data = [
'slidesPerView' => $item,
'spaceBetween' => 30,
'slidesPerGroup' => $item,
'loop' => false,
];
?>
<div class="opalesate-agent-carousel opalestate-rows">
<?php if ( $query->have_posts() ) : ?>
<div class="opalestate-swiper-play swiper-container" id="postcarousel-<?php echo esc_attr( $_id ); ?>" data-swiper="<?php echo esc_attr( wp_json_encode( $data ) ); ?>">
<div class="swiper-wrapper">
<?php
$column = 5;
$clscol = floor( 12 / $column );
while ( $query->have_posts() ) : $query->the_post(); ?>
<div class="swiper-slide">
<?php echo opalestate_load_template_path( 'content-agent-grid' ); ?>
</div>
<?php endwhile; ?>
</div>
<?php if ( absint( $query->post_count ) > absint( $item ) ) : ?>
<div class="swiper-pagination"></div>
<div class="swiper-button-prev"> <i class="fas fa-angle-left"></i></div>
<div class="swiper-button-next"> <i class="fas fa-angle-right"></i></div>
<?php endif; ?>
</div>
<?php else: ?>
<?php echo opalestate_load_template_path( 'content-no-results' ); ?>
<?php endif; ?>
</div>

View File

@ -1,22 +1,45 @@
<?php
$args = [
'posts_per_page' => -1,
'posts_per_page' => $posts_per_page,
'showmode' => $showmode,
'categories' => $categories,
'types' => $types,
'labels' => $labels,
'cities' => $cities,
'statuses' => $statuses,
];
$query = Opalestate_Query::get_property_query( $args );
$class = 'column-item';
$clscol = floor( 12 / $column );
?>
<div class="opalesate-property-collection">
<?php if ( $query->have_posts() ): ?>
<?php while ( $query->have_posts() ) : $query->the_post(); ?>
<div class="column-item">
<?php echo opalestate_load_template_path( 'content-property-grid-v2' ); ?>
<div class="opal-row">
<?php $cnt=0; while ( $query->have_posts() ) : $query->the_post(); ?>
<?php
$cls = '';
if ( $cnt++ % $column == 0 ) {
$cls .= ' first-child';
}
?>
<div class="<?php echo $cls; ?> col-lg-<?php echo esc_attr( $clscol ); ?> col-md-<?php echo esc_attr( $clscol ); ?> col-sm-6" data-related="map" data-id="<?php echo
esc_attr( $cnt - 1 );
?>">
<?php echo opalestate_load_template_path( $layout ); ?>
</div>
<?php endwhile; ?>
</div>
<?php if ( $query->max_num_pages > 1 && $show_pagination ): ?>
<div class="w-pagination"><?php opalestate_pagination( $query->max_num_pages ); ?></div>
<?php endif; ?>
<?php else: ?>
<?php echo opalestate_load_template_path( 'content-no-results' ); ?>
<?php endif; ?>

View File

@ -0,0 +1,4 @@
<div class="search-agency-form-wrap">
<?php echo opalestate_load_template_path( 'parts/'.$form, array('current_uri' => $current_uri ) ); ?>
</div>

View File

@ -1,5 +0,0 @@
<div class="opalestate-search-properties-v">
<div class="search-properies-form">
<?php echo opalestate_load_template_path( 'parts/search-form-v' ); ?>
</div>
</div>

View File

@ -0,0 +1,31 @@
<div class="ajax-map-search-split full-width">
<div class="inner">
<div class="opal-row">
<div class="col-lg-6 col-md-12 col-sm-12 split-maps-container">
<div id="opalestate-map-preview" style="height:800px;" data-page="<?php echo esc_attr( $paged ); ?>">
<div id="mapView">
<div class="mapPlaceholder"><span class="fa fa-spin fa-spinner"></span> <?php esc_html_e( 'Loading map...', 'opalestate-pro' ); ?>
<div class="sk-folding-cube">
<div class="sk-cube1 sk-cube"></div>
<div class="sk-cube2 sk-cube"></div>
<div class="sk-cube4 sk-cube"></div>
<div class="sk-cube3 sk-cube"></div>
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-6 col-md-12 col-sm-12 pull-right">
<div class="split-search-container">
<div class="ajax-search-form">
<?php echo opalestate_load_template_path( 'search-box/'.$search_form, [ 'nobutton' => true ] ); ?>
</div>
<div class="opalesate-properties-ajax opalesate-properties-results" data-mode="html">
<?php echo opalestate_load_template_path( 'shortcodes/ajax-map-search-result', [ 'column' => 2 ] ); ?>
</div>
</div>
</div>
</div>
</div>
</div>