field_type; $field_view_path = WPDIRECTORYKIT_PATH.'application/views/fields_edit/'.$field_type.'.php'; if(file_exists($field_view_path)) { include $field_view_path; } else { echo __('Missing VIEW file:', 'wpdirectorykit').' '.esc_html($field_type).'.php'; } } } if ( ! function_exists('wdk_generate_search_form')) { function wdk_generate_search_form($form_id=1, $subfolder='', $print = TRUE, $predefinedfields_query = array()) { /* load WMVC data */ $WMVC = &wdk_get_instance(); $WMVC->model('searchform_m'); $WMVC->model('field_m'); $output = ''; /* get WMVC form data */ $fields = $WMVC->searchform_m->get($form_id, TRUE); $user_fields = NULL; /* get WMVC form fields */ if(is_object($fields)) $user_fields = json_decode($fields->searchform_json); /* generate WMVC form fields html */ if(is_array($user_fields)) foreach($user_fields as $used_field) { if($used_field->field_id == 'cat') { $field = array( "idfield" => 'category', "field_type" => 'CATEGORY', "field_label" => __('Category', 'wpdirectorykit'), "prefix" => '', "suffix" => '', "values_list" => '', "placeholder" => '', ); }else if($used_field->field_id == 'loc') { $field = array( "idfield" => 'location', "field_type" => 'LOCATION', "field_label" => __('Location', 'wpdirectorykit'), "prefix" => '', "suffix" => '', "values_list" => '', "placeholder" => '', ); }else if($used_field->field_id == 'address') { $field = array( "idfield" => 'address', "field_type" => 'INPUTBOX', "field_label" => __('Address', 'wpdirectorykit'), "prefix" => '', "suffix" => '', "values_list" => '', "placeholder" => '', ); }else if($used_field->field_id == 'post_title') { $field = array( "idfield" => 'post_title', "field_type" => 'INPUTBOX', "field_label" => __('Title', 'wpdirectorykit'), "prefix" => '', "suffix" => '', "values_list" => '', "placeholder" => '', ); }else if($used_field->field_id == 'search') { $field = array( "idfield" => 'search', "field_type" => 'INPUTBOX', "field_label" => __('Search', 'wpdirectorykit'), "prefix" => '', "suffix" => '', "values_list" => '', "placeholder" => '', ); }else if(function_exists('run_wdk_bookings') && $used_field->field_id == 'booking_date') { $field = array( "idfield" => 'booking_date', "field_type" => 'BOOKINGS_DATE', "field_label" => __('Booking Date', 'wpdirectorykit'), "prefix" => '', "suffix" => '', "values_list" => '', "placeholder" => '', ); }else if(function_exists('run_wdk_bookings') && $used_field->field_id == 'booking_guest') { $field = array( "idfield" => 'booking_guest', "field_type" => 'NUMBER', "field_label" => __('Booking Max Guests', 'wpdirectorykit'), "prefix" => '', "suffix" => '', "values_list" => '', "placeholder" => '', ); }else if($used_field->field_id == 'more') { $field = array( "idfield" => 'MORE', "field_type" => 'MORE', "field_label" => __('MORE', 'wpdirectorykit'), "prefix" => '', "suffix" => '', "values_list" => '', "placeholder" => '', ); } else { $field_data = $WMVC->field_m->get_fields_data($used_field->field_id); if($field_data) { if($used_field->query_type == 'slider_range') { $field = array( "idfield" => wmvc_show_data('idfield', $field_data), "field_type" => 'SLIDER_RANGE', "field_label" =>wmvc_show_data('field_label', $field_data), "prefix" => wmvc_show_data('prefix', $field_data), "suffix" => wmvc_show_data('suffix', $field_data), "value_min" => wmvc_show_data('value_min', $used_field), "value_max" => wmvc_show_data('value_max', $used_field), "values_list" => wmvc_show_data('values_list', $field_data), "placeholder" => wmvc_show_data('placeholder', $field_data) ); } else { $field = array( "idfield" => wmvc_show_data('idfield', $field_data), "field_type" => wmvc_show_data('field_type', $field_data), "field_label" =>wmvc_show_data('field_label', $field_data), "prefix" => wmvc_show_data('prefix', $field_data), "suffix" => wmvc_show_data('suffix', $field_data), "values_list" => wmvc_show_data('values_list', $field_data), "placeholder" => wmvc_show_data('placeholder', $field_data) ); } } } /* if field not detected or remove from fields list, skip field in search */ if(empty($field)) continue; /* add from user fields data */ $field['field_id'] = wmvc_show_data('field_id', $used_field); $field['class'] = wmvc_show_data('class', $used_field); $field['query_type'] = wmvc_show_data('query_type', $used_field); $field['columns'] = wmvc_show_data('columns', $used_field); $field_data = array(); $field_data ['field_data'] = $field; $field_data ['predefinedfields_query'] = $predefinedfields_query; if(in_array(wmvc_show_data('field_type', $field),array('SECTION'))) { continue; } $field_view_path = WPDIRECTORYKIT_PATH.'application/views/search_fields/'.$subfolder.(wmvc_show_data('field_type', $field)).'.php'; if(file_exists($field_view_path)) { $output .= $WMVC->view('search_fields/'.$subfolder.(wmvc_show_data('field_type', $field)), $field_data, FALSE); } else { /* show missing view file of field, only if print enable */ if($print) $output .= __('Missing VIEW file:', 'wpdirectorykit').' '.esc_html($subfolder).(wmvc_show_data('field_type', $field)).'.php'; } } if($print){ echo $output; return FALSE; } return $output; } } if ( ! function_exists('wdk_generate_search_form_fields_elementor')) { function wdk_generate_search_form_fields_elementor($fields_array = array(), $subfolder='', $print = TRUE, $predefinedfields_query = array()) { /* load WMVC data */ $WMVC = &wdk_get_instance(); $WMVC->model('searchform_m'); $WMVC->model('field_m'); $output = ''; foreach ($fields_array as $key => $el_field_data) { $field_id = wmvc_show_data('field_id', $el_field_data, ''); if(empty($field_id)) continue; if(strpos($field_id,'__') !== FALSE){ $field_id = substr($field_id, strpos($field_id,'__')+2); } $field = NULL; if($field_id == 'category_id') { $field = array( "idfield" => 'category', "field_type" => 'CATEGORY', "field_label" => __('Category', 'wpdirectorykit'), "prefix" => '', "suffix" => '', "values_list" => '', "placeholder" => '', ); }else if($field_id == 'location_id') { $field = array( "idfield" => 'location', "field_type" => 'LOCATION', "field_label" => __('Location', 'wpdirectorykit'), "prefix" => '', "suffix" => '', "values_list" => '', "placeholder" => '', ); }else if($field_id == 'address') { $field = array( "idfield" => 'address', "field_type" => 'INPUTBOX', "field_label" => __('Address', 'wpdirectorykit'), "prefix" => '', "suffix" => '', "values_list" => '', "placeholder" => '', ); }else if($field_id == 'post_title') { $field = array( "idfield" => 'post_title', "field_type" => 'INPUTBOX', "field_label" => __('Title', 'wpdirectorykit'), "prefix" => '', "suffix" => '', "values_list" => '', "placeholder" => '', ); }else if($field_id == 'search') { $field = array( "idfield" => 'search', "field_type" => 'INPUTBOX', "field_label" => __('Search', 'wpdirectorykit'), "prefix" => '', "suffix" => '', "values_list" => '', "placeholder" => '', ); }else if(function_exists('run_wdk_bookings') && $field_id == 'booking_date') { $field = array( "idfield" => 'booking_date', "field_type" => 'BOOKINGS_DATE', "field_label" => __('Booking Date', 'wpdirectorykit'), "prefix" => '', "suffix" => '', "values_list" => '', "placeholder" => '', ); }else if($field_id == 'more') { $field = array( "idfield" => 'MORE', "field_type" => 'MORE', "field_label" => __('MORE', 'wpdirectorykit'), "prefix" => '', "suffix" => '', "values_list" => '', "placeholder" => '', ); } else { $field_data = $WMVC->field_m->get_fields_data($field_id); if($field_data) { if(wmvc_show_data('search_type', $el_field_data, '') == 'slider_range') { $field = array( "idfield" => wmvc_show_data('idfield', $field_data), "field_type" => 'SLIDER_RANGE', "field_label" =>wmvc_show_data('field_label', $field_data), "prefix" => wmvc_show_data('prefix', $field_data), "suffix" => wmvc_show_data('suffix', $field_data), "value_min" => wmvc_show_data('value_min', $el_field_data), "value_max" => wmvc_show_data('value_max', $el_field_data), "values_list" => wmvc_show_data('values_list', $field_data), "placeholder" => wmvc_show_data('placeholder', $field_data) ); } else { $field = array( "idfield" => wmvc_show_data('idfield', $field_data), "field_type" => wmvc_show_data('field_type', $field_data), "field_label" =>wmvc_show_data('field_label', $field_data), "prefix" => wmvc_show_data('prefix', $field_data), "suffix" => wmvc_show_data('suffix', $field_data), "values_list" => wmvc_show_data('values_list', $field_data), "placeholder" => wmvc_show_data('placeholder', $field_data) ); } } } if(wmvc_show_data('field_placeholder', $el_field_data, false)) { $field['placeholder'] = wmvc_show_data('field_placeholder', $el_field_data, false); } if(wmvc_show_data('search_type_tree_hide', $el_field_data, false)) { $field['search_type_tree_hide'] = wmvc_show_data('search_type_tree_hide', $el_field_data, false); } /* if field not detected or remove from fields list, skip field in search */ if(empty($field)) continue; /* add from user fields data */ $field['field_id'] = wmvc_show_data('idfield', $field); $field['class'] = wmvc_show_data('field_css_class', $el_field_data); $field['query_type'] = wmvc_show_data('search_type', $el_field_data); $field['columns'] = wmvc_show_data('field_columns_number', $el_field_data); $field_data = array(); $field_data ['field_data'] = $field; $field_data ['predefinedfields_query'] = $predefinedfields_query; if(in_array(wmvc_show_data('field_type', $field),array('SECTION'))) { continue; } $field_suffix = strtoupper(wmvc_show_data('search_type_tree', $el_field_data,'')); $field_view_path = WPDIRECTORYKIT_PATH.'application/views/search_fields/'.$subfolder.(wmvc_show_data('field_type', $field)).$field_suffix.'.php'; if(file_exists($field_view_path)) { $output .= $WMVC->view('search_fields/'.$subfolder.(wmvc_show_data('field_type', $field)).$field_suffix, $field_data, FALSE); } else { /* show missing view file of field, only if print enable */ if($print) $output .= __('Missing VIEW file:', 'wpdirectorykit').' '.esc_html($subfolder).(wmvc_show_data('field_type', $field)).$field_suffix.'.php'; } } if($print){ echo $output; return FALSE; } return $output; } } function &wdk_get_instance() { global $Winter_MVC_WDK; if(empty($Winter_MVC_WDK)) { $Winter_MVC_WDK = new MVC_Loader(plugin_dir_path( __FILE__ ).'../../'); $Winter_MVC_WDK->load_helper('basic'); } return $Winter_MVC_WDK; } function wdk_prepare_search_query_GET($columns = array(), $model_name = NULL, $external_columns = array(), $custom_parameters = array(), $skip_postget = FALSE) { global $Winter_MVC_WDK; $WMVC = &$Winter_MVC_WDK; $wdk_bookings_joinded = false; static $available_fields_listings = NULL; static $available_fields_static = array(); static $list_fields_static = NULL; /* add if missing columns */ if(!in_array('post_id', $columns)) { $columns[] = $Winter_MVC_WDK->db->prefix.'wdk_listings.post_id'; } $_GET_clone = array(); if(!$skip_postget) $_GET_clone = array_merge($_GET, $_POST); if(isset($_GET_clone['order_by']) && $_GET_clone['order_by'] =='undefined') { unset($_GET_clone['order_by']); } if(isset($custom_parameters['order_by'])) { if(isset($_GET_clone['order_by']) && !empty($_GET_clone['order_by'])) { $_GET_clone['order_by'] = $custom_parameters['order_by'].', '.$_GET_clone['order_by']; } else { $_GET_clone['order_by'] = $custom_parameters['order_by']; } unset($custom_parameters['order_by']); } if(!empty($custom_parameters)) $_GET_clone = array_merge($_GET_clone, $custom_parameters); $WMVC->model('listing_m'); $WMVC->model('field_m'); $WMVC->model('listingfield_m'); $smart_search = ''; if(isset($_GET_clone['search'])) $smart_search = sanitize_text_field($_GET_clone['search']); if(isset($_GET_clone['field_search'])) $smart_search = sanitize_text_field($_GET_clone['field_search']); if(!isset($available_fields_static[$model_name])) { $available_fields = $WMVC->$model_name->get_available_fields(); $available_fields_static[$model_name] = $available_fields; } else { $available_fields = $available_fields_static[$model_name]; } if($available_fields_listings === NULL) $available_fields_listings = $WMVC->listingfield_m->get_available_fields(); /* Пet column names from wdk_listings_fields and add to allow search + in _GET_clone replace field_#id to field_id_TYPE*/ if($list_fields_static === NULL) { $WMVC->db->where(array('field_type !='=> 'SECTION')); $list_fields = $WMVC->field_m->get(); $list_fields_static = $list_fields; } else { $list_fields = $list_fields_static; } foreach($list_fields as $field_data) { $field_id = wmvc_show_data('idfield',$field_data); $field_type = wmvc_show_data('field_type',$field_data); $column_name ='field_'.$field_id.'_'.$field_type; if(!isset($available_fields_listings[$column_name])) continue; if(isset($_GET_clone['field_'.$field_id])) { if($field_type == 'DROPDOWNMULTIPLE') { $_GET_clone['field_'.$field_id.'_'.$field_type] = $_GET_clone['field_'.$field_id]; } else { $_GET_clone['field_'.$field_id.'_'.$field_type] = apply_filters( 'wdk-currency-conversion/convert/default_value',sanitize_text_field($_GET_clone['field_'.$field_id]), $field_id); } } if(isset($_GET_clone['field_'.$field_id.'_max'])) { $_GET_clone['field_'.$field_id.'_'.$field_type.'_max'] = apply_filters( 'wdk-currency-conversion/convert/default_value',sanitize_text_field($_GET_clone['field_'.$field_id.'_max']), $field_id); } if(isset($_GET_clone['field_'.$field_id.'_min'])) { $_GET_clone['field_'.$field_id.'_'.$field_type.'_min'] = apply_filters( 'wdk-currency-conversion/convert/default_value',sanitize_text_field($_GET_clone['field_'.$field_id.'_min']), $field_id); } if(isset($_GET_clone['field_'.$field_id.'_exactly'])) { $_GET_clone['field_'.$field_id.'_'.$field_type.'_exactly'] = sanitize_text_field($_GET_clone['field_'.$field_id.'_exactly']); } $columns[] = $column_name; $columns[] = $column_name.'_max'; $columns[] = $column_name.'_min'; $columns[] = $column_name.'_exactly'; $external_columns[] = $column_name; $external_columns[] = $column_name.'_max'; $external_columns[] = $column_name.'_min'; $external_columns[] = $column_name.'_exactly'; } if(isset($_GET_clone['search_agents_ids'])) { $column_name ='agents_ids'; $_GET_clone[$column_name] = $_GET_clone['search_agents_ids']; $columns[] = $column_name; $external_columns[] = $column_name; } if(isset($_GET_clone['search_user_editor_ids'])) { $column_name ='user_editor_ids'; $_GET_clone[$column_name] = $_GET_clone['search_user_editor_ids']; $columns[] = $column_name; $external_columns[] = $column_name; } if(isset($_GET_clone['search_location'])) { $column_name ='location_id'; $_GET_clone[$column_name] = $_GET_clone['search_location']; $columns[] = $column_name; $external_columns[] = $column_name; } if(isset($_GET_clone['search_category'])) { $column_name ='category_id'; $_GET_clone[$column_name] = $_GET_clone['search_category']; $columns[] = $column_name; $external_columns[] = $column_name; } if(isset($_GET_clone['search_gps'])) { $column_name ='gps'; $_GET_clone[$column_name] = $_GET_clone['search_gps']; $columns[] = $column_name; $external_columns[] = $column_name; } if(isset($_GET_clone['field_address'])) { $column_name ='address'; $_GET_clone[$column_name] = $_GET_clone['field_address']; $columns[] = $column_name; $external_columns[] = $column_name; } if(isset($_GET_clone['field_post_id'])) { $column_name ='ID_exactly'; $_GET_clone[$column_name] = intval($_GET_clone['field_post_id']); $columns[] = $column_name; $external_columns[] = $column_name; } if(isset($_GET_clone['field_post_date'])) { $column_name ='post_DATE'; $_GET_clone[$column_name] = ($_GET_clone['field_post_date']); $columns[] = $column_name; $external_columns[] = $column_name; } if(isset($_GET_clone['field_post_date_min'])) { $column_name ='post_DATE_min'; $_GET_clone[$column_name] = ($_GET_clone['field_post_date_min']); $columns[] = $column_name; $external_columns[] = $column_name; } if(isset($_GET_clone['field_post_date_max'])) { $column_name ='post_DATE_max'; $_GET_clone[$column_name] = ($_GET_clone['field_post_date_max']); $columns[] = $column_name; $external_columns[] = $column_name; } if (function_exists('run_wdk_bookings') && isset($_GET_clone['field_booking_date_from'])) { $column_name ='field_booking_date_from'; $_GET_clone[$column_name] = $_GET_clone['field_booking_date_from']; $columns[] = $column_name; $external_columns[] = $column_name; } if (function_exists('run_wdk_bookings') && isset($_GET_clone['field_booking_date_to'])) { $column_name ='field_booking_date_to'; $_GET_clone[$column_name] = $_GET_clone['field_booking_date_to']; $columns[] = $column_name; $external_columns[] = $column_name; } if (function_exists('run_wdk_bookings') && isset($_GET_clone['field_booking_guest'])) { $column_name ='field_booking_guest'; $_GET_clone[$column_name] = $_GET_clone['field_booking_guest']; $columns[] = $column_name; $external_columns[] = $column_name; } if (isset($_GET_clone['search_rank_'.NONCE_KEY])) { $column_name ='`rank`'; $_GET_clone[$column_name] = $_GET_clone['search_rank_'.NONCE_KEY]; $columns[] = $column_name; $external_columns[] = $column_name; } //$table_name = substr($model_name, 0, -2); $columns_original = array(); foreach($columns as $key=>$val) { $columns_original[$val] = $val; // if column contain also "table_name.*" $splited = explode('.', $val); if(wmvc_count($splited) == 2) $val = $splited[1]; if(isset($available_fields[$val])) { } else { if(!in_array($columns[$key], $external_columns)) { unset($columns[$key]); } } } if(wmvc_count($_GET_clone) > 0) { unset($_GET_clone['search']); unset($_GET_clone['field_search']); // For quick/smart search if(wmvc_count($columns) > 0 && !empty($smart_search)) { $gen_q = ''; foreach($columns as $key=>$value) { if($value == 'field_booking_date_from' || $value == 'field_booking_date_to' || $value == 'agents_ids' || $value == 'gps' || $value == 'is_featured' || $value == 'field_booking_guest') continue; if(strpos($value, '_CHECKBOX') !== FALSE) continue; // if smart is number, search only im number fields if(is_intval($smart_search)) { if(strpos($value, '_NUMBER') === FALSE /*&& $value != 'category_id' && $value != 'location_id'*/ && strpos($value, 'post_id') === FALSE ) continue; } else { if($value == 'category_id' || $value == 'location_id' || strpos($value, 'post_id') !== FALSE) continue; } if(substr_count($value, 'id') > 0 && is_numeric($smart_search)) { $gen_q.="$value = $smart_search OR "; } else if(substr_count($value, 'date') > 0) { $gen_search = $smart_search; $gen_q.="$value LIKE '%$gen_search%' OR "; } elseif(substr($value, -8) == '_exactly') { } elseif(substr($value, -4) == '_max') { } else if(substr($value, -4) == '_min') { } else if(strpos($value, '_NUMBER') !== FALSE) { if(is_intval($smart_search)){ $gen_search = $smart_search; $gen_q.="$value = $gen_search OR "; } } else { $gen_q.="$value LIKE '%$smart_search%' OR "; } } /* location / categories */ if(!is_intval($smart_search)) { $gen_q.="location_title LIKE '%$smart_search%' OR "; $gen_q.="category_title LIKE '%$smart_search%' OR "; } /* get address and gps */ if(strlen($smart_search) > 5) { $coordinates_center = wdk_get_gps($smart_search); $search_radius = 5; if($coordinates_center && $coordinates_center['lat'] != 0 && is_numeric($search_radius)) { $distance_unit = 'km'; if(__('km', 'wpdirectorykit') == 'm') { $distance_unit = 'm'; } // calculate rectangle $rectangle_ne = wdk_getDueCoords($coordinates_center['lat'], $coordinates_center['lng'], 45, $search_radius, $distance_unit); $rectangle_sw = wdk_getDueCoords($coordinates_center['lat'], $coordinates_center['lng'], 225, $search_radius, $distance_unit); $gps_ne = explode(', ', $rectangle_ne); $gps_sw = explode(', ', $rectangle_sw); $gen_q .="(".$WMVC->db->prefix."wdk_listings.lat < '$gps_ne[0]' AND ".$WMVC->db->prefix."wdk_listings.lat > '$gps_sw[0]' AND ".$WMVC->db->prefix."wdk_listings.lng < '$gps_ne[1]' AND ".$WMVC->db->prefix."wdk_listings.lng > '$gps_sw[1]') OR "; } } /* detect is gps */ if(wdk_is_gps($smart_search)) { $gps = explode(',',$smart_search); $coordinates_center = array('lat'=>trim($gps[0]),'lng'=>trim($gps[1])); $search_radius = 5; if($coordinates_center && $coordinates_center['lat'] != 0 && is_numeric($search_radius)) { $distance_unit = 'km'; if(__('km', 'wpdirectorykit') == 'm') { $distance_unit = 'm'; } // calculate rectangle $rectangle_ne = wdk_getDueCoords($coordinates_center['lat'], $coordinates_center['lng'], 45, $search_radius, $distance_unit); $rectangle_sw = wdk_getDueCoords($coordinates_center['lat'], $coordinates_center['lng'], 225, $search_radius, $distance_unit); $gps_ne = explode(', ', $rectangle_ne); $gps_sw = explode(', ', $rectangle_sw); $gen_q .="(".$WMVC->db->prefix."wdk_listings.lat < '$gps_ne[0]' AND ".$WMVC->db->prefix."wdk_listings.lat > '$gps_sw[0]' AND ".$WMVC->db->prefix."wdk_listings.lng < '$gps_ne[1]' AND ".$WMVC->db->prefix."wdk_listings.lng > '$gps_sw[1]') OR "; } } $gen_q = substr($gen_q, 0, -4); if(!empty($gen_q)) $WMVC->db->where("($gen_q)"); } // For column search if(isset($_GET_clone)) { $gen_q = ''; foreach($_GET_clone as $key=>$val) { if(!empty($val) && in_array($key, $columns)) { $col_name = $key; $val = esc_sql($val); //if(isset($key)) // $col_name = $key; if(strpos($key, 'skip') !== FALSE) continue; if(defined( 'WP_DEBUG' ) && WP_DEBUG) if(function_exists('pll_current_language')) { $lang_term_id = pll_current_language('term_id'); if(is_numeric($lang_term_id)) { $WMVC->db->join($WMVC->db->prefix.'term_relationships ON '.$WMVC->listing_m->_table_name.'.post_id = '.$WMVC->db->prefix.'term_relationships.object_id', NULL, NULL); $WMVC->db->where("({$WMVC->db->prefix}term_relationships.term_taxonomy_id = $lang_term_id)"); } } if($key == 'field_booking_guest') { if(!$wdk_bookings_joinded){ $WMVC->db->join($WMVC->db->prefix.'wdk_booking_price ON '.$WMVC->listing_m->_table_name.'.post_id = '.$WMVC->db->prefix.'wdk_booking_price.post_id', NULL, 'LEFT'); $WMVC->db->distinct($WMVC->listing_m->_table_name.'.post_id'); $WMVC->db->join($WMVC->db->prefix.'wdk_booking_reservation ON '.$WMVC->listing_m->_table_name.'.post_id = '.$WMVC->db->prefix.'wdk_booking_price.post_id', NULL, 'LEFT'); $wdk_bookings_joinded = true; $gen_q.= $WMVC->db->prefix.'wdk_booking_price.is_activated = 1 AND '; $WMVC->db->join($WMVC->db->prefix.'wdk_booking_calendar ON '.$WMVC->listing_m->_table_name.'.post_id = '.$WMVC->db->prefix.'wdk_booking_calendar.post_id', NULL, 'LEFT'); } $gen_q.= $WMVC->db->prefix."wdk_booking_calendar.guests <='".intval($val)."' AND "; } elseif($key == 'field_booking_date_from') { if(!$wdk_bookings_joinded){ $WMVC->db->join($WMVC->db->prefix.'wdk_booking_price ON '.$WMVC->listing_m->_table_name.'.post_id = '.$WMVC->db->prefix.'wdk_booking_price.post_id', NULL, 'LEFT'); $WMVC->db->distinct($WMVC->listing_m->_table_name.'.post_id'); $WMVC->db->join($WMVC->db->prefix.'wdk_booking_reservation ON '.$WMVC->listing_m->_table_name.'.post_id = '.$WMVC->db->prefix.'wdk_booking_price.post_id', NULL, 'LEFT'); $wdk_bookings_joinded = true; $gen_q.= $WMVC->db->prefix.'wdk_booking_price.is_activated = 1 AND '; $WMVC->db->join($WMVC->db->prefix.'wdk_booking_calendar ON '.$WMVC->listing_m->_table_name.'.post_id = '.$WMVC->db->prefix.'wdk_booking_calendar.post_id', NULL, 'LEFT'); } if(wdk_is_date($val)) { if(!get_option('wdk_bookings_is_hours_enabled')) { $gen_search = wdk_normalize_date_db($val, 'Y-m-d H:i:s', 'Y-m-d'); $gen_q.= "DATE_FORMAT(".$WMVC->db->prefix."wdk_booking_price.date_from, '%Y-%m-%d') <= '".$gen_search."' AND "; } else { $gen_search = wdk_normalize_date_db($val); $gen_q.= $WMVC->db->prefix."wdk_booking_price.date_from >'".$gen_search."' AND "; } } if( isset($_GET_clone['field_booking_date_from']) && isset($_GET_clone['field_booking_date_to'])) { if(!get_option('wdk_bookings_is_hours_enabled')) { $gen_search_from = wdk_normalize_date_db($_GET_clone['field_booking_date_from'], 'Y-m-d H:i:s', 'Y-m-d'); $gen_search_to = wdk_normalize_date_db($_GET_clone['field_booking_date_to'], 'Y-m-d H:i:s', 'Y-m-d'); $gen_q.= $WMVC->listing_m->_table_name.".post_id NOT IN ( SELECT post_id FROM ".$WMVC->db->prefix."wdk_booking_reservation WHERE ".$WMVC->db->prefix."wdk_booking_reservation.is_approved = 1 AND DATE_FORMAT(".$WMVC->db->prefix."wdk_booking_reservation.date_from, '%Y-%m-%d') < '".$gen_search_to."' AND DATE_FORMAT(".$WMVC->db->prefix."wdk_booking_reservation.date_to, '%Y-%m-%d') > '".$gen_search_from."' ) AND "; } else { $gen_search_from = wdk_normalize_date_db($_GET_clone['field_booking_date_from']); $gen_search_to = wdk_normalize_date_db($_GET_clone['field_booking_date_to']); $gen_q.= $WMVC->listing_m->_table_name.".post_id NOT IN ( SELECT post_id FROM ".$WMVC->db->prefix."wdk_booking_reservation WHERE ".$WMVC->db->prefix."wdk_booking_reservation.is_approved = 1 AND ".$WMVC->db->prefix."wdk_booking_reservation.date_from < '".$gen_search_to."' AND ".$WMVC->db->prefix."wdk_booking_reservation.date_to > '".$gen_search_from."' ) AND "; } } } elseif($key == 'field_booking_date_to') { if(!$wdk_bookings_joinded){ $WMVC->db->join($WMVC->db->prefix.'wdk_booking_price ON '.$WMVC->listing_m->_table_name.'.post_id = '.$WMVC->db->prefix.'wdk_booking_price.post_id',NULL, 'LEFT'); $WMVC->db->join($WMVC->db->prefix.'wdk_booking_reservation ON '.$WMVC->listing_m->_table_name.'.post_id = '.$WMVC->db->prefix.'wdk_booking_price.post_id',NULL, 'LEFT'); $wdk_bookings_joinded = true; $gen_q.= $WMVC->db->prefix.'wdk_booking_price.is_activated = 1 AND '; $WMVC->db->join($WMVC->db->prefix.'wdk_booking_calendar ON '.$WMVC->listing_m->_table_name.'.post_id = '.$WMVC->db->prefix.'wdk_booking_calendar.post_id', NULL, 'LEFT'); } if(wdk_is_date($val)) { if(!get_option('wdk_bookings_is_hours_enabled')) { $gen_search = wdk_normalize_date_db($val, 'Y-m-d H:i:s', 'Y-m-d'); $gen_q.= "DATE_FORMAT(".$WMVC->db->prefix."wdk_booking_price.date_to, '%Y-%m-%d') >= '".$gen_search."' AND "; } else { $gen_search = wdk_normalize_date_db($val); $gen_q.= $WMVC->db->prefix."wdk_booking_price.date_to >'".$gen_search."' AND "; } } } elseif(substr($key, -8) == '_exactly') { $col_name = substr($key, 0, -8); $gen_q.=$col_name." = '".$val."' AND "; } elseif(substr($key, -4) == '_max') { $col_name = substr($key, 0, -4); if(strpos($key, 'NUMBER') !== FALSE) { $gen_q.=$col_name." <= ".intval($val)." AND "; } else if(strpos($key, 'DATE') !== FALSE) { if(wdk_is_date($val)) { $gen_search = wdk_normalize_date_db($val, 'Y-m-d H:i:s', 'Y-m-d H:i:s'); $gen_q.=$col_name." <= '".$gen_search."' AND "; } } else { $gen_q.=$col_name." <= '".$val."' AND "; } } else if(substr($key, -4) == '_min') { $col_name = substr($key, 0, -4); if(strpos($key, 'NUMBER') !== FALSE) { $gen_q.=$col_name." >= ".intval($val)." AND "; } else if(strpos($key, 'DATE') !== FALSE) { if(wdk_is_date($val)) { $gen_search = wdk_normalize_date_db($val, 'Y-m-d H:i:s', 'Y-m-d H:i:s'); $gen_q.=$col_name." >= '".$gen_search."' AND "; } } else { $gen_q.=$col_name." >= '".$val."' AND "; } } elseif(substr_count($key, 'id') > 0 && is_numeric($val) && $key != 'agents_ids' && $key !='user_editor_ids' && $key !='location_id' && $key !='category_id') { // ID is always numeric if($key == 'location_id') { /* $gen_q .= "(`location_table`.`parent_path` = ".$val." OR "; $gen_q .= "`location_2`.`parent_path` = ".$val." OR ";*/ $gen_q .= "(`location_table`.`parent_id` = ".$val." OR "; //$gen_q .= "`".$WMVC->db->prefix."wdk_locations `.`level_0_id` = ".$val." OR "; $gen_q .= $col_name." = ".$val.") AND "; } elseif($key == 'category_id') { $gen_q .= "('parent_path' = ".$val." OR "; $gen_q .= $col_name." = ".$val.") AND "; } else { $gen_q.=$col_name." = ".$val." AND "; } } else if(substr_count($key, '_DATE') > 0) { // DATE VALUES $gen_search = $val; if(wdk_is_date($val)) { $gen_search = wdk_normalize_date_db($gen_search, 'Y-m-d H:i:s', 'Y-m-d'); $gen_q.=$col_name." LIKE '%".$gen_search."%' AND "; } else { $gen_q.=$col_name." LIKE '%".$gen_search."%' AND "; } } else if(substr_count($key, 'is_') > 0) { // CHECKBOXES if($val=='on') { $gen_search = 1; $gen_q.=$col_name." LIKE '%".$gen_search."%' AND "; } else if($val=='off') { $gen_q.=$col_name." IS NULL AND "; } } elseif($key == 'agents_ids') { if(is_string($val) && strpos($val, ',') !== FALSE){ $val =explode(',', $val); } elseif(is_string($val)){ $val =array($val); } if(is_array($val)) { $WMVC->db->join($WMVC->db->prefix.'wdk_listings_users ON '.$WMVC->listing_m->_table_name.'.post_id = '.$WMVC->db->prefix.'wdk_listings_users.post_id', NULL, 'LEFT'); $WMVC->db->distinct($WMVC->listing_m->_table_name.'.post_id'); $sql_search = ''; foreach ($val as $v) { if(empty($v)) continue; if(!empty($sql_search)) $sql_search .= " OR "; $sql_search .=" ".$WMVC->listing_m->_table_name.".`user_id_editor` = ".intval($v)." OR `".$WMVC->db->prefix."wdk_listings_users`.`user_id` = ".intval($v)." "; } if(!empty($sql_search)) $gen_q.=" ( ".$sql_search." ) AND "; } elseif(is_string($val) && !empty($val)) { $WMVC->db->join($WMVC->db->prefix.'wdk_listings_users ON '.$WMVC->listing_m->_table_name.'.post_id = '.$WMVC->db->prefix.'wdk_listings_users.post_id', NULL, 'LEFT'); $WMVC->db->distinct($WMVC->listing_m->_table_name.'.post_id'); $sql_search =" ".$WMVC->listing_m->_table_name.".`user_id_editor` = ".intval($val)." OR `".$WMVC->db->prefix."wdk_listings_users`.`user_id` = ".intval($val)." "; $gen_q.=" ( ".$sql_search." ) AND "; } } elseif($key == 'user_editor_ids') { if(is_array($val)) { $sql_search = ''; foreach ($val as $v) { if(empty($v)) continue; if(!empty($sql_search)) $sql_search .= " OR "; $sql_search .=" ".$WMVC->listing_m->_table_name.".`user_id_editor` = ".intval($v)." "; } if(!empty($sql_search)) $gen_q.=" ( ".$sql_search." ) AND "; } elseif(is_string($val) && !empty($val)) { $sql_search =" ".$WMVC->listing_m->_table_name.".`user_id_editor` = ".intval($val)." "; $gen_q.=" ( ".$sql_search." ) AND "; } } elseif($key == 'location_id') { if(empty($val)) continue; if(is_string($val) && strpos($val, ',') !== FALSE){ $val =explode(',', $val); } elseif(is_string($val)){ $val =array($val); } if(is_array($val)) { if(false){ $WMVC->db->join($WMVC->db->prefix.'wdk_listings_locations ON '.$WMVC->listing_m->_table_name.'.post_id = '.$WMVC->db->prefix.'wdk_listings_locations.post_id', NULL, 'LEFT'); $WMVC->db->distinct($WMVC->listing_m->_table_name.'.post_id'); } $sql_search = ''; foreach ($val as $v) { if(empty($v) || !is_intval($v)) continue; if(!empty($sql_search)) $sql_search .= " OR "; $sql_search .= " ".$WMVC->listing_m->_table_name.".`location_id`=".intval($v).""; $sql_search .= " OR `location_table`.`parent_id`=".intval($v).""; $sql_search .= " OR CONCAT(',', location_table.parent_path, ',') LIKE CONCAT('%,', ".intval($v).", ',%')"; /* other locations */ /* multi select */ if(false){ $sql_search .= " OR `".$WMVC->db->prefix."wdk_listings`.`post_id` IN (SELECT `post_id` FROM `".$WMVC->db->prefix."wdk_listings_locations` WHERE `location_id` = ".intval($v).") "; } elseif(false) { $sql_search .= " OR ".$WMVC->db->prefix."wdk_listings_locations.location_id=".intval($v).""; } else { $sql_search .= " OR ".$WMVC->listing_m->_table_name.".locations_list LIKE '%,".intval($v).",%'"; } } if(!empty($sql_search)) $gen_q.=" ( ".$sql_search." ) AND "; } } elseif($key == 'category_id') { if(empty($val)) continue; if(is_string($val) && strpos($val, ',') !== FALSE){ $val =explode(',', $val); } elseif(is_string($val)){ $val =array($val); } if(is_array($val)) { if(false){ $WMVC->db->join($WMVC->db->prefix.'wdk_listings_categories ON '.$WMVC->listing_m->_table_name.'.post_id = '.$WMVC->db->prefix.'wdk_listings_categories.post_id', NULL, 'LEFT'); } $sql_search = ''; foreach ($val as $v) { if(empty($v) || !is_intval($v)) continue; if(!empty($sql_search)) $sql_search .= " OR "; $sql_search .= " ".$WMVC->db->prefix."wdk_listings.`category_id` = ".intval($v).""; $sql_search .= " OR `category_table`.`parent_id`=".intval($v).""; $sql_search .= " OR CONCAT(',', category_table.parent_path, ',') LIKE CONCAT('%,', ".intval($v).", ',%')"; /* other categories */ if(false){ $sql_search .= " OR `".$WMVC->db->prefix."wdk_listings`.`post_id` IN (SELECT `post_id` FROM `".$WMVC->db->prefix."wdk_listings_categories` WHERE `category_id` = ".intval($v).")"; } elseif(false) { $sql_search .= " OR ".$WMVC->db->prefix."wdk_listings_categories.category_id=".intval($v).""; } else { $sql_search .= " OR ".$WMVC->listing_m->_table_name.".categories_list LIKE '%,".intval($v).",%'"; } } if(!empty($sql_search)) $gen_q.=" ( ".$sql_search." ) AND "; } } elseif(is_string($val)) { if(strpos($val, ',') !== FALSE){ $val = explode(',', $val); } if(is_array($val)) { $sql_search = ''; foreach ($val as $v) { if(empty($v)) continue; if(!empty($sql_search)) $sql_search .= " OR "; $sql_search .= $col_name." LIKE '%".$v."%'"; } if(!empty($sql_search)) $gen_q.=" ( ".$sql_search." ) AND "; } else { $gen_q.=$col_name." LIKE '%".$val."%' AND "; } } elseif(is_array($val)) { $sql_search = ''; foreach ($val as $v) { if(empty($v)) continue; if(!empty($sql_search)) $sql_search .= " OR "; $sql_search .= " ".$col_name." LIKE '%".esc_sql($v)."%' "; } if(!empty($sql_search)) $gen_q.=" ( ".$sql_search." ) AND "; } } } $gen_q = substr($gen_q, 0, -5); if(!empty($gen_q)) $WMVC->db->where("($gen_q)"); } // [RECTANGLE SEARCH] if(isset($_GET_clone['rectangle_ne']) && isset($_GET_clone['rectangle_sw'])) { if(wdk_is_gps($_GET_clone['rectangle_ne']) && wdk_is_gps($_GET_clone['rectangle_sw'])) { $gps_ne = explode(',', $_GET_clone['rectangle_ne']); $gps_sw = explode(',', $_GET_clone['rectangle_sw']); $WMVC->db->where("(".$WMVC->db->prefix."wdk_listings.lat < '$gps_ne[0]' AND ".$WMVC->db->prefix."wdk_listings.lat > '$gps_sw[0]' AND ".$WMVC->db->prefix."wdk_listings.lng > '$gps_ne[1]' AND ".$WMVC->db->prefix."wdk_listings.lng < '$gps_sw[1]')"); } } // [/RECTANGLE SEARCH] // order if(isset($_GET_clone['order_by'])) { $_GET_clone['order_by'] = str_replace('post_id', $WMVC->db->prefix.'wdk_listings.post_id', $_GET_clone['order_by']); $WMVC->db->order_by($_GET_clone['order_by']); } } } function wdk_users_prepare_search_query_GET($columns = array(), $model_name = NULL, $external_columns = array(), $custom_parameters = array(), $skip_postget = FALSE) { global $Winter_MVC_WDK; $WMVC = &$Winter_MVC_WDK; $_GET_clone = array(); if(!$skip_postget) $_GET_clone = array_merge($_GET, $_POST); if(isset($custom_parameters['order_by'])) { if(isset($_GET_clone['order_by']) && !empty($_GET_clone['order_by'])) { $_GET_clone['order_by'] = $custom_parameters['order_by'].', '.$_GET_clone['order_by']; } else { $_GET_clone['order_by'] = $custom_parameters['order_by']; } unset($custom_parameters['order_by']); } if(!empty($custom_parameters)) $_GET_clone = array_merge($_GET_clone, $custom_parameters); $WMVC->model($model_name); $smart_search = ''; if(isset($_GET_clone['profile_search'])) $smart_search = sanitize_text_field($_GET_clone['profile_search']); $available_fields = array('user_login','user_nicename','user_email','user_url','display_name'); if(isset($_GET_clone['is_activated'])){ $_GET_clone[$WMVC->$model_name->_table_name.'.is_activated'] = sanitize_text_field($_GET_clone['is_activated']); unset($_GET_clone['is_activated']); } if(isset($_GET_clone['is_approved'])){ $_GET_clone[$WMVC->$model_name->_table_name.'.is_approved'] = sanitize_text_field($_GET_clone['is_approved']); unset($_GET_clone['is_approved']); } //$table_name = substr($model_name, 0, -2); $columns_original = array(); foreach($columns as $key=>$val) { $columns_original[$val] = $val; // if column contain also "table_name.*" $splited = explode('.', $val); if(wmvc_count($splited) == 2) $val = $splited[1]; if(isset($available_fields[$val])) { } else { if(!in_array($columns[$key], $external_columns)) { unset($columns[$key]); } } } if(wmvc_count($_GET_clone) > 0) { unset($_GET_clone['search']); // For quick/smart search if(wmvc_count($columns) > 0 && !empty($smart_search)) { $gen_q = ''; foreach($columns as $key=>$value) { if($value == 'post_type') { $value = $WMVC->$model_name->_table_name.'.'.$value; } if(substr_count($value, 'id') > 0 && is_numeric($smart_search)) { $gen_q.="$value = $smart_search OR "; } else if(substr_count($value, 'date') > 0) { //$gen_search = wmvc_generate_slug($smart_search, ' '); $gen_search = $smart_search; $gen_q.="$value LIKE '%$gen_search%' OR "; } else { $gen_q.="$value LIKE '%$smart_search%' OR "; } } $gen_q = substr($gen_q, 0, -4); if(!empty($gen_q)) $WMVC->db->where("($gen_q)"); } // For column search if(isset($_GET_clone)) { $gen_q = ''; foreach($_GET_clone as $key=>$val) { if(!empty($val) && in_array($key, $columns)) { $col_name = $key; if($col_name == 'post_type') { $col_name = $WMVC->$model_name->_table_name.'.'.$col_name; } //if(isset($key)) // $col_name = $key; if(strpos($key, 'skip') !== FALSE) continue; if(substr($key, -8) == '_exactly') { $col_name = substr($key, 0, -8); $gen_q.=$col_name." = '".$val."' AND "; } elseif(substr($key, -4) == '_max') { $col_name = substr($key, 0, -4); $gen_q.=$col_name." <= '".$val."' AND "; } else if(substr($key, -4) == '_min') { $col_name = substr($key, 0, -4); $gen_q.=$col_name." >= '".$val."' AND "; } elseif(substr_count($key, 'id') > 0 && is_numeric($val)) { // ID is always numeric $gen_q.=$col_name." = ".$val." AND "; } else if(substr_count($key, 'date') > 0) { // DATE VALUES $gen_search = $val; if(wdk_is_date($val)) { $gen_search = wdk_normalize_date_db($gen_search); $gen_q.=$col_name." > '".$gen_search."' AND "; } else { $gen_q.=$col_name." LIKE '%".$gen_search."%' AND "; } } else if(substr_count($key, 'is_') > 0) { // CHECKBOXES if($val=='on') { $gen_search = 1; $gen_q.=$col_name." LIKE '%".$gen_search."%' AND "; } else if($val=='off') { $gen_q.=$col_name." IS NULL AND "; } } else { $gen_q.=$col_name." LIKE '%".$val."%' AND "; } } } $gen_q = substr($gen_q, 0, -5); if(!empty($gen_q)) $WMVC->db->where("($gen_q)"); } // order if(isset($_GET_clone['order_by'])) { $_GET_clone['order_by'] = str_replace('post_id', $WMVC->db->prefix.'wdk_favorite.post_id', $_GET_clone['order_by']); $WMVC->db->order_by($_GET_clone['order_by']); } } } function wdk_messages_prepare_search_query_GET($columns = array(), $model_name = NULL, $external_columns = array()) { global $Winter_MVC_WDK; $WMVC = &$Winter_MVC_WDK; $_GET_clone = array_merge($_GET, $_POST); $_GET_clone = ($_GET_clone); //$WMVC->model('listing_m'); $smart_search = ''; if(isset($_GET_clone['search'])) $smart_search = sanitize_text_field($_GET_clone['search']); $available_fields = $WMVC->$model_name->get_available_fields(); /* Пet column names from wdk_package and add to allow search + in _GET_clone replace field_#id to field_id_TYPE*/ $list_fields = $WMVC->db->list_fields( $WMVC->db->prefix.'wdk_messages'); //$table_name = substr($model_name, 0, -2); $columns_original = array(); foreach($columns as $key=>$val) { $columns_original[$val] = $val; // if column contain also "table_name.*" $splited = explode('.', $val); if(wmvc_count($splited) == 2) $val = $splited[1]; if(isset($available_fields[$val])) { } else { if(!in_array($columns[$key], $external_columns)) { unset($columns[$key]); } } } if(wmvc_count($_GET_clone) > 0) { unset($_GET_clone['search']); // For quick/smart search if(wmvc_count($columns) > 0 && !empty($smart_search)) { $gen_q = ''; foreach($columns as $key=>$value) { if(substr_count($value, 'id') > 0 && is_numeric($smart_search)) { $gen_q.="$value = $smart_search OR "; } else if(substr_count($value, 'date') > 0) { //$gen_search = wmvc_generate_slug($smart_search, ' '); $gen_search = $smart_search; $gen_q.="$value LIKE '%$gen_search%' OR "; } else { $gen_q.="$value LIKE '%$smart_search%' OR "; } } $gen_q = substr($gen_q, 0, -4); if(!empty($gen_q)) $WMVC->db->where("($gen_q)"); } // For column search if(isset($_GET_clone)) { $gen_q = ''; foreach($_GET_clone as $key=>$val) { if(!empty($val) && in_array($key, $columns)) { $col_name = $key; //if(isset($key)) // $col_name = $key; if(strpos($key, 'skip') !== FALSE) continue; if(substr($key, -8) == '_exactly') { $col_name = substr($key, 0, -8); $gen_q.=$col_name." = '".$val."' AND "; } elseif(substr($key, -4) == '_max') { $col_name = substr($key, 0, -4); $gen_q.=$col_name." <= '".$val."' AND "; } else if(substr($key, -4) == '_min') { $col_name = substr($key, 0, -4); $gen_q.=$col_name." >= '".$val."' AND "; } elseif(substr_count($key, 'id') > 0 && is_numeric($val)) { // ID is always numeric $gen_q.=$col_name." = ".$val." AND "; } else if(substr_count($key, 'date') > 0) { // DATE VALUES $gen_search = $val; $detect_date = strtotime($gen_search); if(wdk_payments_is_date($val) && $detect_date > 1000) { $gen_search = date('Y-m-d H:i:s', $detect_date); $gen_q.=$col_name." > '".$gen_search."' AND "; } else { $gen_q.=$col_name." LIKE '%".$gen_search."%' AND "; } } else if(substr_count($key, 'is_') > 0) { // CHECKBOXES if($val=='on') { $gen_search = 1; $gen_q.=$col_name." LIKE '%".$gen_search."%' AND "; } else if($val=='off') { $gen_q.=$col_name." IS NULL AND "; } } else { $gen_q.=$col_name." LIKE '%".$val."%' AND "; } } } $gen_q = substr($gen_q, 0, -5); if(!empty($gen_q)) $WMVC->db->where("($gen_q)"); } // order if(isset($_GET_clone['order_by'])) { $_GET_clone['order_by'] = str_replace('post_id', $WMVC->db->prefix.'wdk_messages.post_id', $_GET_clone['order_by']); $WMVC->db->order_by($_GET_clone['order_by']); } } } function wdk_date() { $date_format = get_option('date_format'); $time_format = get_option('time_format'); $date = date("{$date_format} {$time_format}", current_time('timestamp')); return $date; } if(!function_exists('wdk_placeholder_image_src')) { function wdk_placeholder_image_src () { $i = WPDIRECTORYKIT_URL.'public/img/placeholder.jpg'; if(wdk_get_option('wdk_placeholder')) { $image = wp_get_attachment_image_src(wdk_get_option('wdk_placeholder'), 'full' ); if(!empty($image) && file_exists(str_replace(WP_CONTENT_URL, WP_CONTENT_DIR, $image[0]))) $i = $image[0]; } return $i; } } function wdk_wp_frontend_paginate($total_items, $per_page = 10, $page_var = 'wmvc_paged', $texts = array(), $enable_latest_first = TRUE, $enable_count = FALSE, $enable_compact = FALSE, $limit_items = 1) { $current_page = 1; if(isset($_GET[$page_var])) $current_page = intval(wmvc_xss_clean($_GET[$page_var])); if(!isset($texts['previous_page']))$texts['previous_page'] = 'Previous page'; if(!isset($texts['next_page']))$texts['next_page'] = 'Next page'; if(!isset($texts['first_page']))$texts['first_page'] = ''; if(!isset($texts['last_page']))$texts['last_page'] = ''; if(!isset($texts['items']))$texts['items'] = 'items'; if(empty($current_page))$current_page = 1; // get url $url = strtok($_SERVER["REQUEST_URI"], '?'); $qs_parameters = wmvc_xss_clean( $_GET ); unset($qs_parameters[$page_var]); $qs_part = http_build_query($qs_parameters); $url = wdk_url_suffix($url, $qs_part); // total pages $total_pages = intval($total_items/$per_page+0.99); if($current_page == 1) { $limit_items = $limit_items * 2; } if($current_page == $total_pages) { $limit_items = $limit_items * 2; } $output = ''; return $output; } function wdk_viewe($content) { // @codingStandardsIgnoreStart echo wp_kses_post($content); // WPCS: XSS ok, sanitization ok. // @codingStandardsIgnoreEnd } if(!function_exists('wdk_search_fields_toggle')){ function wdk_search_fields_toggle ($class_add = NULL){ static $wdk_visible_filters = 0; global $wdk_visible_filters_limit; global $wdk_button_search_defined; global $wdk_enable_search_fields_toggle; global $wdk_activate_more; if(!$wdk_enable_search_fields_toggle) return false; global $wdk_search_fields_toggle_reset; if($wdk_search_fields_toggle_reset) { $wdk_visible_filters = 0; $wdk_search_fields_toggle_reset = false; } $wdk_visible_filters++; if($wdk_activate_more || (!empty($wdk_visible_filters_limit) && !$wdk_button_search_defined && $wdk_visible_filters == $wdk_visible_filters_limit)){ $wdk_button_search_defined=true; $wdk_activate_more = false; global $wdk_text_search_button; if(empty($wdk_text_search_button)) $wdk_text_search_button = esc_html__('Search','wpdirectorykit'); global $wdk_text_reset_button; if(empty($wdk_text_reset_button)) $wdk_text_reset_button = esc_html__('Reset','wpdirectorykit'); global $wdk_text_more_button; if(empty($wdk_text_more_button)) $wdk_text_more_button = esc_html__('More','wpdirectorykit'); $form_closed = 'display: none;'; if(isset($_GET['wdk_search_additional_opened']) && wmvc_xss_clean($_GET['wdk_search_additional_opened']) == 1) { $form_closed = ''; } ?>