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 +253 -24 1.1.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 = 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);
@@ -834,21 +948,25 @@
834 948 /**
835 949 * Get user data
836 950 *
837 951 * @param int $user id
838 - * @return array user data ('userdata'=>$userdata, 'avatar'=>get_avatar_url($user_id),'user_id'=>$user_id);
952 + * @return array user data ('userdata'=>$userdata, 'avatar'=>get_avatar_url($user_id),'user_id'=>$user_id, 'profile_url'=>'url on profile');
839 953 */
840 954 function wdk_get_user_data ($user_id='') {
841 955 static $users_cache = array();
842 956
843 957 $user = array();
844 - if(isset($childs_cache[$user_id])) {
845 - $user = $childs_cache [$user_id];
958 + if(isset($users_cache[$user_id])) {
959 + $user = $users_cache [$user_id];
846 960 } else {
847 961
848 962 $userdata = get_userdata($user_id);
849 963 if($userdata) {
850 - $user = array('userdata'=>$userdata, 'avatar'=>get_avatar_url($user_id),'user_id'=>$user_id);
964 + $user = array('userdata'=>$userdata, 'avatar'=>get_avatar_url($user_id, array("size"=>300)),'user_id'=>$user_id);
965 + $user['profile_url'] =NULL;
966 +
967 + if(function_exists('wdk_generate_profile_permalink'))
968 + $user['profile_url'] = wdk_generate_profile_permalink($userdata);
851 969 }
852 970
853 971 if($user) {
854 972 $users_cache [$user_id] = $user;
@@ -866,9 +984,9 @@
866 984 *
867 985 * @param int $user id
868 986 * @param string $field use field
869 987 * @param string $default, value if empty or not find user
870 - * @return string user field data or default value
988 + * @return string|array user field data or default value
871 989 */
872 990 function wdk_get_user_field ($user_id='', $field = '', $default = '') {
873 991 $user_data = wdk_get_user_data ($user_id);
874 992 $output = $default;
@@ -876,8 +994,119 @@
876 994 if(!empty($user_data)) {
877 995 if(wmvc_show_data($field,$user_data['userdata'], false, TRUE, TRUE)) {
878 996 $output = wmvc_show_data($field,$user_data['userdata'], false, TRUE, TRUE);
879 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;
880 1109 }
881 1110
882 1111 return $output;
883 1112 }