Changeset 1592015
- Timestamp:
- 02/08/2017 09:01:50 PM (9 years ago)
- Location:
- directory-builder
- Files:
-
- 10 edited
- 10 copied
-
tags/1.3.3 (copied) (copied from directory-builder/trunk)
-
tags/1.3.3/README.txt (copied) (copied from directory-builder/trunk/README.txt) (2 diffs)
-
tags/1.3.3/admin/class-db-functionality-admin.php (copied) (copied from directory-builder/trunk/admin/class-db-functionality-admin.php) (1 diff)
-
tags/1.3.3/admin/css/db-functionality-admin.css (copied) (copied from directory-builder/trunk/admin/css/db-functionality-admin.css)
-
tags/1.3.3/admin/js/db-functionality-admin.js (copied) (copied from directory-builder/trunk/admin/js/db-functionality-admin.js) (3 diffs)
-
tags/1.3.3/directory-builder.php (copied) (copied from directory-builder/trunk/directory-builder.php) (28 diffs)
-
tags/1.3.3/includes/class-db-functionality-activator.php (copied) (copied from directory-builder/trunk/includes/class-db-functionality-activator.php) (5 diffs)
-
tags/1.3.3/paypal_ipn.php (modified) (1 diff)
-
tags/1.3.3/public/class-db-functionality-public.php (copied) (copied from directory-builder/trunk/public/class-db-functionality-public.php)
-
tags/1.3.3/public/css/db-functionality-public.css (modified) (2 diffs)
-
tags/1.3.3/public/js/db-functionality-public.js (copied) (copied from directory-builder/trunk/public/js/db-functionality-public.js) (4 diffs)
-
tags/1.3.3/template/search-listing-item.php (copied) (copied from directory-builder/trunk/template/search-listing-item.php)
-
trunk/README.txt (modified) (2 diffs)
-
trunk/admin/class-db-functionality-admin.php (modified) (1 diff)
-
trunk/admin/js/db-functionality-admin.js (modified) (3 diffs)
-
trunk/directory-builder.php (modified) (28 diffs)
-
trunk/includes/class-db-functionality-activator.php (modified) (5 diffs)
-
trunk/paypal_ipn.php (modified) (1 diff)
-
trunk/public/css/db-functionality-public.css (modified) (2 diffs)
-
trunk/public/js/db-functionality-public.js (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
directory-builder/tags/1.3.3/README.txt
r1591115 r1592015 4 4 Requires at least: 4.5.3 5 5 Tested up to: 4.7.2 6 Stable tag: 1.3. 26 Stable tag: 1.3.3 7 7 License: GPLv2 or later 8 8 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 25 25 26 26 == Changelog == 27 28 = 1.3.3 = 29 * Fixed custom field issues 30 * Added autocomplete feature for city field 31 * Fixed error with amenities 32 * Fixed issue which prevented street names from being added to the map 33 * Allow to change expiration date manually 34 * Fixed "Set address button" 27 35 28 36 = 1.3.2 = -
directory-builder/tags/1.3.3/admin/class-db-functionality-admin.php
r1591115 r1592015 75 75 */ 76 76 77 // if ( $hook != 'directory-builder_page_directory-builder-settings' && $hook != 'toplevel_page_directory-builder' ) {78 // return;79 // }80 81 77 wp_enqueue_style( $this->db_func, plugin_dir_url( __FILE__ ) . 'css/db-functionality-admin.css', array(), $this->version, 'all' ); 82 78 -
directory-builder/tags/1.3.3/admin/js/db-functionality-admin.js
r1567908 r1592015 406 406 jQuery(document).on('click', '.db-expiration-save', function() { 407 407 var listing_id = jQuery(this).attr('data-id'); 408 var listing_package = jQuery(this).attr('data-package');409 408 410 409 jQuery.ajax({ … … 414 413 'action': 'db_change_expiration', 415 414 'listing_id': listing_id, 416 'listing_package': listing_package,417 415 'new_date': jQuery('.db-listing-expiration-date').val(), 418 416 }, … … 711 709 }); 712 710 }); 713 714 711 }); 715 716 jQuery(window).load(function() {717 718 }); -
directory-builder/tags/1.3.3/directory-builder.php
r1591115 r1592015 17 17 * Plugin URI: https://cohhe.com/ 18 18 * Description: Directory builder provides listing functionality for your theme. 19 * Version: 1.3. 219 * Version: 1.3.3 20 20 * Author: Cohhe 21 21 * Author URI: https://cohhe.com/ … … 551 551 </div> 552 552 <div class="db-field-row focused active clearfix"> 553 <label class="field-label">Show on list ing page?</label>553 <label class="field-label">Show on list pages?</label> 554 554 <div class="db-field-input"> 555 555 <select class="db-create-on-listing"> … … 557 557 <option value="yes" <?php echo(isset($field_settings['on_listing'])&&$field_settings['on_listing']=='yes'?'selected':''); ?>>Yes</option> 558 558 </select> 559 <span class="field-description">Do you want to show this field on listing pages?</span>559 <span class="field-description">Do you want to show this field on pages that display listings in lists (for example search)?</span> 560 560 </div> 561 561 </div> 562 562 <div class="db-field-row focused active clearfix"> 563 <label class="field-label">Show on detail pages?</label>563 <label class="field-label">Show on details page?</label> 564 564 <div class="db-field-input"> 565 565 <select class="db-create-on-detail"> … … 567 567 <option value="yes" <?php echo(isset($field_settings['on_detail'])&&$field_settings['on_detail']=='yes'?'selected':''); ?>>Yes</option> 568 568 </select> 569 <span class="field-description">Do you want to show this field on detail pages?</span>569 <span class="field-description">Do you want to show this field on single listing page?</span> 570 570 </div> 571 571 </div> … … 1031 1031 jQuery('#listing_city, #listing_zip, #listing_neighborhood, #listing_state').val(''); 1032 1032 jQuery.each(data.results['0'].address_components, function( index, address_comp ) { 1033 if( address_comp.types[0] == "locality" && address_comp.types[1] == "political" ) {1033 if( ( address_comp.types[0] == "locality" && address_comp.types[1] == "political" ) || address_comp.types[0] == "postal_town" ) { 1034 1034 jQuery('#listing_city').val( address_comp.long_name ); 1035 1035 } … … 1047 1047 } 1048 1048 1049 if ( address_comp.types[0] == "administrative_area_level_1" && address_comp.types[1] == "political" ) {1049 if ( ( address_comp.types[0] == "administrative_area_level_1" && address_comp.types[1] == "political" ) || address_comp.types[0] == "neighborhood" && address_comp.types[1] == "political" ) { 1050 1050 jQuery('#listing_neighborhood').val( address_comp.long_name ); 1051 1051 } … … 1124 1124 $field_settings = json_decode($package_list['0']->package_settings, true); 1125 1125 } 1126 1127 if ( isset($order_data['listing_expires']) && !is_numeric($order_data['listing_expires']) && isset($order_data['completed_on']) && $field_settings['listing_run_type'] == 'days' ) { 1128 $order_data['listing_expires'] = date( get_option('date_format'), strtotime('+'.$field_settings['listing_run_days'].' days', $order_data['completed_on'])); 1129 } else if ( !isset($order_data['listing_expires']) ) { 1130 $order_data['listing_expires'] = 'Unknown'; 1131 } 1126 1132 } else { 1127 1133 $order_data = array( … … 1145 1151 if ( $field_settings['listing_run_type'] == 'forever' ) { 1146 1152 $listing_expiration = '<a href="javascript:void(0)" class="db-expiration-select">'.__('Never', 'directory-builder').'</a>'; 1147 } else if ( $field_settings['listing_run_type'] == 'days' && isset($order_data['completed_on'])) {1148 $listing_expiration = '<a href="javascript:void(0)" class="db-expiration-select">'.date( get_option('date_format'), strtotime('+'.$field_settings['listing_run_days'].' days', $order_data['completed_on'])).'</a>';1149 $listing_expiration_date = date( 'Y-m-d', strtotime('+'.$field_settings['listing_run_days'].' days', $order_data['completed_on']));1153 } else if ( $field_settings['listing_run_type'] == 'days' && $order_data['listing_expires'] != 'Unknown' ) { 1154 $listing_expiration = '<a href="javascript:void(0)" class="db-expiration-select">'.date( get_option('date_format'), $order_data['listing_expires']).'</a>'; 1155 $listing_expiration_date = date( 'Y-m-d', $order_data['listing_expires']); 1150 1156 } else { 1151 1157 $listing_expiration = '<a href="javascript:void(0)" class="db-expiration-select">'.__('Unknown', 'directory-builder').'</a>'; … … 1181 1187 if ( !empty($package_list) ) { 1182 1188 foreach ($package_list as $package_value) { 1183 echo '<option value="'.$package_value->ID.'">'.$ field_settings['fee_label'].'</option>';1189 echo '<option value="'.$package_value->ID.'">'.$package_value->package_name.'</option>'; 1184 1190 } 1185 1191 } … … 1199 1205 <div class="db-expiration-dialog" style="display: none;"> 1200 1206 <input type="date" class="db-listing-expiration-date" value="<?php echo $listing_expiration_date; ?>"> 1201 <a href="javascript:void(0)" class="db-expiration-save" data-id="<?php echo $object->ID; ?>" data-package="<?php echo $order_data['listing_package']; ?>"><?php _e('Change', 'directory-builder'); ?></a>1207 <a href="javascript:void(0)" class="db-expiration-save" data-id="<?php echo $object->ID; ?>"><?php _e('Change', 'directory-builder'); ?></a> 1202 1208 </div> 1203 1209 </span> … … 1333 1339 $output .= '<label class="db-field-row-label" for="'.$field_name.'">'.$field_title.'</label>'; 1334 1340 } 1335 $output .= '<input type="text" id="'.$field_name.'" name="'.$field_name.'" class="'.$custom_class.'" placeholder="'.$field_title.'" value="'.$field_default.'"'.$field_validation_pattern.$field_validation_pattern_message.' >';1341 $output .= '<input type="text" id="'.$field_name.'" name="'.$field_name.'" class="'.$custom_class.'" placeholder="'.$field_title.'" value="'.$field_default.'"'.$field_validation_pattern.$field_validation_pattern_message.' autocomplete="off">'; 1336 1342 if ( $field_description != '' || ( $field_settings['required'] == 'yes' && $field_required_message != '' ) ) { 1337 1343 $output .= '<div class="db-field-meta">'; … … 1536 1542 } 1537 1543 if ( !empty($select_values) ) { 1538 $output .= '<select class="'.$custom_class.'" name="'.$field_name.' " multiple>';1544 $output .= '<select class="'.$custom_class.'" name="'.$field_name.'[]" multiple>'; 1539 1545 foreach ($select_values as $select_value) { 1540 1546 $select_data = explode(':', $select_value); 1541 $selected_values = explode( ',', $field_default ); 1547 if ( is_array($field_default) ) { 1548 $selected_values = $field_default; 1549 } else { 1550 $selected_values = explode( ',', $field_default ); 1551 } 1542 1552 1543 1553 $is_selected = (in_array($select_data['0'], $selected_values)?' selected':''); … … 2088 2098 unset($search_terms['listing_name']); 2089 2099 } 2090 $search_limit = $main_settings['per_page']; 2091 $search_listings = $wpdb->get_results('SELECT * FROM '.$wpdb->posts.' WHERE post_type="listings" && post_status="publish"'.$search_where.' LIMIT '.$search_limit); 2100 $search_listings = $wpdb->get_results('SELECT * FROM '.$wpdb->posts.' WHERE post_type="listings" && post_status="publish"'.$search_where); 2092 2101 $search_distance = (isset($search_terms['listing_search_radius'])?$search_terms['listing_search_radius']:$main_settings['search_radius_distance']); 2093 2102 unset($search_terms['listing_search_radius']); … … 2096 2105 $field_list = db_get_active_fields(); 2097 2106 2098 if ( $main_settings['search_radius_status'] == 'yes' &&isset($search_terms['listing_address']) && $search_terms['listing_address'] != '' ) {2107 if ( isset($search_terms['listing_address']) && $search_terms['listing_address'] != '' ) { 2099 2108 $search_coordinates = db_get_coordinates( $search_terms['listing_address'] ); 2100 2109 $search_coordinates = explode(',', $search_coordinates); 2101 2110 } 2102 2111 2112 $listings_matched = 0; 2103 2113 foreach ($search_listings as $listing_value) { 2104 2114 $custom_field_data = db_get_listing_custom_values($field_list, $listing_value->ID); … … 2114 2124 $dist_show_listing = true; 2115 2125 } 2126 } else if ( isset($search_terms['listing_address']) && $search_terms['listing_address'] != '' ) { 2127 $db_search_distance = db_calculateDistanceFromLatLong($listing_value['listing_address_lat'], $listing_value['listing_address_lng'], $search_coordinates['0'], $search_coordinates['1'], $main_settings['search_radius_value']); 2128 2129 if ( intval($db_search_distance) > 200 ) { 2130 $dist_show_listing = false; 2131 } else { 2132 $dist_show_listing = true; 2133 } 2116 2134 } 2117 2135 … … 2121 2139 foreach ($search_terms as $search_key => $search_value) { 2122 2140 2123 if ( $main_settings['search_radius_status'] == 'yes' &&isset($search_terms['listing_address']) && $search_terms['listing_address'] != '' && $search_key == 'listing_address' && $dist_show_listing ) {2141 if ( isset($search_terms['listing_address']) && $search_terms['listing_address'] != '' && $search_key == 'listing_address' && $dist_show_listing ) { 2124 2142 $matched_settings++; 2125 2143 continue; … … 2170 2188 $db_search_listing_data = $listing_value; 2171 2189 2190 $listings_matched++; 2191 if ( $listings_matched > $main_settings['per_page'] ) { 2192 break; 2193 } 2194 2172 2195 $all_listings[$listing_value['ID']] = db_load_template( 'search-listing-item.php', true, false, $main_settings ); 2173 2196 if ( function_exists('whitelab_get_image_css') ) { … … 2326 2349 2327 2350 function db_get_active_details_fields() { 2328 $meta_values = array( 2329 'listing_address' => 'Listing address' 2330 ); 2351 $meta_values = array(); 2331 2352 2332 2353 global $wpdb; … … 2335 2356 foreach ($field_list as $field_value) { 2336 2357 $field_settings = json_decode($field_value->field_settings, true); 2337 if ( $field_settings['on_detail'] == 'yes' ) { 2358 2359 // Temporary skip address and phone as they are hardcoded 2360 if ( $field_settings['field_name'] == 'listingphone' || $field_settings['field_name'] == 'listing_address' ) { 2361 continue; 2362 } 2363 2364 if ( $field_settings['on_listing'] == 'yes' ) { 2338 2365 $meta_values[$field_settings['field_name']] = $field_settings['frontend_title']; 2339 2366 } … … 2987 3014 } 2988 3015 2989 function db_get_listing_custom_field_data( $listing_array, $custom_class = '' ) {3016 function db_get_listing_custom_field_data( $listing_array, $custom_class = '', $echo = true ) { 2990 3017 $active_fields = db_get_active_details_fields(); 2991 3018 2992 3019 if ( !empty($active_fields) ) { 2993 3020 foreach ($active_fields as $field_name => $field_title) { 2994 if ( isset($listing_array[$field_name]) ) { 2995 echo '<div class="'.$custom_class.'">'.'<span class="db-field-title">'.$field_title.': </span><span class="db-field-value">'.(is_array($listing_array[$field_name])?implode(', ', $listing_array[$field_name]):$listing_array[$field_name]).'</span></div>'; 3021 if ( isset($listing_array[$field_name]) && !empty($listing_array[$field_name]) ) { 3022 3023 // Echo or return? 3024 if ( $echo === true ) { 3025 echo '<div class="'.$custom_class.'">'.'<span class="db-field-title">'.$field_title.': </span><span class="db-field-value">'.(is_array($listing_array[$field_name])?implode(', ', $listing_array[$field_name]):$listing_array[$field_name]).'</span></div>'; 3026 } else if ( $echo === false ) { 3027 return '<div class="'.$custom_class.'">'.'<span class="db-field-title">'.$field_title.': </span><span class="db-field-value">'.(is_array($listing_array[$field_name])?implode(', ', $listing_array[$field_name]):$listing_array[$field_name]).'</span></div>'; 3028 } 3029 2996 3030 } 2997 3031 } … … 3225 3259 3226 3260 function db_insert_review( $comment_id, $comment_object ) { 3227 add_comment_meta( $comment_id, 'listing_review_rating', (isset($_REQUEST['listing_rating'])?intval($_REQUEST['listing_rating']):1)); 3228 add_comment_meta( $comment_id, 'listing_review_title', (isset($_REQUEST['review-title'])?sanitize_text_field($_REQUEST['review-title']):'')); 3261 if ( !isset($_POST['listing_rating']) || !isset($_POST['review-title']) ) { 3262 return; 3263 } 3264 3265 $rating_value = (isset($_POST['listing_rating'])?intval($_POST['listing_rating']):1); 3266 $rating_title = (isset($_POST['review-title'])?sanitize_text_field($_POST['review-title']):''); 3267 3268 add_comment_meta( $comment_id, 'listing_review_rating', $rating_value); 3269 add_comment_meta( $comment_id, 'listing_review_title', $rating_title); 3229 3270 $post_id = $comment_object->comment_post_ID; 3230 3271 … … 3237 3278 $listing_ratings = get_post_meta( $post_id, 'listing_ratings', true); 3238 3279 if ( $listing_ratings == '' ) { 3239 update_post_meta( $post_id, 'listing_ratings', array( $user_id => intval($_REQUEST['listing_rating'])) );3280 update_post_meta( $post_id, 'listing_ratings', array( $user_id => $rating_value ) ); 3240 3281 } else { 3241 $listing_ratings[$user_id] = intval($_REQUEST['listing_rating']);3282 $listing_ratings[$user_id] = $rating_value; 3242 3283 update_post_meta( $post_id, 'listing_ratings', $listing_ratings ); 3243 3284 } … … 3543 3584 <div class="dt-form-row"> 3544 3585 <label for="db-agree-to-terms" class="dt-checkbox"> 3545 <input type="checkbox" id="db-agree-to-terms" name="db-agree-to-terms" required="">I agree to all statements in <a href="#">terms and conditions</a> 3586 <input type="checkbox" id="db-agree-to-terms" name="db-agree-to-terms" required="">'.esc_html__('I agree to all statements in', 'directory-builder').' <a href="javascript:void(0)" class="db-show-checkout-terms">'.esc_html__('terms and conditions', 'directory-builder').'</a> 3587 <div class="db-checkout-terms hidden">'.nl2br($main_settings['terms_and_conditions']).'</div> 3546 3588 </label> 3547 3589 </div>'; … … 3587 3629 <div class="dt-form-row"> 3588 3630 <label for="db-agree-to-terms" class="dt-checkbox"> 3589 <input type="checkbox" id="db-agree-to-terms" name="db-agree-to-terms" required="">I agree to all statements in <a href="#">terms and conditions</a> 3631 <input type="checkbox" id="db-agree-to-terms" name="db-agree-to-terms" required="">'.esc_html__('I agree to all statements in', 'directory-builder').' <a href="javascript:void(0)" class="db-show-checkout-terms">'.esc_html__('terms and conditions', 'directory-builder').'</a> 3632 <div class="db-checkout-terms hidden">'.nl2br($main_settings['terms_and_conditions']).'</div> 3590 3633 </label> 3591 3634 </div>'; … … 4039 4082 } 4040 4083 4041 if ( $main_settings['terms_and_conditions_status'] && !$db_edit_listing ) {4084 if ( $main_settings['terms_and_conditions_status'] && !$db_edit_listing && $main_settings['db_theme_id'] != 'db_theme' ) { 4042 4085 $output .= '<div class="db-field-row terms-and-conditions required"> 4043 4086 <label>'.__('Terms and conditions', 'directory-builder').'</label> … … 4137 4180 4138 4181 $listing_id = ( isset($_POST['listing_id']) ? intval($_POST['listing_id']) : '' ); 4139 $listing_package = ( isset($_POST['listing_package']) ? sanitize_text_field($_POST['listing_package']) : '' );4140 4182 $new_date = ( isset($_POST['new_date']) ? sanitize_text_field($_POST['new_date']) : '' ); 4141 4183 … … 4144 4186 $save_expiration = false; 4145 4187 4146 $package_list = $wpdb->get_results('SELECT * FROM '.$wpdb->prefix.'directory_packages WHERE ID="'.$listing_package.'"'); 4147 if ( !empty($package_list) ) { 4148 $field_settings = json_decode($package_list['0']->package_settings, true); 4149 4150 if ( $field_settings['listing_run_type'] == 'days' ) { 4151 $listing_expiration_date = strtotime('-'.$field_settings['listing_run_days'].' days', strtotime($new_date)); 4152 $listing_info['completed_on'] = $listing_expiration_date; 4153 4154 $save_expiration = update_post_meta( $listing_id, 'db_order_info', $listing_info ); 4155 } 4156 } 4188 $listing_info['listing_expires'] = strtotime($new_date); 4189 $save_expiration = update_post_meta( $listing_id, 'db_order_info', $listing_info ); 4157 4190 4158 4191 if ( $save_expiration ) { 4159 echo '{"save_response": "0", "package_name": "'.date( get_option('date_format'), strtotime('+'.$field_settings['listing_run_days'].' days', $listing_expiration_date)).'"}';4192 echo '{"save_response": "0", "package_name": "'.date( get_option('date_format'), $listing_info['listing_expires']).'"}'; 4160 4193 } else { 4161 4194 echo '{"save_response": "failed"}'; … … 4933 4966 } 4934 4967 add_action( 'wp_ajax_db_featured_status', 'db_featured_status_func' ); 4968 4969 function db_do_cities_autocomplete() { 4970 $city_value = ( isset($_POST['city_value']) ? esc_attr($_POST['city_value']) : '' ); 4971 global $wpdb; 4972 $prepared_data = array(); 4973 $cities = $wpdb->get_results('SELECT DISTINCT meta_value as city FROM ' . $wpdb->prefix . 'postmeta WHERE meta_key="listing_city" && meta_value LIKE "%' . $city_value . '%"'); 4974 4975 if ( !empty($cities) ) { 4976 foreach ($cities as $city_value) { 4977 $prepared_data[] = $city_value->city; 4978 } 4979 4980 echo json_encode( $prepared_data ); 4981 } else { 4982 echo 'failed'; 4983 } 4984 4985 die(0); 4986 } 4987 add_action( 'wp_ajax_db_city_autocomplete', 'db_do_cities_autocomplete' ); 4988 add_action( 'wp_ajax_nopriv_db_city_autocomplete', 'db_do_cities_autocomplete' ); -
directory-builder/tags/1.3.3/includes/class-db-functionality-activator.php
r1571162 r1592015 70 70 "required" => "no", 71 71 "required_message" => "", 72 "on_listing" => " no",72 "on_listing" => "yes", 73 73 "on_detail" => "no", 74 74 "on_contact" => "yes", … … 258 258 "required" => "no", 259 259 "required_message" => "", 260 "on_listing" => " no",260 "on_listing" => "yes", 261 261 "on_detail" => "no", 262 262 "on_contact" => "yes", … … 296 296 "required" => "no", 297 297 "required_message" => "", 298 "on_listing" => " yes",299 "on_detail" => " no",298 "on_listing" => "no", 299 "on_detail" => "yes", 300 300 "on_contact" => "no", 301 301 "field_type" => "hoursofoperation" … … 312 312 "required" => "no", 313 313 "required_message" => "", 314 "on_listing" => " yes",315 "on_detail" => " no",314 "on_listing" => "no", 315 "on_detail" => "yes", 316 316 "on_contact" => "no", 317 317 "multiselect_type" => "select", … … 361 361 'search_fields' => array('listing_name', 'listing_categories', 'listing_country', 'listing_address', 'search_radius'), 362 362 'search_layout' => '{"row_1":["listing_name","listing_categories","listing_country","listing_address","search_radius"]}', 363 'search_radius_status' => ' no',363 'search_radius_status' => 'yes', 364 364 'search_radius_value' => 'km', 365 365 'search_radius_distance' => '150', -
directory-builder/tags/1.3.3/paypal_ipn.php
r1557657 r1592015 108 108 if ( $payment_status == 'Completed' ) { 109 109 $order_info['completed_on'] = time(); 110 110 111 update_post_meta( $listing_id, 'db_claim_info', get_current_user_id() ); 111 112 } -
directory-builder/tags/1.3.3/public/css/db-functionality-public.css
r1557657 r1592015 119 119 background: #D8D8D8; 120 120 border-radius: 4px; 121 } 122 123 .db-main-search-listings.db-no-listings .db-search-scrollbar { 124 display: none; 121 125 } 122 126 … … 509 513 .db-upload-placeholder { 510 514 pointer-events: none; 515 } 516 517 .db-checkout-terms { 518 height: 228px; 519 overflow: auto; 520 text-align: left; 511 521 } 512 522 -
directory-builder/tags/1.3.3/public/js/db-functionality-public.js
r1591115 r1592015 176 176 var parsed_search_data = jQuery.parseJSON(data); 177 177 if ( typeof parsed_search_data.listing_html.length != 'number' ) { 178 jQuery('.db-main-search-listings').removeClass('db-no-listings'); 178 179 jQuery.each(parsed_search_data.listing_html, function(index, data) { 179 180 jQuery('.db-main-search-listings').append(data); … … 270 271 271 272 } else { 273 jQuery('.db-main-search-listings').addClass('db-no-listings'); 272 274 jQuery('.db-main-search-listings').append('<div class="db-main-search-item full-listing" style="text-align: center;">No listings found!</div>'); 273 275 db_clear_markers(); … … 507 509 jQuery(this).parent().remove(); 508 510 }); 509 510 // jQuery(document).on('click', '*', function() {511 // if ( jQuery('.db-hop-dialog').css('display') == 'block' ) {512 // console.log(jQuery(this).attr('class'));513 // }514 // });515 511 516 512 jQuery(document).on('click', function(e) { … … 812 808 }); 813 809 } 810 811 var $idle_timer; 812 jQuery(document).on('input', '[name="listing_city"]', function() { 813 clearTimeout($idle_timer); 814 var city_name = jQuery(this).val(); 815 var city_row = jQuery(this).parent(); 816 817 if ( jQuery(this).val().length >= 1 ) { 818 $idle_timer = setTimeout(function() { 819 jQuery.ajax({ 820 type: 'POST', 821 url: db_main.ajaxurl, 822 data: { 823 'action': 'db_city_autocomplete', 824 'city_value': city_name 825 }, 826 success: function( data ) { 827 if ( !city_row.find('.db-row-autocomplete').length ) { 828 city_row.append('<div class="db-row-autocomplete" data-active="listing_city"><div class="db-autocomplete-inner"><div class="db-autocomplete-items"></div><div class="db-autocomplete-scrollbar-wrapper"><span class="db-autocomplete-scrollbar"></span></div></div></div>'); 829 } 830 831 city_row.find('.db-row-autocomplete .db-autocomplete-items').html(''); 832 833 if ( data != 'failed' ) { 834 var parsed_data = jQuery.parseJSON( data ); 835 jQuery.each(parsed_data, function( index, value ) { 836 city_row.find('.db-row-autocomplete .db-autocomplete-items').append('<span class="db-autocomplete-item">'+value+'</span>'); 837 }); 838 } else { 839 city_row.find('.db-row-autocomplete .db-autocomplete-items').append('<span class="db-autocomplete-item not-active">Nothing found!</span>'); 840 } 841 city_row.find('.db-row-autocomplete').addClass('active'); 842 843 if ( city_row.find('.db-autocomplete-items')[0].scrollHeight < 139 ) { 844 city_row.find('.db-autocomplete-scrollbar').hide(); 845 } else { 846 city_row.find('.db-autocomplete-scrollbar').show(); 847 } 848 849 city_row.find('.db-autocomplete-items').bind('scroll', function() { 850 var scrolled_percentage = jQuery(this).scrollTop()/(jQuery(this)[0].scrollHeight-jQuery(this).innerHeight())*100; 851 var extra_scroll = jQuery(this).parent().parent().find('.db-autocomplete-scrollbar').height()*(scrolled_percentage/100); 852 var scroll_height = 'calc('+scrolled_percentage+'% - '+extra_scroll+'px)'; 853 jQuery(this).parent().parent().find('.db-autocomplete-scrollbar').css('top', scroll_height); 854 }); 855 856 city_row.find('.db-autocomplete-scrollbar').css('height', city_row.find('.db-autocomplete-items')[0].offsetHeight*(city_row.find('.db-autocomplete-items')[0].offsetHeight/city_row.find('.db-autocomplete-items')[0].scrollHeight)); 857 } 858 }); 859 }, 500); 860 } else { 861 city_row.find('.db-row-autocomplete').removeClass('active'); 862 } 863 }); 864 865 jQuery(document).on('click', '.db-autocomplete-item', function() { 866 jQuery('[name="'+jQuery(this).parent().parent().parent().attr('data-active')+'"]').val( jQuery(this).text() ); 867 jQuery(this).parent().parent().parent().removeClass('active'); 868 }); 869 870 jQuery(document).on('click', '.db-show-checkout-terms', function() { 871 jQuery(this).next().toggleClass('hidden'); 872 }); 814 873 }); -
directory-builder/trunk/README.txt
r1591115 r1592015 4 4 Requires at least: 4.5.3 5 5 Tested up to: 4.7.2 6 Stable tag: 1.3. 26 Stable tag: 1.3.3 7 7 License: GPLv2 or later 8 8 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 25 25 26 26 == Changelog == 27 28 = 1.3.3 = 29 * Fixed custom field issues 30 * Added autocomplete feature for city field 31 * Fixed error with amenities 32 * Fixed issue which prevented street names from being added to the map 33 * Allow to change expiration date manually 34 * Fixed "Set address button" 27 35 28 36 = 1.3.2 = -
directory-builder/trunk/admin/class-db-functionality-admin.php
r1591115 r1592015 75 75 */ 76 76 77 // if ( $hook != 'directory-builder_page_directory-builder-settings' && $hook != 'toplevel_page_directory-builder' ) {78 // return;79 // }80 81 77 wp_enqueue_style( $this->db_func, plugin_dir_url( __FILE__ ) . 'css/db-functionality-admin.css', array(), $this->version, 'all' ); 82 78 -
directory-builder/trunk/admin/js/db-functionality-admin.js
r1567908 r1592015 406 406 jQuery(document).on('click', '.db-expiration-save', function() { 407 407 var listing_id = jQuery(this).attr('data-id'); 408 var listing_package = jQuery(this).attr('data-package');409 408 410 409 jQuery.ajax({ … … 414 413 'action': 'db_change_expiration', 415 414 'listing_id': listing_id, 416 'listing_package': listing_package,417 415 'new_date': jQuery('.db-listing-expiration-date').val(), 418 416 }, … … 711 709 }); 712 710 }); 713 714 711 }); 715 716 jQuery(window).load(function() {717 718 }); -
directory-builder/trunk/directory-builder.php
r1591115 r1592015 17 17 * Plugin URI: https://cohhe.com/ 18 18 * Description: Directory builder provides listing functionality for your theme. 19 * Version: 1.3. 219 * Version: 1.3.3 20 20 * Author: Cohhe 21 21 * Author URI: https://cohhe.com/ … … 551 551 </div> 552 552 <div class="db-field-row focused active clearfix"> 553 <label class="field-label">Show on list ing page?</label>553 <label class="field-label">Show on list pages?</label> 554 554 <div class="db-field-input"> 555 555 <select class="db-create-on-listing"> … … 557 557 <option value="yes" <?php echo(isset($field_settings['on_listing'])&&$field_settings['on_listing']=='yes'?'selected':''); ?>>Yes</option> 558 558 </select> 559 <span class="field-description">Do you want to show this field on listing pages?</span>559 <span class="field-description">Do you want to show this field on pages that display listings in lists (for example search)?</span> 560 560 </div> 561 561 </div> 562 562 <div class="db-field-row focused active clearfix"> 563 <label class="field-label">Show on detail pages?</label>563 <label class="field-label">Show on details page?</label> 564 564 <div class="db-field-input"> 565 565 <select class="db-create-on-detail"> … … 567 567 <option value="yes" <?php echo(isset($field_settings['on_detail'])&&$field_settings['on_detail']=='yes'?'selected':''); ?>>Yes</option> 568 568 </select> 569 <span class="field-description">Do you want to show this field on detail pages?</span>569 <span class="field-description">Do you want to show this field on single listing page?</span> 570 570 </div> 571 571 </div> … … 1031 1031 jQuery('#listing_city, #listing_zip, #listing_neighborhood, #listing_state').val(''); 1032 1032 jQuery.each(data.results['0'].address_components, function( index, address_comp ) { 1033 if( address_comp.types[0] == "locality" && address_comp.types[1] == "political" ) {1033 if( ( address_comp.types[0] == "locality" && address_comp.types[1] == "political" ) || address_comp.types[0] == "postal_town" ) { 1034 1034 jQuery('#listing_city').val( address_comp.long_name ); 1035 1035 } … … 1047 1047 } 1048 1048 1049 if ( address_comp.types[0] == "administrative_area_level_1" && address_comp.types[1] == "political" ) {1049 if ( ( address_comp.types[0] == "administrative_area_level_1" && address_comp.types[1] == "political" ) || address_comp.types[0] == "neighborhood" && address_comp.types[1] == "political" ) { 1050 1050 jQuery('#listing_neighborhood').val( address_comp.long_name ); 1051 1051 } … … 1124 1124 $field_settings = json_decode($package_list['0']->package_settings, true); 1125 1125 } 1126 1127 if ( isset($order_data['listing_expires']) && !is_numeric($order_data['listing_expires']) && isset($order_data['completed_on']) && $field_settings['listing_run_type'] == 'days' ) { 1128 $order_data['listing_expires'] = date( get_option('date_format'), strtotime('+'.$field_settings['listing_run_days'].' days', $order_data['completed_on'])); 1129 } else if ( !isset($order_data['listing_expires']) ) { 1130 $order_data['listing_expires'] = 'Unknown'; 1131 } 1126 1132 } else { 1127 1133 $order_data = array( … … 1145 1151 if ( $field_settings['listing_run_type'] == 'forever' ) { 1146 1152 $listing_expiration = '<a href="javascript:void(0)" class="db-expiration-select">'.__('Never', 'directory-builder').'</a>'; 1147 } else if ( $field_settings['listing_run_type'] == 'days' && isset($order_data['completed_on'])) {1148 $listing_expiration = '<a href="javascript:void(0)" class="db-expiration-select">'.date( get_option('date_format'), strtotime('+'.$field_settings['listing_run_days'].' days', $order_data['completed_on'])).'</a>';1149 $listing_expiration_date = date( 'Y-m-d', strtotime('+'.$field_settings['listing_run_days'].' days', $order_data['completed_on']));1153 } else if ( $field_settings['listing_run_type'] == 'days' && $order_data['listing_expires'] != 'Unknown' ) { 1154 $listing_expiration = '<a href="javascript:void(0)" class="db-expiration-select">'.date( get_option('date_format'), $order_data['listing_expires']).'</a>'; 1155 $listing_expiration_date = date( 'Y-m-d', $order_data['listing_expires']); 1150 1156 } else { 1151 1157 $listing_expiration = '<a href="javascript:void(0)" class="db-expiration-select">'.__('Unknown', 'directory-builder').'</a>'; … … 1181 1187 if ( !empty($package_list) ) { 1182 1188 foreach ($package_list as $package_value) { 1183 echo '<option value="'.$package_value->ID.'">'.$ field_settings['fee_label'].'</option>';1189 echo '<option value="'.$package_value->ID.'">'.$package_value->package_name.'</option>'; 1184 1190 } 1185 1191 } … … 1199 1205 <div class="db-expiration-dialog" style="display: none;"> 1200 1206 <input type="date" class="db-listing-expiration-date" value="<?php echo $listing_expiration_date; ?>"> 1201 <a href="javascript:void(0)" class="db-expiration-save" data-id="<?php echo $object->ID; ?>" data-package="<?php echo $order_data['listing_package']; ?>"><?php _e('Change', 'directory-builder'); ?></a>1207 <a href="javascript:void(0)" class="db-expiration-save" data-id="<?php echo $object->ID; ?>"><?php _e('Change', 'directory-builder'); ?></a> 1202 1208 </div> 1203 1209 </span> … … 1333 1339 $output .= '<label class="db-field-row-label" for="'.$field_name.'">'.$field_title.'</label>'; 1334 1340 } 1335 $output .= '<input type="text" id="'.$field_name.'" name="'.$field_name.'" class="'.$custom_class.'" placeholder="'.$field_title.'" value="'.$field_default.'"'.$field_validation_pattern.$field_validation_pattern_message.' >';1341 $output .= '<input type="text" id="'.$field_name.'" name="'.$field_name.'" class="'.$custom_class.'" placeholder="'.$field_title.'" value="'.$field_default.'"'.$field_validation_pattern.$field_validation_pattern_message.' autocomplete="off">'; 1336 1342 if ( $field_description != '' || ( $field_settings['required'] == 'yes' && $field_required_message != '' ) ) { 1337 1343 $output .= '<div class="db-field-meta">'; … … 1536 1542 } 1537 1543 if ( !empty($select_values) ) { 1538 $output .= '<select class="'.$custom_class.'" name="'.$field_name.' " multiple>';1544 $output .= '<select class="'.$custom_class.'" name="'.$field_name.'[]" multiple>'; 1539 1545 foreach ($select_values as $select_value) { 1540 1546 $select_data = explode(':', $select_value); 1541 $selected_values = explode( ',', $field_default ); 1547 if ( is_array($field_default) ) { 1548 $selected_values = $field_default; 1549 } else { 1550 $selected_values = explode( ',', $field_default ); 1551 } 1542 1552 1543 1553 $is_selected = (in_array($select_data['0'], $selected_values)?' selected':''); … … 2088 2098 unset($search_terms['listing_name']); 2089 2099 } 2090 $search_limit = $main_settings['per_page']; 2091 $search_listings = $wpdb->get_results('SELECT * FROM '.$wpdb->posts.' WHERE post_type="listings" && post_status="publish"'.$search_where.' LIMIT '.$search_limit); 2100 $search_listings = $wpdb->get_results('SELECT * FROM '.$wpdb->posts.' WHERE post_type="listings" && post_status="publish"'.$search_where); 2092 2101 $search_distance = (isset($search_terms['listing_search_radius'])?$search_terms['listing_search_radius']:$main_settings['search_radius_distance']); 2093 2102 unset($search_terms['listing_search_radius']); … … 2096 2105 $field_list = db_get_active_fields(); 2097 2106 2098 if ( $main_settings['search_radius_status'] == 'yes' &&isset($search_terms['listing_address']) && $search_terms['listing_address'] != '' ) {2107 if ( isset($search_terms['listing_address']) && $search_terms['listing_address'] != '' ) { 2099 2108 $search_coordinates = db_get_coordinates( $search_terms['listing_address'] ); 2100 2109 $search_coordinates = explode(',', $search_coordinates); 2101 2110 } 2102 2111 2112 $listings_matched = 0; 2103 2113 foreach ($search_listings as $listing_value) { 2104 2114 $custom_field_data = db_get_listing_custom_values($field_list, $listing_value->ID); … … 2114 2124 $dist_show_listing = true; 2115 2125 } 2126 } else if ( isset($search_terms['listing_address']) && $search_terms['listing_address'] != '' ) { 2127 $db_search_distance = db_calculateDistanceFromLatLong($listing_value['listing_address_lat'], $listing_value['listing_address_lng'], $search_coordinates['0'], $search_coordinates['1'], $main_settings['search_radius_value']); 2128 2129 if ( intval($db_search_distance) > 200 ) { 2130 $dist_show_listing = false; 2131 } else { 2132 $dist_show_listing = true; 2133 } 2116 2134 } 2117 2135 … … 2121 2139 foreach ($search_terms as $search_key => $search_value) { 2122 2140 2123 if ( $main_settings['search_radius_status'] == 'yes' &&isset($search_terms['listing_address']) && $search_terms['listing_address'] != '' && $search_key == 'listing_address' && $dist_show_listing ) {2141 if ( isset($search_terms['listing_address']) && $search_terms['listing_address'] != '' && $search_key == 'listing_address' && $dist_show_listing ) { 2124 2142 $matched_settings++; 2125 2143 continue; … … 2170 2188 $db_search_listing_data = $listing_value; 2171 2189 2190 $listings_matched++; 2191 if ( $listings_matched > $main_settings['per_page'] ) { 2192 break; 2193 } 2194 2172 2195 $all_listings[$listing_value['ID']] = db_load_template( 'search-listing-item.php', true, false, $main_settings ); 2173 2196 if ( function_exists('whitelab_get_image_css') ) { … … 2326 2349 2327 2350 function db_get_active_details_fields() { 2328 $meta_values = array( 2329 'listing_address' => 'Listing address' 2330 ); 2351 $meta_values = array(); 2331 2352 2332 2353 global $wpdb; … … 2335 2356 foreach ($field_list as $field_value) { 2336 2357 $field_settings = json_decode($field_value->field_settings, true); 2337 if ( $field_settings['on_detail'] == 'yes' ) { 2358 2359 // Temporary skip address and phone as they are hardcoded 2360 if ( $field_settings['field_name'] == 'listingphone' || $field_settings['field_name'] == 'listing_address' ) { 2361 continue; 2362 } 2363 2364 if ( $field_settings['on_listing'] == 'yes' ) { 2338 2365 $meta_values[$field_settings['field_name']] = $field_settings['frontend_title']; 2339 2366 } … … 2987 3014 } 2988 3015 2989 function db_get_listing_custom_field_data( $listing_array, $custom_class = '' ) {3016 function db_get_listing_custom_field_data( $listing_array, $custom_class = '', $echo = true ) { 2990 3017 $active_fields = db_get_active_details_fields(); 2991 3018 2992 3019 if ( !empty($active_fields) ) { 2993 3020 foreach ($active_fields as $field_name => $field_title) { 2994 if ( isset($listing_array[$field_name]) ) { 2995 echo '<div class="'.$custom_class.'">'.'<span class="db-field-title">'.$field_title.': </span><span class="db-field-value">'.(is_array($listing_array[$field_name])?implode(', ', $listing_array[$field_name]):$listing_array[$field_name]).'</span></div>'; 3021 if ( isset($listing_array[$field_name]) && !empty($listing_array[$field_name]) ) { 3022 3023 // Echo or return? 3024 if ( $echo === true ) { 3025 echo '<div class="'.$custom_class.'">'.'<span class="db-field-title">'.$field_title.': </span><span class="db-field-value">'.(is_array($listing_array[$field_name])?implode(', ', $listing_array[$field_name]):$listing_array[$field_name]).'</span></div>'; 3026 } else if ( $echo === false ) { 3027 return '<div class="'.$custom_class.'">'.'<span class="db-field-title">'.$field_title.': </span><span class="db-field-value">'.(is_array($listing_array[$field_name])?implode(', ', $listing_array[$field_name]):$listing_array[$field_name]).'</span></div>'; 3028 } 3029 2996 3030 } 2997 3031 } … … 3225 3259 3226 3260 function db_insert_review( $comment_id, $comment_object ) { 3227 add_comment_meta( $comment_id, 'listing_review_rating', (isset($_REQUEST['listing_rating'])?intval($_REQUEST['listing_rating']):1)); 3228 add_comment_meta( $comment_id, 'listing_review_title', (isset($_REQUEST['review-title'])?sanitize_text_field($_REQUEST['review-title']):'')); 3261 if ( !isset($_POST['listing_rating']) || !isset($_POST['review-title']) ) { 3262 return; 3263 } 3264 3265 $rating_value = (isset($_POST['listing_rating'])?intval($_POST['listing_rating']):1); 3266 $rating_title = (isset($_POST['review-title'])?sanitize_text_field($_POST['review-title']):''); 3267 3268 add_comment_meta( $comment_id, 'listing_review_rating', $rating_value); 3269 add_comment_meta( $comment_id, 'listing_review_title', $rating_title); 3229 3270 $post_id = $comment_object->comment_post_ID; 3230 3271 … … 3237 3278 $listing_ratings = get_post_meta( $post_id, 'listing_ratings', true); 3238 3279 if ( $listing_ratings == '' ) { 3239 update_post_meta( $post_id, 'listing_ratings', array( $user_id => intval($_REQUEST['listing_rating'])) );3280 update_post_meta( $post_id, 'listing_ratings', array( $user_id => $rating_value ) ); 3240 3281 } else { 3241 $listing_ratings[$user_id] = intval($_REQUEST['listing_rating']);3282 $listing_ratings[$user_id] = $rating_value; 3242 3283 update_post_meta( $post_id, 'listing_ratings', $listing_ratings ); 3243 3284 } … … 3543 3584 <div class="dt-form-row"> 3544 3585 <label for="db-agree-to-terms" class="dt-checkbox"> 3545 <input type="checkbox" id="db-agree-to-terms" name="db-agree-to-terms" required="">I agree to all statements in <a href="#">terms and conditions</a> 3586 <input type="checkbox" id="db-agree-to-terms" name="db-agree-to-terms" required="">'.esc_html__('I agree to all statements in', 'directory-builder').' <a href="javascript:void(0)" class="db-show-checkout-terms">'.esc_html__('terms and conditions', 'directory-builder').'</a> 3587 <div class="db-checkout-terms hidden">'.nl2br($main_settings['terms_and_conditions']).'</div> 3546 3588 </label> 3547 3589 </div>'; … … 3587 3629 <div class="dt-form-row"> 3588 3630 <label for="db-agree-to-terms" class="dt-checkbox"> 3589 <input type="checkbox" id="db-agree-to-terms" name="db-agree-to-terms" required="">I agree to all statements in <a href="#">terms and conditions</a> 3631 <input type="checkbox" id="db-agree-to-terms" name="db-agree-to-terms" required="">'.esc_html__('I agree to all statements in', 'directory-builder').' <a href="javascript:void(0)" class="db-show-checkout-terms">'.esc_html__('terms and conditions', 'directory-builder').'</a> 3632 <div class="db-checkout-terms hidden">'.nl2br($main_settings['terms_and_conditions']).'</div> 3590 3633 </label> 3591 3634 </div>'; … … 4039 4082 } 4040 4083 4041 if ( $main_settings['terms_and_conditions_status'] && !$db_edit_listing ) {4084 if ( $main_settings['terms_and_conditions_status'] && !$db_edit_listing && $main_settings['db_theme_id'] != 'db_theme' ) { 4042 4085 $output .= '<div class="db-field-row terms-and-conditions required"> 4043 4086 <label>'.__('Terms and conditions', 'directory-builder').'</label> … … 4137 4180 4138 4181 $listing_id = ( isset($_POST['listing_id']) ? intval($_POST['listing_id']) : '' ); 4139 $listing_package = ( isset($_POST['listing_package']) ? sanitize_text_field($_POST['listing_package']) : '' );4140 4182 $new_date = ( isset($_POST['new_date']) ? sanitize_text_field($_POST['new_date']) : '' ); 4141 4183 … … 4144 4186 $save_expiration = false; 4145 4187 4146 $package_list = $wpdb->get_results('SELECT * FROM '.$wpdb->prefix.'directory_packages WHERE ID="'.$listing_package.'"'); 4147 if ( !empty($package_list) ) { 4148 $field_settings = json_decode($package_list['0']->package_settings, true); 4149 4150 if ( $field_settings['listing_run_type'] == 'days' ) { 4151 $listing_expiration_date = strtotime('-'.$field_settings['listing_run_days'].' days', strtotime($new_date)); 4152 $listing_info['completed_on'] = $listing_expiration_date; 4153 4154 $save_expiration = update_post_meta( $listing_id, 'db_order_info', $listing_info ); 4155 } 4156 } 4188 $listing_info['listing_expires'] = strtotime($new_date); 4189 $save_expiration = update_post_meta( $listing_id, 'db_order_info', $listing_info ); 4157 4190 4158 4191 if ( $save_expiration ) { 4159 echo '{"save_response": "0", "package_name": "'.date( get_option('date_format'), strtotime('+'.$field_settings['listing_run_days'].' days', $listing_expiration_date)).'"}';4192 echo '{"save_response": "0", "package_name": "'.date( get_option('date_format'), $listing_info['listing_expires']).'"}'; 4160 4193 } else { 4161 4194 echo '{"save_response": "failed"}'; … … 4933 4966 } 4934 4967 add_action( 'wp_ajax_db_featured_status', 'db_featured_status_func' ); 4968 4969 function db_do_cities_autocomplete() { 4970 $city_value = ( isset($_POST['city_value']) ? esc_attr($_POST['city_value']) : '' ); 4971 global $wpdb; 4972 $prepared_data = array(); 4973 $cities = $wpdb->get_results('SELECT DISTINCT meta_value as city FROM ' . $wpdb->prefix . 'postmeta WHERE meta_key="listing_city" && meta_value LIKE "%' . $city_value . '%"'); 4974 4975 if ( !empty($cities) ) { 4976 foreach ($cities as $city_value) { 4977 $prepared_data[] = $city_value->city; 4978 } 4979 4980 echo json_encode( $prepared_data ); 4981 } else { 4982 echo 'failed'; 4983 } 4984 4985 die(0); 4986 } 4987 add_action( 'wp_ajax_db_city_autocomplete', 'db_do_cities_autocomplete' ); 4988 add_action( 'wp_ajax_nopriv_db_city_autocomplete', 'db_do_cities_autocomplete' ); -
directory-builder/trunk/includes/class-db-functionality-activator.php
r1571162 r1592015 70 70 "required" => "no", 71 71 "required_message" => "", 72 "on_listing" => " no",72 "on_listing" => "yes", 73 73 "on_detail" => "no", 74 74 "on_contact" => "yes", … … 258 258 "required" => "no", 259 259 "required_message" => "", 260 "on_listing" => " no",260 "on_listing" => "yes", 261 261 "on_detail" => "no", 262 262 "on_contact" => "yes", … … 296 296 "required" => "no", 297 297 "required_message" => "", 298 "on_listing" => " yes",299 "on_detail" => " no",298 "on_listing" => "no", 299 "on_detail" => "yes", 300 300 "on_contact" => "no", 301 301 "field_type" => "hoursofoperation" … … 312 312 "required" => "no", 313 313 "required_message" => "", 314 "on_listing" => " yes",315 "on_detail" => " no",314 "on_listing" => "no", 315 "on_detail" => "yes", 316 316 "on_contact" => "no", 317 317 "multiselect_type" => "select", … … 361 361 'search_fields' => array('listing_name', 'listing_categories', 'listing_country', 'listing_address', 'search_radius'), 362 362 'search_layout' => '{"row_1":["listing_name","listing_categories","listing_country","listing_address","search_radius"]}', 363 'search_radius_status' => ' no',363 'search_radius_status' => 'yes', 364 364 'search_radius_value' => 'km', 365 365 'search_radius_distance' => '150', -
directory-builder/trunk/paypal_ipn.php
r1557657 r1592015 108 108 if ( $payment_status == 'Completed' ) { 109 109 $order_info['completed_on'] = time(); 110 110 111 update_post_meta( $listing_id, 'db_claim_info', get_current_user_id() ); 111 112 } -
directory-builder/trunk/public/css/db-functionality-public.css
r1557657 r1592015 119 119 background: #D8D8D8; 120 120 border-radius: 4px; 121 } 122 123 .db-main-search-listings.db-no-listings .db-search-scrollbar { 124 display: none; 121 125 } 122 126 … … 509 513 .db-upload-placeholder { 510 514 pointer-events: none; 515 } 516 517 .db-checkout-terms { 518 height: 228px; 519 overflow: auto; 520 text-align: left; 511 521 } 512 522 -
directory-builder/trunk/public/js/db-functionality-public.js
r1591115 r1592015 176 176 var parsed_search_data = jQuery.parseJSON(data); 177 177 if ( typeof parsed_search_data.listing_html.length != 'number' ) { 178 jQuery('.db-main-search-listings').removeClass('db-no-listings'); 178 179 jQuery.each(parsed_search_data.listing_html, function(index, data) { 179 180 jQuery('.db-main-search-listings').append(data); … … 270 271 271 272 } else { 273 jQuery('.db-main-search-listings').addClass('db-no-listings'); 272 274 jQuery('.db-main-search-listings').append('<div class="db-main-search-item full-listing" style="text-align: center;">No listings found!</div>'); 273 275 db_clear_markers(); … … 507 509 jQuery(this).parent().remove(); 508 510 }); 509 510 // jQuery(document).on('click', '*', function() {511 // if ( jQuery('.db-hop-dialog').css('display') == 'block' ) {512 // console.log(jQuery(this).attr('class'));513 // }514 // });515 511 516 512 jQuery(document).on('click', function(e) { … … 812 808 }); 813 809 } 810 811 var $idle_timer; 812 jQuery(document).on('input', '[name="listing_city"]', function() { 813 clearTimeout($idle_timer); 814 var city_name = jQuery(this).val(); 815 var city_row = jQuery(this).parent(); 816 817 if ( jQuery(this).val().length >= 1 ) { 818 $idle_timer = setTimeout(function() { 819 jQuery.ajax({ 820 type: 'POST', 821 url: db_main.ajaxurl, 822 data: { 823 'action': 'db_city_autocomplete', 824 'city_value': city_name 825 }, 826 success: function( data ) { 827 if ( !city_row.find('.db-row-autocomplete').length ) { 828 city_row.append('<div class="db-row-autocomplete" data-active="listing_city"><div class="db-autocomplete-inner"><div class="db-autocomplete-items"></div><div class="db-autocomplete-scrollbar-wrapper"><span class="db-autocomplete-scrollbar"></span></div></div></div>'); 829 } 830 831 city_row.find('.db-row-autocomplete .db-autocomplete-items').html(''); 832 833 if ( data != 'failed' ) { 834 var parsed_data = jQuery.parseJSON( data ); 835 jQuery.each(parsed_data, function( index, value ) { 836 city_row.find('.db-row-autocomplete .db-autocomplete-items').append('<span class="db-autocomplete-item">'+value+'</span>'); 837 }); 838 } else { 839 city_row.find('.db-row-autocomplete .db-autocomplete-items').append('<span class="db-autocomplete-item not-active">Nothing found!</span>'); 840 } 841 city_row.find('.db-row-autocomplete').addClass('active'); 842 843 if ( city_row.find('.db-autocomplete-items')[0].scrollHeight < 139 ) { 844 city_row.find('.db-autocomplete-scrollbar').hide(); 845 } else { 846 city_row.find('.db-autocomplete-scrollbar').show(); 847 } 848 849 city_row.find('.db-autocomplete-items').bind('scroll', function() { 850 var scrolled_percentage = jQuery(this).scrollTop()/(jQuery(this)[0].scrollHeight-jQuery(this).innerHeight())*100; 851 var extra_scroll = jQuery(this).parent().parent().find('.db-autocomplete-scrollbar').height()*(scrolled_percentage/100); 852 var scroll_height = 'calc('+scrolled_percentage+'% - '+extra_scroll+'px)'; 853 jQuery(this).parent().parent().find('.db-autocomplete-scrollbar').css('top', scroll_height); 854 }); 855 856 city_row.find('.db-autocomplete-scrollbar').css('height', city_row.find('.db-autocomplete-items')[0].offsetHeight*(city_row.find('.db-autocomplete-items')[0].offsetHeight/city_row.find('.db-autocomplete-items')[0].scrollHeight)); 857 } 858 }); 859 }, 500); 860 } else { 861 city_row.find('.db-row-autocomplete').removeClass('active'); 862 } 863 }); 864 865 jQuery(document).on('click', '.db-autocomplete-item', function() { 866 jQuery('[name="'+jQuery(this).parent().parent().parent().attr('data-active')+'"]').val( jQuery(this).text() ); 867 jQuery(this).parent().parent().parent().removeClass('active'); 868 }); 869 870 jQuery(document).on('click', '.db-show-checkout-terms', function() { 871 jQuery(this).next().toggleClass('hidden'); 872 }); 814 873 });
Note: See TracChangeset
for help on using the changeset viewer.