PluginProbe
WP Directory Kit / 1.5.9
WP Directory Kit v1.5.9
1.5.9 1.5.7 1.5.6 1.5.5 1.5.4 1.5.3 trunk 1.1.0 1.1.6 1.1.8 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.8 All 37 releases
← All changes | application/helpers/Listing.php +244 -19 1.2.6 → 1.5.9 View file →
@@ -87,8 +87,31 @@
87 87 return $default;
88 88 }
89 89 }
90 90
91 +if(!function_exists('wdk_generate_field_date')) {
92 + /**
93 + * Return Date field
94 + *
95 + * @param int|string $field_id field id
96 + * @param int|object|array $listing listing object|array or id
97 + * @param string $default The default value, will be return if empty or no exists
98 + * @return string
99 + */
100 + function wdk_generate_field_date ($field_id='', $wdk_listing_id = array(), $default = '') {
101 +
102 + $field_value = wdk_field_value ($field_id, $wdk_listing_id);
103 + if(!empty($field_value)) {
104 + if(wdk_field_option ($field_id, 'date_format')) {
105 + return date_i18n(wdk_field_option ($field_id, 'date_format'), strtotime($field_value));
106 + } else {
107 + return wdk_get_date($field_value );
108 + }
109 + }
110 + return $default;
111 + }
112 +}
113 +
91 114 if(!function_exists('wdk_listing_images')) {
92 115 /**
93 116 * Initialize the class and set its properties.
94 117 *
@@ -109,14 +132,22 @@
109 132 if(is_array($image_ids)) {
110 133 foreach ($image_ids as $key => $image_id) {
111 134 if(is_numeric($image_id))
112 135 {
113 - $image = wp_get_attachment_url( $image_id, $size );
114 - $output[] = $image;
136 + do_action('wdk/helpers/wdk_listing_images/get_attached/before', $image_id, $size);
137 +
138 + /*
139 + $image = wp_get_attachment_url( $image_id, $size );
140 + $output[] = $image;
141 + */
142 + $image = wp_get_attachment_image_src( $image_id, $size );
143 + if($image)
144 + $output[] = $image[0];
115 145 }
116 146 }
117 147 } else if(is_numeric($image_ids))
118 - {
148 + {
149 + do_action('wdk/helpers/wdk_listing_images/get_attached/before', $image_ids, $size);
119 150 $image = wp_get_attachment_url( $image_ids, $size );
120 151 $output[] = $image;
121 152 }
122 153 return $output;
@@ -218,8 +249,61 @@
218 249 return $output;
219 250 }
220 251 }
221 252
253 +if(!function_exists('wdk_files_data')) {
254 + /**
255 + * Initialize the class and set its properties.
256 + *
257 + * @param string files ids
258 + * @param string $size The size of image
259 + * @param string|array $ext_list Allowed extensions, mixed sring with separated like jpg,doc,pdf or array
260 + * @return array
261 + */
262 + function wdk_files_data ($listing = '', $size = 'thumb', $ext_list = array()) {
263 + $output = array();
264 +
265 + $image_ids = '';
266 + if(is_string($listing)){
267 + $image_ids = explode(',', $listing);
268 + }
269 +
270 + if(is_string($ext_list)){
271 + if(!empty($ext_list)) {
272 + $ext_list = explode(',', $ext_list);
273 + } else {
274 + $ext_list = array();
275 + }
276 + }
277 + if(is_array($image_ids)) {
278 + foreach ($image_ids as $key => $image_id) {
279 + if(is_numeric($image_id))
280 + {
281 + $image = wp_get_attachment_url( $image_id, $size );
282 + if(!empty($ext_list) && !in_array(wdk_file_extension($image), $ext_list)) {
283 + continue;
284 + }
285 +
286 + if(empty($image)/* || !file_exists(str_replace(WP_CONTENT_URL, WP_CONTENT_DIR, $image))*/)
287 + {
288 + $image = wdk_placeholder_image_src();
289 + }
290 + $attr = wdk_image_attr($image_id);
291 + $output[] = array('src' =>$image, 'title' => $attr['title'], 'alt' => $attr['alt']);
292 + }
293 + }
294 + } else if(is_numeric($image_ids))
295 + {
296 + $image = wp_get_attachment_url( $image_ids, $size );
297 + if(!empty($ext_list) && !in_array(wdk_file_extension($image), $ext_list)) {
298 + $attr = wdk_image_attr($image_ids);
299 + $output[] = array('src' =>$image, 'title' => $attr['title'], 'alt' => $attr['alt']);
300 + }
301 + }
302 + return $output;
303 + }
304 +}
305 +
222 306 if(!function_exists('wdk_image_src')) {
223 307 /**
224 308 * Initialize the class and set its properties.
225 309 *
@@ -395,12 +479,15 @@
395 479 foreach ($list as $key => $field) {
396 480 $row = array();
397 481 $row['value'] = wdk_field_value($field->field_id, $listing, $default);
398 482
399 - if(wmvc_show_data('field_id', $field) == 'agent_image') {
483 + if(in_array(wmvc_show_data('field_id', $field), array('agent_image','agent_email','agent_name'))) {
400 484 $row['value'] = wmvc_show_data('user_id_editor', $listing);
401 485 }
402 486
487 + if(empty($row['value']) && !empty(wdk_field_option($field->field_id,'empty_value', false)))
488 + $row['value'] = wdk_field_option($field->field_id,'empty_value');
489 +
403 490 if(empty($row['value'])) continue;
404 491
405 492 if(wmvc_show_data('field_id', $field) == 'category_id') {
406 493
@@ -414,8 +501,9 @@
414 501 {
415 502 $tree_data = $category_static[$row['value']];
416 503 }
417 504
505 + $row['field_label'] = esc_html__('Category','wpdirectorykit');
418 506 $row['value'] = wmvc_show_data('category_title', $tree_data);
419 507
420 508 if(isset($listing->categories_list)){
421 509 $other_categories = wdk_generate_other_categories_fast($listing->categories_list);
@@ -434,8 +522,9 @@
434 522 {
435 523 $tree_data = $location_static[$row['value']];
436 524 }
437 525
526 + $row['field_label'] = esc_html__('Location','wpdirectorykit');
438 527 $row['value'] = wmvc_show_data('location_title', $tree_data);
439 528
440 529 if(isset($listing->locations_list)){
441 530 $other_locations = wdk_generate_other_locations_fast($listing->locations_list);
@@ -442,9 +531,13 @@
442 531 if(!empty($other_locations))
443 532 $row['value'] .=', '.join(', ',$other_locations);
444 533 }
445 534 } else if(wdk_field_option($field->field_id, 'field_type') == 'DATE') {
446 - $row['value'] = wdk_get_date($row['value'], FALSE);
535 + $row['field_label'] = esc_html__('Date','wpdirectorykit');
536 + $row['value'] = wdk_generate_field_date($field->field_id, $listing);
537 + } else if(wmvc_show_data('field_id', $field) == 'date_modified') {
538 + $row['field_label'] = esc_html__('Date','wpdirectorykit');
539 + $row['value'] = wdk_generate_field_date($field->field_id, $listing);
447 540 } else {
448 541
449 542 }
450 543
@@ -515,18 +608,37 @@
515 608 /* Favorite module */
516 609 $data ['favorite_added'] = wmvc_show_data('is_favorite', $listing, false, TRUE, TRUE);
517 610 /* End Favorite module */
518 611
519 - $output = $WMVC->view('frontend/'.$template, $data, FALSE);
612 + if(is_intval($template)) {
613 + $output = '';
614 + $post_data = get_post($template);
520 615
616 + global $wdk_listing_id;
617 + $wdk_listing_id = wmvc_show_data('post_id', $listing);
618 +
619 + if ($post_data) {
620 + if ($post_data->post_type == 'page' || $post_data->post_type == 'elementor_library') {
621 + $elementor_instance = \Elementor\Plugin::instance();
622 + $output = $elementor_instance->frontend->get_builder_content_for_display($template);
623 + if (empty($output))
624 + $output = $post_data->post_content;
625 + } else {
626 + $output = $post_data->post_content;
627 + }
628 + }
629 + } else {
630 + $output = $WMVC->view('frontend/'.$template, $data, FALSE);
631 + }
521 632 $output = sprintf($html_sprintf, $output);
633 +
522 634 if($json_output) {
523 635 $output = str_replace("'", "\'", $output);
524 636 $output = str_replace('"', '\"', $output);
525 637 $output = str_replace(array("\n", "\r"), '', $output);
526 638 }
527 -
528 - return ($output);
639 +
640 + return $output;
529 641 }
530 642 }
531 643
532 644 if(!function_exists('wdk_image_alt')) {
@@ -695,15 +807,16 @@
695 807 $categories_list[$item->idcategory] = $item->category_title;
696 808 }
697 809 }
698 810
699 - foreach(explode(',', $ids) as $item_id) {
700 - if(empty($item_id)) continue;
811 + if(is_string($ids))
812 + foreach(explode(',', $ids) as $item_id) {
813 + if(empty($item_id)) continue;
701 814
702 815
703 - if(isset($categories_list[$item_id]))
704 - $categories_array[$item_id] = $categories_list[$item_id];
705 - }
816 + if(isset($categories_list[$item_id]))
817 + $categories_array[$item_id] = $categories_list[$item_id];
818 + }
706 819
707 820 return $categories_array;
708 821 }
709 822 }
@@ -730,15 +843,16 @@
730 843 $locations_list[$item->idlocation] = $item->location_title;
731 844 }
732 845 }
733 846
734 - foreach(explode(',', $ids) as $item_id) {
735 - if(empty($item_id)) continue;
847 + if(is_string($ids))
848 + foreach(explode(',', $ids) as $item_id) {
849 + if(empty($item_id)) continue;
736 850
737 851
738 - if(isset($locations_list[$item_id]))
739 - $locations_array[$item_id] = $locations_list[$item_id];
740 - }
852 + if(isset($locations_list[$item_id]))
853 + $locations_array[$item_id] = $locations_list[$item_id];
854 + }
741 855
742 856 return $locations_array;
743 857 }
744 858 }
@@ -762,9 +876,9 @@
762 876 return $default;
763 877 }
764 878
765 879 if(wdk_field_option($field_id, 'is_price_format') && wdk_field_option($field_id, 'field_type') == 'NUMBER') {
766 - $value = wdk_number_format_i18n(wdk_filter_decimal($value));
880 + $value = wdk_filter_decimal(wdk_number_format_i18n($value));
767 881 } elseif(wdk_field_option($field_id, 'field_type') == 'DATE') {
768 882 $value = wdk_get_date($value, FALSE);
769 883 } else {
770 884 $value = wdk_filter_decimal($value);
@@ -880,8 +994,119 @@
880 994 if(!empty($user_data)) {
881 995 if(wmvc_show_data($field,$user_data['userdata'], false, TRUE, TRUE)) {
882 996 $output = wmvc_show_data($field,$user_data['userdata'], false, TRUE, TRUE);
883 997 }
998 + if(wmvc_show_data($field, $user_data, false, TRUE, TRUE)) {
999 + $output = wmvc_show_data($field,$user_data, false, TRUE, TRUE);
1000 + }
1001 + }
1002 +
1003 + return $output;
1004 + }
1005 +}
1006 +
1007 +if(!function_exists('wdk_get_category_title')) {
1008 + /**
1009 + * Get user field
1010 + *
1011 + * @param int $user id
1012 + * @param string $field use field
1013 + * @param string $default, value if empty or not find user
1014 + * @return string|array user field data or default value
1015 + */
1016 + function wdk_get_category_title ($category_id='', $empty = false) {
1017 + $output = $empty;
1018 + $category = wdk_generate_other_categories_fast($category_id);
1019 +
1020 + if(!empty($category)) {
1021 + $output = $category[$category_id];
1022 + }
1023 +
1024 + return $output;
1025 + }
1026 +}
1027 +
1028 +if(!function_exists('wdk_get_location_title')) {
1029 + /**
1030 + * Get user field
1031 + *
1032 + * @param int $user id
1033 + * @param string $field use field
1034 + * @param string $default, value if empty or not find user
1035 + * @return string|array user field data or default value
1036 + */
1037 + function wdk_get_location_title ($location_id='', $empty = false) {
1038 + $output = $empty;
1039 + $location = wdk_generate_other_locations_fast($location_id);
1040 +
1041 + if(!empty($location)) {
1042 + $output = $location[$location_id];
1043 + }
1044 +
1045 + return $output;
1046 + }
1047 +}
1048 +
1049 +if(!function_exists('wdk_get_category_id')) {
1050 + /**
1051 + * Get Category id by category name
1052 + *
1053 + * @param int $category_name category name
1054 + * @param string $empty, value if empty or not find
1055 + * @return string category_id
1056 + */
1057 + function wdk_get_category_id ($category_name='', $empty = false) {
1058 + $output = $empty;
1059 + $category_name = trim($category_name);
1060 + static $categories_list = NULL;
1061 +
1062 + if(is_null($categories_list)) {
1063 + $categories_list = array();
1064 + $WMVC = &wdk_get_instance();
1065 + $WMVC->model('category_m');
1066 + $categories = $WMVC->category_m->get();
1067 +
1068 + if($categories) foreach ($categories as $item) {
1069 + $categories_list[$item->idcategory] = $item->category_title;
1070 + }
1071 + }
1072 +
1073 + $key = array_search($category_name, $categories_list);
1074 + if($key) {
1075 + $output = $key;
1076 + }
1077 + return $output;
1078 + }
1079 +}
1080 +
1081 +if(!function_exists('wdk_get_location_id')) {
1082 + /**
1083 + * Get Location id by location name
1084 + *
1085 + * @param int $location_name location name
1086 + * @param string $empty, value if empty or not find
1087 + * @return string location_id
1088 + */
1089 + function wdk_get_location_id ($location_name='', $empty = false) {
1090 + $output = $empty;
1091 + $location_name = trim($location_name);
1092 +
1093 + static $locations_list = NULL;
1094 +
1095 + if(is_null($locations_list)) {
1096 + $locations_list = array();
1097 + $WMVC = &wdk_get_instance();
1098 + $WMVC->model('location_m');
1099 + $locations = $WMVC->location_m->get();
1100 +
1101 + if($locations) foreach ($locations as $item) {
1102 + $locations_list[$item->idlocation] = $item->location_title;
1103 + }
1104 + }
1105 +
1106 + $key = array_search($location_name, $locations_list);
1107 + if($key) {
1108 + $output = $key;
884 1109 }
885 1110
886 1111 return $output;
887 1112 }