|
1
|
|
|
<?php
|
|
2
|
|
|
/**
|
|
3
|
|
|
* Custom functions
|
|
4
|
|
|
*
|
|
5
|
|
|
* @since 1.0.0
|
|
6
|
|
|
* @package GeoDirectory
|
|
7
|
|
|
*/
|
|
8
|
|
|
|
|
9
|
|
|
/**
|
|
10
|
|
|
* Front end listing view template selection.
|
|
11
|
|
|
*
|
|
12
|
|
|
* This function adds a drop down in front end listing page for selecting view template. Ex: list view, 2 column grid view, etc.
|
|
13
|
|
|
*
|
|
14
|
|
|
* @since 1.0.0
|
|
15
|
|
|
* @package GeoDirectory
|
|
16
|
|
|
*
|
|
17
|
|
|
* @global object $gd_session GeoDirectory Session object.
|
|
18
|
|
|
*/
|
|
19
|
|
|
function geodir_list_view_select() {
|
|
20
|
1 |
|
global $gd_session;
|
|
21
|
|
|
?>
|
|
22
|
|
|
<script type="text/javascript">
|
|
23
|
|
|
function geodir_list_view_select(list) {
|
|
24
|
|
|
//alert(listval);
|
|
25
|
|
|
val = list.value;
|
|
26
|
|
|
if (!val) {
|
|
27
|
|
|
return;
|
|
28
|
|
|
}
|
|
29
|
|
|
|
|
30
|
|
|
var listSel = jQuery(list).parent().parent().next('.geodir_category_list_view');
|
|
31
|
|
|
if (val != 1) {
|
|
32
|
|
|
jQuery(listSel).children('li').addClass('geodir-gridview');
|
|
33
|
|
|
jQuery(listSel).children('li').removeClass('geodir-listview');
|
|
34
|
|
|
} else {
|
|
35
|
|
|
jQuery(listSel).children('li').addClass('geodir-listview');
|
|
36
|
|
|
}
|
|
37
|
|
|
|
|
38
|
|
|
if (val == 1) {
|
|
39
|
|
|
jQuery(listSel).children('li').removeClass('geodir-gridview gridview_onehalf gridview_onethird gridview_onefourth gridview_onefifth');
|
|
40
|
|
|
}
|
|
41
|
|
|
else if (val == 2) {
|
|
42
|
|
|
jQuery(listSel).children('li').switchClass('gridview_onethird gridview_onefourth gridview_onefifth', 'gridview_onehalf', 600);
|
|
43
|
|
|
}
|
|
44
|
|
|
else if (val == 3) {
|
|
45
|
|
|
jQuery(listSel).children('li').switchClass('gridview_onehalf gridview_onefourth gridview_onefifth', 'gridview_onethird', 600);
|
|
46
|
|
|
}
|
|
47
|
|
|
else if (val == 4) {
|
|
48
|
|
|
jQuery(listSel).children('li').switchClass('gridview_onehalf gridview_onethird gridview_onefifth', 'gridview_onefourth', 600);
|
|
49
|
|
|
}
|
|
50
|
|
|
else if (val == 5) {
|
|
51
|
|
|
jQuery(listSel).children('li').switchClass('gridview_onehalf gridview_onethird gridview_onefourth', 'gridview_onefifth', 600);
|
|
52
|
|
|
}
|
|
53
|
|
|
|
|
54
|
|
|
jQuery.post("<?php echo geodir_get_ajax_url();?>&gd_listing_view=" + val, function (data) {
|
|
55
|
|
|
//alert(data );
|
|
56
|
|
|
});
|
|
57
|
|
|
}
|
|
58
|
|
|
</script>
|
|
59
|
|
|
<div class="geodir-list-view-select">
|
|
60
|
|
|
<select name="gd_list_view" id="gd_list_view" onchange="geodir_list_view_select(this);">
|
|
61
|
|
|
<?php $listing_view = (int)$gd_session->get('gd_listing_view'); ?>
|
|
62
|
|
|
<option value=""><?php _e('View:', 'geodirectory');?></option>
|
|
63
|
|
|
<option value="1" <?php selected(1, $listing_view);?>><?php _e('View: List', 'geodirectory');?></option>
|
|
64
|
|
|
<option value="2" <?php selected(2, $listing_view);?>><?php _e('View: Grid 2', 'geodirectory');?></option>
|
|
65
|
|
|
<option value="3" <?php selected(3, $listing_view);?>><?php _e('View: Grid 3', 'geodirectory');?></option>
|
|
66
|
|
|
<option value="4" <?php selected(4, $listing_view);?>><?php _e('View: Grid 4', 'geodirectory');?></option>
|
|
67
|
|
|
<option value="5" <?php selected(5, $listing_view);?>><?php _e('View: Grid 5', 'geodirectory');?></option>
|
|
68
|
|
|
</select>
|
|
69
|
|
|
</div>
|
|
70
|
|
|
<?php
|
|
71
|
1 |
|
}
|
|
72
|
|
|
|
|
73
|
|
|
//add_action('geodir_before_listing_post_listview', 'geodir_list_view_select');
|
|
|
|
|
|
|
74
|
|
|
add_action('geodir_before_listing', 'geodir_list_view_select', 100);
|
|
75
|
|
|
|
|
76
|
|
|
/**
|
|
77
|
|
|
* Limit the listing excerpt.
|
|
78
|
|
|
*
|
|
79
|
|
|
* This function limits excerpt characters and display "read more" link.
|
|
80
|
|
|
*
|
|
81
|
|
|
* @since 1.0.0
|
|
82
|
|
|
* @package GeoDirectory
|
|
83
|
|
|
* @param string|int $charlength The character length.
|
|
84
|
|
|
* @global object $post The current post object.
|
|
85
|
|
|
* @return string The modified excerpt.
|
|
86
|
|
|
*/
|
|
87
|
|
|
function geodir_max_excerpt($charlength)
|
|
88
|
|
|
{
|
|
89
|
4 |
|
global $post;
|
|
90
|
4 |
|
if ($charlength == '0') {
|
|
91
|
|
|
return;
|
|
92
|
|
|
}
|
|
93
|
4 |
|
$out = '';
|
|
94
|
|
|
|
|
95
|
4 |
|
$temp_post = $post;
|
|
96
|
4 |
|
$excerpt = get_the_excerpt();
|
|
97
|
|
|
|
|
98
|
4 |
|
$charlength++;
|
|
99
|
4 |
|
$excerpt_more = function_exists('geodirf_excerpt_more') ? geodirf_excerpt_more('') : geodir_excerpt_more('');
|
|
100
|
4 |
|
if (mb_strlen($excerpt) > $charlength) {
|
|
101
|
4 |
|
if (mb_strlen($excerpt_more) > 0 && mb_strpos($excerpt, $excerpt_more) !== false) {
|
|
102
|
4 |
|
$excut = -(mb_strlen($excerpt_more));
|
|
103
|
4 |
|
$subex = mb_substr($excerpt, 0, $excut);
|
|
104
|
4 |
|
if ($charlength > 0 && mb_strlen($subex) > $charlength) {
|
|
105
|
4 |
|
$subex = mb_substr($subex, 0, $charlength);
|
|
106
|
4 |
|
}
|
|
107
|
4 |
|
$out .= $subex;
|
|
108
|
4 |
|
} else {
|
|
109
|
|
|
$subex = mb_substr($excerpt, 0, $charlength - 5);
|
|
110
|
|
|
$exwords = explode(' ', $subex);
|
|
111
|
|
|
$excut = -(mb_strlen($exwords[count($exwords) - 1]));
|
|
112
|
|
|
if ($excut < 0) {
|
|
113
|
|
|
$out .= mb_substr($subex, 0, $excut);
|
|
114
|
|
|
} else {
|
|
115
|
|
|
$out .= $subex;
|
|
116
|
|
|
}
|
|
117
|
|
|
}
|
|
118
|
4 |
|
$out .= ' <a class="excerpt-read-more" href="' . get_permalink() . '" title="' . get_the_title() . '">';
|
|
119
|
|
|
/**
|
|
120
|
|
|
* Filter excerpt read more text.
|
|
121
|
|
|
*
|
|
122
|
|
|
* @since 1.0.0
|
|
123
|
|
|
*/
|
|
124
|
4 |
|
$out .= apply_filters('geodir_max_excerpt_end', __('Read more [...]', 'geodirectory'));
|
|
125
|
4 |
|
$out .= '</a>';
|
|
126
|
|
|
|
|
127
|
4 |
|
} else {
|
|
128
|
1 |
|
if (mb_strlen($excerpt_more) > 0 && mb_strpos($excerpt, $excerpt_more) !== false) {
|
|
129
|
|
|
$excut = -(mb_strlen($excerpt_more));
|
|
130
|
|
|
$out .= mb_substr($excerpt, 0, $excut);
|
|
131
|
|
|
$out .= ' <a class="excerpt-read-more" href="' . get_permalink() . '" title="' . get_the_title() . '">';
|
|
132
|
|
|
/**
|
|
133
|
|
|
* Filter excerpt read more text.
|
|
134
|
|
|
*
|
|
135
|
|
|
* @since 1.0.0
|
|
136
|
|
|
*/
|
|
137
|
|
|
$out .= apply_filters('geodir_max_excerpt_end', __('Read more [...]', 'geodirectory'));
|
|
138
|
|
|
$out .= '</a>';
|
|
139
|
|
|
} else {
|
|
140
|
1 |
|
$out .= $excerpt;
|
|
141
|
|
|
}
|
|
142
|
|
|
}
|
|
143
|
4 |
|
$post = $temp_post;
|
|
144
|
|
|
|
|
145
|
4 |
|
return $out;
|
|
146
|
|
|
}
|
|
147
|
|
|
|
|
148
|
|
|
/**
|
|
149
|
|
|
* Returns package information as an objects.
|
|
150
|
|
|
*
|
|
151
|
|
|
* @since 1.0.0
|
|
152
|
|
|
* @package GeoDirectory
|
|
153
|
|
|
* @param array $package_info Package info array.
|
|
154
|
|
|
* @param object|string $post The post object.
|
|
155
|
|
|
* @param string $post_type The post type.
|
|
156
|
|
|
* @return object Returns filtered package info as an object.
|
|
157
|
|
|
*/
|
|
158
|
|
|
function geodir_post_package_info($package_info, $post = '', $post_type = '')
|
|
159
|
|
|
{
|
|
160
|
18 |
|
$package_info['pid'] = 0;
|
|
161
|
18 |
|
$package_info['days'] = 0;
|
|
162
|
18 |
|
$package_info['amount'] = 0;
|
|
163
|
18 |
|
$package_info['is_featured'] = 0;
|
|
164
|
18 |
|
$package_info['image_limit'] = '';
|
|
165
|
18 |
|
$package_info['google_analytics'] = 1;
|
|
166
|
18 |
|
$package_info['sendtofriend'] = 1;
|
|
167
|
|
|
|
|
168
|
|
|
/**
|
|
169
|
|
|
* Filter listing package info.
|
|
170
|
|
|
*
|
|
171
|
|
|
* @since 1.0.0
|
|
172
|
|
|
* @param array $package_info {
|
|
173
|
|
|
* Attributes of the package_info.
|
|
174
|
|
|
*
|
|
175
|
|
|
* @type int $pid Package ID. Default 0.
|
|
176
|
|
|
* @type int $days Package validity in Days. Default 0.
|
|
177
|
|
|
* @type int $amount Package amount. Default 0.
|
|
178
|
|
|
* @type int $is_featured Is this featured package? Default 0.
|
|
179
|
|
|
* @type string $image_limit Image limit for this package. Default "".
|
|
180
|
|
|
* @type int $google_analytics Add analytics to this package. Default 1.
|
|
181
|
|
|
* @type int $sendtofriend Send to friend. Default 1.
|
|
182
|
|
|
*
|
|
183
|
|
|
* }
|
|
184
|
|
|
* @param object|string $post The post object.
|
|
185
|
|
|
* @param string $post_type The post type.
|
|
186
|
|
|
*/
|
|
187
|
18 |
|
return (object)apply_filters('geodir_post_package_info', $package_info, $post, $post_type);
|
|
188
|
|
|
|
|
189
|
|
|
}
|
|
190
|
|
|
|
|
191
|
|
|
|
|
192
|
|
|
/**
|
|
193
|
|
|
* Send enquiry to listing author
|
|
194
|
|
|
*
|
|
195
|
|
|
* This function let the user to send Enquiry to listing author. If listing author email not available, then admin email will be used.
|
|
196
|
|
|
* Email content will be used WP Admin -> Geodirectory -> Notifications -> Other Emails -> Email enquiry
|
|
197
|
|
|
*
|
|
198
|
|
|
* @since 1.0.0
|
|
199
|
|
|
* @package GeoDirectory
|
|
200
|
|
|
* @global object $wpdb WordPress Database object.
|
|
201
|
|
|
* @param array $request {
|
|
202
|
|
|
* The submitted form fields as an array.
|
|
203
|
|
|
*
|
|
204
|
|
|
* @type string $sendact Enquiry type. Default "send_inqury".
|
|
205
|
|
|
* @type string $pid Post ID.
|
|
206
|
|
|
* @type string $inq_name Sender name.
|
|
207
|
|
|
* @type string $inq_email Sender mail.
|
|
208
|
|
|
* @type string $inq_phone Sender phone.
|
|
209
|
|
|
* @type string $inq_msg Email message.
|
|
210
|
|
|
*
|
|
211
|
|
|
* }
|
|
212
|
|
|
*/
|
|
213
|
|
|
function geodir_send_inquiry($request)
|
|
214
|
|
|
{
|
|
215
|
1 |
|
global $wpdb;
|
|
216
|
|
|
|
|
217
|
|
|
// strip slashes from text
|
|
218
|
1 |
|
$request = !empty($request) ? stripslashes_deep($request) : $request;
|
|
219
|
|
|
|
|
220
|
1 |
|
$yourname = $request['inq_name'];
|
|
221
|
1 |
|
$youremail = $request['inq_email'];
|
|
222
|
1 |
|
$inq_phone = $request['inq_phone'];
|
|
223
|
1 |
|
$frnd_comments = $request['inq_msg'];
|
|
224
|
1 |
|
$pid = $request['pid'];
|
|
225
|
|
|
|
|
226
|
1 |
|
$author_id = '';
|
|
227
|
1 |
|
$post_title = '';
|
|
228
|
|
|
|
|
229
|
1 |
|
if ($request['pid']) {
|
|
230
|
|
|
|
|
231
|
1 |
|
$productinfosql = $wpdb->prepare(
|
|
232
|
1 |
|
"select ID,post_author,post_title from $wpdb->posts where ID =%d",
|
|
233
|
1 |
|
array($request['pid'])
|
|
234
|
1 |
|
);
|
|
235
|
1 |
|
$productinfo = $wpdb->get_row($productinfosql);
|
|
236
|
|
|
|
|
237
|
1 |
|
$author_id = $productinfo->post_author;
|
|
238
|
1 |
|
$post_title = $productinfo->post_title;
|
|
239
|
1 |
|
}
|
|
240
|
|
|
|
|
241
|
1 |
|
$post_title = '<a href="' . get_permalink($pid) . '">' . $post_title . '</a>';
|
|
|
|
|
|
|
242
|
|
|
|
|
243
|
1 |
|
$user_info = get_userdata($author_id);
|
|
|
|
|
|
|
244
|
1 |
|
$to_email = geodir_get_post_meta($pid, 'geodir_email', true);
|
|
245
|
1 |
|
$to_name = geodir_get_client_name($author_id);
|
|
246
|
|
|
|
|
247
|
1 |
|
if ($to_email == '') {
|
|
248
|
|
|
$to_email = get_option('admin_email');
|
|
249
|
|
|
}
|
|
250
|
|
|
|
|
251
|
|
|
/**
|
|
252
|
|
|
* Called after the send enquiry var have been set but before the email has been sent.
|
|
253
|
|
|
*
|
|
254
|
|
|
* @since 1.0.0
|
|
255
|
|
|
* @param array $request {
|
|
256
|
|
|
* The submitted form fields as an array.
|
|
257
|
|
|
*
|
|
258
|
|
|
* @type string $sendact Enquiry type. Default "send_inqury".
|
|
259
|
|
|
* @type string $pid Post ID.
|
|
260
|
|
|
* @type string $inq_name Sender name.
|
|
261
|
|
|
* @type string $inq_email Sender mail.
|
|
262
|
|
|
* @type string $inq_phone Sender phone.
|
|
263
|
|
|
* @type string $inq_msg Email message.
|
|
264
|
|
|
*
|
|
265
|
|
|
* }
|
|
266
|
|
|
* @param string $type The form type, default: `Enquiry`.
|
|
267
|
|
|
*/
|
|
268
|
1 |
|
do_action('geodir_after_send_enquiry', $request, 'Enquiry');
|
|
269
|
|
|
|
|
270
|
1 |
|
$client_message = $frnd_comments;
|
|
271
|
1 |
|
$client_message .= '<br>' . __('From :', 'geodirectory') . ' ' . $yourname . '<br>' . __('Phone :', 'geodirectory') . ' ' . $inq_phone . '<br>' . __('Email :', 'geodirectory') . ' ' . $youremail . '<br><br>' . __('Sent from', 'geodirectory') . ' - <b><a href="' . trailingslashit(home_url()) . '">' . get_option('blogname') . '</a></b>.';
|
|
272
|
|
|
/**
|
|
273
|
|
|
* Filter client message text.
|
|
274
|
|
|
*
|
|
275
|
|
|
* @since 1.0.0
|
|
276
|
|
|
* @param string $client_message Client message text.
|
|
277
|
|
|
*/
|
|
278
|
1 |
|
$client_message = apply_filters('geodir_inquiry_email_msg', $client_message);
|
|
279
|
|
|
|
|
280
|
|
|
/**
|
|
281
|
|
|
* Called before the send enquiry email is sent.
|
|
282
|
|
|
*
|
|
283
|
|
|
* @since 1.0.0
|
|
284
|
|
|
* @param array $request {
|
|
285
|
|
|
* The submitted form fields as an array.
|
|
286
|
|
|
*
|
|
287
|
|
|
* @type string $sendact Enquiry type. Default "send_inqury".
|
|
288
|
|
|
* @type string $pid Post ID.
|
|
289
|
|
|
* @type string $inq_name Sender name.
|
|
290
|
|
|
* @type string $inq_email Sender mail.
|
|
291
|
|
|
* @type string $inq_phone Sender phone.
|
|
292
|
|
|
* @type string $inq_msg Email message.
|
|
293
|
|
|
*
|
|
294
|
|
|
* }
|
|
295
|
|
|
*/
|
|
296
|
1 |
|
do_action('geodir_before_send_enquiry_email', $request);
|
|
297
|
1 |
|
if ($to_email) {
|
|
298
|
|
|
// strip slashes message
|
|
299
|
1 |
|
$client_message = stripslashes_deep($client_message);
|
|
300
|
|
|
|
|
301
|
1 |
|
geodir_sendEmail($youremail, $yourname, $to_email, $to_name, '', $client_message, $extra = '', 'send_enquiry', $request['pid']);//To client email
|
|
302
|
1 |
|
}
|
|
303
|
|
|
|
|
304
|
|
|
/**
|
|
305
|
|
|
* Called after the send enquiry email is sent.
|
|
306
|
|
|
*
|
|
307
|
|
|
* @since 1.0.0
|
|
308
|
|
|
* @param array $request {
|
|
309
|
|
|
* The submitted form fields as an array.
|
|
310
|
|
|
*
|
|
311
|
|
|
* @type string $sendact Enquiry type. Default "send_inqury".
|
|
312
|
|
|
* @type string $pid Post ID.
|
|
313
|
|
|
* @type string $inq_name Sender name.
|
|
314
|
|
|
* @type string $inq_email Sender mail.
|
|
315
|
|
|
* @type string $inq_phone Sender phone.
|
|
316
|
|
|
* @type string $inq_msg Email message.
|
|
317
|
|
|
*
|
|
318
|
|
|
* }
|
|
319
|
|
|
*/
|
|
320
|
1 |
|
do_action('geodir_after_send_enquiry_email', $request);
|
|
321
|
1 |
|
$url = get_permalink($pid);
|
|
322
|
1 |
View Code Duplication |
if (strstr($url, '?')) {
|
|
323
|
1 |
|
$url = $url . "&send_inquiry=success";
|
|
324
|
1 |
|
} else {
|
|
325
|
|
|
$url = $url . "?send_inquiry=success";
|
|
326
|
|
|
}
|
|
327
|
|
|
/**
|
|
328
|
|
|
* Filter redirect url after the send enquiry email is sent.
|
|
329
|
|
|
*
|
|
330
|
|
|
* @since 1.0.0
|
|
331
|
|
|
* @param string $url Redirect url.
|
|
332
|
|
|
*/
|
|
333
|
1 |
|
$url = apply_filters('geodir_send_enquiry_after_submit_redirect', $url);
|
|
334
|
1 |
|
wp_redirect($url);
|
|
335
|
1 |
|
gd_die();
|
|
336
|
|
|
|
|
337
|
1 |
|
}
|
|
338
|
|
|
|
|
339
|
|
|
/**
|
|
340
|
|
|
* Send Email to a friend.
|
|
341
|
|
|
*
|
|
342
|
|
|
* This function let the user to send Email to a friend.
|
|
343
|
|
|
* Email content will be used WP Admin -> Geodirectory -> Notifications -> Other Emails -> Send to friend
|
|
344
|
|
|
*
|
|
345
|
|
|
* @since 1.0.0
|
|
346
|
|
|
* @package GeoDirectory
|
|
347
|
|
|
* @param array $request {
|
|
348
|
|
|
* The submitted form fields as an array.
|
|
349
|
|
|
*
|
|
350
|
|
|
* @type string $sendact Enquiry type. Default "email_frnd".
|
|
351
|
|
|
* @type string $pid Post ID.
|
|
352
|
|
|
* @type string $to_name Friend name.
|
|
353
|
|
|
* @type string $to_email Friend email.
|
|
354
|
|
|
* @type string $yourname Sender name.
|
|
355
|
|
|
* @type string $youremail Sender email.
|
|
356
|
|
|
* @type string $frnd_subject Email subject.
|
|
357
|
|
|
* @type string $frnd_comments Email Message.
|
|
358
|
|
|
*
|
|
359
|
|
|
* }
|
|
360
|
|
|
* @global object $wpdb WordPress Database object.
|
|
361
|
|
|
*/
|
|
362
|
|
|
function geodir_send_friend($request)
|
|
363
|
|
|
{
|
|
364
|
1 |
|
global $wpdb;
|
|
365
|
|
|
|
|
366
|
|
|
// strip slashes from text
|
|
367
|
1 |
|
$request = !empty($request) ? stripslashes_deep($request) : $request;
|
|
368
|
|
|
|
|
369
|
1 |
|
$yourname = $request['yourname'];
|
|
370
|
1 |
|
$youremail = $request['youremail'];
|
|
371
|
1 |
|
$frnd_subject = $request['frnd_subject'];
|
|
372
|
1 |
|
$frnd_comments = $request['frnd_comments'];
|
|
373
|
1 |
|
$pid = $request['pid'];
|
|
374
|
1 |
|
$to_email = $request['to_email'];
|
|
375
|
1 |
|
$to_name = $request['to_name'];
|
|
376
|
1 |
|
if ($request['pid']) {
|
|
377
|
1 |
|
$productinfosql = $wpdb->prepare(
|
|
378
|
1 |
|
"select ID,post_title from $wpdb->posts where ID =%d",
|
|
379
|
1 |
|
array($request['pid'])
|
|
380
|
1 |
|
);
|
|
381
|
1 |
|
$productinfo = $wpdb->get_results($productinfosql);
|
|
382
|
1 |
|
foreach ($productinfo as $productinfoObj) {
|
|
383
|
1 |
|
$post_title = $productinfoObj->post_title;
|
|
|
|
|
|
|
384
|
1 |
|
}
|
|
385
|
1 |
|
}
|
|
386
|
|
|
|
|
387
|
|
|
/**
|
|
388
|
|
|
* Called before the send to friend email is sent.
|
|
389
|
|
|
*
|
|
390
|
|
|
* @since 1.0.0
|
|
391
|
|
|
* @param array $request {
|
|
392
|
|
|
* The submitted form fields as an array.
|
|
393
|
|
|
*
|
|
394
|
|
|
* @type string $sendact Enquiry type. Default "email_frnd".
|
|
395
|
|
|
* @type string $pid Post ID.
|
|
396
|
|
|
* @type string $to_name Friend name.
|
|
397
|
|
|
* @type string $to_email Friend email.
|
|
398
|
|
|
* @type string $yourname Sender name.
|
|
399
|
|
|
* @type string $youremail Sender email.
|
|
400
|
|
|
* @type string $frnd_subject Email subject.
|
|
401
|
|
|
* @type string $frnd_comments Email Message.
|
|
402
|
|
|
*
|
|
403
|
|
|
* }
|
|
404
|
|
|
*/
|
|
405
|
1 |
|
do_action('geodir_before_send_to_friend_email', $request);
|
|
406
|
1 |
|
geodir_sendEmail($youremail, $yourname, $to_email, $to_name, $frnd_subject, $frnd_comments, $extra = '', 'send_friend', $request['pid']);//To client email
|
|
407
|
|
|
|
|
408
|
|
|
/**
|
|
409
|
|
|
* Called after the send to friend email is sent.
|
|
410
|
|
|
*
|
|
411
|
|
|
* @since 1.0.0
|
|
412
|
|
|
* @param array $request {
|
|
413
|
|
|
* The submitted form fields as an array.
|
|
414
|
|
|
*
|
|
415
|
|
|
* @type string $sendact Enquiry type. Default "email_frnd".
|
|
416
|
|
|
* @type string $pid Post ID.
|
|
417
|
|
|
* @type string $to_name Friend name.
|
|
418
|
|
|
* @type string $to_email Friend email.
|
|
419
|
|
|
* @type string $yourname Sender name.
|
|
420
|
|
|
* @type string $youremail Sender email.
|
|
421
|
|
|
* @type string $frnd_subject Email subject.
|
|
422
|
|
|
* @type string $frnd_comments Email Message.
|
|
423
|
|
|
*
|
|
424
|
|
|
* }
|
|
425
|
|
|
*/
|
|
426
|
1 |
|
do_action('geodir_after_send_to_friend_email', $request);
|
|
427
|
|
|
|
|
428
|
1 |
|
$url = get_permalink($pid);
|
|
429
|
1 |
View Code Duplication |
if (strstr($url, '?')) {
|
|
430
|
1 |
|
$url = $url . "&sendtofrnd=success";
|
|
431
|
1 |
|
} else {
|
|
432
|
|
|
$url = $url . "?sendtofrnd=success";
|
|
433
|
|
|
}
|
|
434
|
|
|
/**
|
|
435
|
|
|
* Filter redirect url after the send to friend email is sent.
|
|
436
|
|
|
*
|
|
437
|
|
|
* @since 1.0.0
|
|
438
|
|
|
* @param string $url Redirect url.
|
|
439
|
|
|
*/
|
|
440
|
1 |
|
$url = apply_filters('geodir_send_to_friend_after_submit_redirect', $url);
|
|
441
|
1 |
|
wp_redirect($url);
|
|
442
|
1 |
|
gd_die();
|
|
443
|
1 |
|
}
|
|
444
|
|
|
|
|
445
|
|
|
/**
|
|
446
|
|
|
* Adds open div before the tab content.
|
|
447
|
|
|
*
|
|
448
|
|
|
* This function adds open div before the tab content like post information, post images, reviews etc.
|
|
449
|
|
|
*
|
|
450
|
|
|
* @since 1.0.0
|
|
451
|
|
|
* @package GeoDirectory
|
|
452
|
|
|
* @param string $hash_key
|
|
453
|
|
|
*/
|
|
454
|
|
|
function geodir_before_tab_content($hash_key)
|
|
455
|
|
|
{
|
|
456
|
|
|
switch ($hash_key) {
|
|
457
|
1 |
|
case 'post_info' :
|
|
458
|
|
|
echo '<div class="geodir-company_info field-group">';
|
|
459
|
|
|
break;
|
|
460
|
1 |
|
case 'post_images' :
|
|
461
|
|
|
/**
|
|
462
|
|
|
* Filter post gallery HTML id.
|
|
463
|
|
|
*
|
|
464
|
|
|
* @since 1.0.0
|
|
465
|
|
|
*/
|
|
466
|
1 |
|
echo ' <div id="' . apply_filters('geodir_post_gallery_id', 'geodir-post-gallery') . '" class="clearfix" >';
|
|
467
|
1 |
|
break;
|
|
468
|
1 |
|
case 'reviews' :
|
|
469
|
1 |
|
echo '<div id="reviews-wrap" class="clearfix"> ';
|
|
470
|
1 |
|
break;
|
|
471
|
1 |
|
case 'post_video':
|
|
472
|
|
|
echo ' <div id="post_video-wrap" class="clearfix">';
|
|
473
|
|
|
break;
|
|
474
|
1 |
|
case 'special_offers':
|
|
475
|
|
|
echo '<div id="special_offers-wrap" class="clearfix">';
|
|
476
|
|
|
break;
|
|
477
|
|
|
}
|
|
478
|
1 |
|
}
|
|
479
|
|
|
|
|
480
|
|
|
/**
|
|
481
|
|
|
* Adds closing div after the tab content.
|
|
482
|
|
|
*
|
|
483
|
|
|
* This function adds closing div after the tab content like post information, post images, reviews etc.
|
|
484
|
|
|
*
|
|
485
|
|
|
* @since 1.0.0
|
|
486
|
|
|
* @package GeoDirectory
|
|
487
|
|
|
* @param string $hash_key
|
|
488
|
|
|
*/
|
|
489
|
|
|
function geodir_after_tab_content($hash_key)
|
|
490
|
|
|
{
|
|
491
|
|
|
switch ($hash_key) {
|
|
492
|
1 |
|
case 'post_info' :
|
|
493
|
|
|
echo '</div>';
|
|
494
|
|
|
break;
|
|
495
|
1 |
|
case 'post_images' :
|
|
496
|
1 |
|
echo '</div>';
|
|
497
|
1 |
|
break;
|
|
498
|
1 |
|
case 'reviews' :
|
|
499
|
1 |
|
echo '</div>';
|
|
500
|
1 |
|
break;
|
|
501
|
1 |
|
case 'post_video':
|
|
502
|
|
|
echo '</div>';
|
|
503
|
|
|
break;
|
|
504
|
1 |
|
case 'special_offers':
|
|
505
|
|
|
echo '</div>';
|
|
506
|
|
|
break;
|
|
507
|
|
|
}
|
|
508
|
1 |
|
}
|
|
509
|
|
|
|
|
510
|
|
|
|
|
511
|
|
|
/**
|
|
512
|
|
|
* Returns default sorting order of a post type.
|
|
513
|
|
|
*
|
|
514
|
|
|
* @since 1.0.0
|
|
515
|
|
|
* @package GeoDirectory
|
|
516
|
|
|
* @param string $post_type The post type.
|
|
517
|
|
|
* @global object $wpdb WordPress Database object.
|
|
518
|
|
|
* @return bool|null|string Returns default sort results, when the post type is valid. Otherwise returns false.
|
|
519
|
|
|
*/
|
|
520
|
|
View Code Duplication |
function geodir_get_posts_default_sort($post_type)
|
|
|
|
|
|
|
521
|
|
|
{
|
|
522
|
|
|
|
|
523
|
|
|
global $wpdb;
|
|
524
|
|
|
|
|
525
|
|
|
if ($post_type != '') {
|
|
526
|
|
|
|
|
527
|
|
|
$all_postypes = geodir_get_posttypes();
|
|
528
|
|
|
|
|
529
|
|
|
if (!in_array($post_type, $all_postypes))
|
|
530
|
|
|
return false;
|
|
531
|
|
|
|
|
532
|
|
|
$sort_field_info = $wpdb->get_var($wpdb->prepare("select default_order from " . GEODIR_CUSTOM_SORT_FIELDS_TABLE . " where post_type= %s and is_active=%d and is_default=%d", array($post_type, 1, 1)));
|
|
533
|
|
|
|
|
534
|
|
|
if (!empty($sort_field_info))
|
|
535
|
|
|
return $sort_field_info;
|
|
536
|
|
|
|
|
537
|
|
|
}
|
|
538
|
|
|
|
|
539
|
|
|
}
|
|
540
|
|
|
|
|
541
|
|
|
|
|
542
|
|
|
/**
|
|
543
|
|
|
* Returns sort options of a post type.
|
|
544
|
|
|
*
|
|
545
|
|
|
* @since 1.0.0
|
|
546
|
|
|
* @package GeoDirectory
|
|
547
|
|
|
* @param string $post_type The post type.
|
|
548
|
|
|
* @global object $wpdb WordPress Database object.
|
|
549
|
|
|
* @return bool|mixed|void Returns sort results, when the post type is valid. Otherwise returns false.
|
|
550
|
|
|
*/
|
|
551
|
|
View Code Duplication |
function geodir_get_sort_options($post_type) {
|
|
|
|
|
|
|
552
|
1 |
|
global $wpdb;
|
|
553
|
|
|
|
|
554
|
1 |
|
if ($post_type != '') {
|
|
555
|
1 |
|
$all_postypes = geodir_get_posttypes();
|
|
556
|
|
|
|
|
557
|
1 |
|
if (!in_array($post_type, $all_postypes))
|
|
558
|
1 |
|
return false;
|
|
559
|
|
|
|
|
560
|
1 |
|
$sort_field_info = $wpdb->get_results($wpdb->prepare("SELECT * FROM " . GEODIR_CUSTOM_SORT_FIELDS_TABLE . " WHERE post_type=%s AND is_active=%d AND (sort_asc=1 || sort_desc=1 || field_type='random') AND field_type != 'address' ORDER BY sort_order ASC", array($post_type, 1)));
|
|
561
|
|
|
/**
|
|
562
|
|
|
* Filter post sort options.
|
|
563
|
|
|
*
|
|
564
|
|
|
* @since 1.0.0
|
|
565
|
|
|
* @param array $sort_field_info Unfiltered sort field array.
|
|
566
|
|
|
* @param string $post_type Post type.
|
|
567
|
|
|
*/
|
|
568
|
1 |
|
return apply_filters('geodir_get_sort_options', $sort_field_info, $post_type);
|
|
569
|
|
|
}
|
|
570
|
|
|
|
|
571
|
|
|
}
|
|
572
|
|
|
|
|
573
|
|
|
|
|
574
|
|
|
/**
|
|
575
|
|
|
* Display list of sort options available in front end using dropdown.
|
|
576
|
|
|
*
|
|
577
|
|
|
* @since 1.0.0
|
|
578
|
|
|
* @package GeoDirectory
|
|
579
|
|
|
* @global object $wp_query WordPress Query object.
|
|
580
|
|
|
*/
|
|
581
|
|
|
function geodir_display_sort_options()
|
|
582
|
|
|
{
|
|
583
|
1 |
|
global $wp_query;
|
|
584
|
|
|
|
|
585
|
|
|
/**
|
|
586
|
|
|
* On search pages there should be no sort options, sorting is done by search criteria.
|
|
587
|
|
|
*
|
|
588
|
|
|
* @since 1.4.4
|
|
589
|
|
|
*/
|
|
590
|
1 |
|
if ( is_search() ) {
|
|
591
|
|
|
return;
|
|
592
|
|
|
}
|
|
593
|
|
|
|
|
594
|
1 |
|
$sort_by = '';
|
|
595
|
|
|
|
|
596
|
1 |
|
if (isset($_REQUEST['sort_by'])) $sort_by = $_REQUEST['sort_by'];
|
|
597
|
|
|
|
|
598
|
1 |
|
$gd_post_type = geodir_get_current_posttype();
|
|
599
|
|
|
|
|
600
|
1 |
|
$sort_options = geodir_get_sort_options($gd_post_type);
|
|
601
|
|
|
|
|
602
|
|
|
|
|
603
|
1 |
|
$sort_field_options = '';
|
|
604
|
|
|
|
|
605
|
1 |
|
if (!empty($sort_options)) {
|
|
606
|
|
|
foreach ($sort_options as $sort) {
|
|
607
|
|
|
$sort = stripslashes_deep($sort); // strip slashes
|
|
608
|
|
|
|
|
609
|
|
|
$label = __($sort->site_title, 'geodirectory');
|
|
610
|
|
|
|
|
611
|
|
|
if ($sort->field_type == 'random') {
|
|
612
|
|
|
$key = $sort->field_type;
|
|
613
|
|
|
($sort_by == $key || ($sort->is_default == '1' && !isset($_REQUEST['sort_by']))) ? $selected = 'selected="selected"' : $selected = '';
|
|
614
|
|
|
$sort_field_options .= '<option ' . $selected . ' value="' . esc_url( add_query_arg('sort_by', $key) ) . '">' . __($label, 'geodirectory') . '</option>';
|
|
615
|
|
|
}
|
|
616
|
|
|
|
|
617
|
|
|
if ($sort->htmlvar_name == 'comment_count') {
|
|
618
|
|
|
$sort->htmlvar_name = 'rating_count';
|
|
619
|
|
|
}
|
|
620
|
|
|
|
|
621
|
|
View Code Duplication |
if ($sort->sort_asc) {
|
|
622
|
|
|
$key = $sort->htmlvar_name . '_asc';
|
|
623
|
|
|
$label = $sort->site_title;
|
|
624
|
|
|
if ($sort->asc_title)
|
|
625
|
|
|
$label = $sort->asc_title;
|
|
626
|
|
|
($sort_by == $key || ($sort->is_default == '1' && $sort->default_order == $key && !isset($_REQUEST['sort_by']))) ? $selected = 'selected="selected"' : $selected = '';
|
|
627
|
|
|
$sort_field_options .= '<option ' . $selected . ' value="' . esc_url( add_query_arg('sort_by', $key) ) . '">' . __($label, 'geodirectory') . '</option>';
|
|
628
|
|
|
}
|
|
629
|
|
|
|
|
630
|
|
View Code Duplication |
if ($sort->sort_desc) {
|
|
631
|
|
|
$key = $sort->htmlvar_name . '_desc';
|
|
632
|
|
|
$label = $sort->site_title;
|
|
633
|
|
|
if ($sort->desc_title)
|
|
634
|
|
|
$label = $sort->desc_title;
|
|
635
|
|
|
($sort_by == $key || ($sort->is_default == '1' && $sort->default_order == $key && !isset($_REQUEST['sort_by']))) ? $selected = 'selected="selected"' : $selected = '';
|
|
636
|
|
|
$sort_field_options .= '<option ' . $selected . ' value="' . esc_url( add_query_arg('sort_by', $key) ) . '">' . __($label, 'geodirectory') . '</option>';
|
|
637
|
|
|
}
|
|
638
|
|
|
|
|
639
|
|
|
}
|
|
640
|
|
|
}
|
|
641
|
|
|
|
|
642
|
1 |
|
if ($sort_field_options != '') {
|
|
643
|
|
|
|
|
644
|
|
|
?>
|
|
645
|
|
|
|
|
646
|
|
|
<div class="geodir-tax-sort">
|
|
647
|
|
|
|
|
648
|
|
|
<select name="sort_by" id="sort_by" onchange="javascript:window.location=this.value;">
|
|
649
|
|
|
|
|
650
|
|
|
<option
|
|
651
|
|
|
value="<?php echo esc_url( add_query_arg('sort_by', '') );?>" <?php if ($sort_by == '') echo 'selected="selected"';?>><?php _e('Sort By', 'geodirectory');?></option><?php
|
|
652
|
|
|
|
|
653
|
|
|
echo $sort_field_options;?>
|
|
654
|
|
|
|
|
655
|
|
|
</select>
|
|
656
|
|
|
|
|
657
|
|
|
</div>
|
|
658
|
|
|
<?php
|
|
659
|
|
|
|
|
660
|
|
|
}
|
|
661
|
|
|
|
|
662
|
1 |
|
}
|
|
663
|
|
|
|
|
664
|
|
|
|
|
665
|
|
|
/**
|
|
666
|
|
|
* Removes the section title
|
|
667
|
|
|
*
|
|
668
|
|
|
* Removes the section title "Posts sort options", if the custom field type is multiselect or textarea or taxonomy.
|
|
669
|
|
|
* Can be found here. WP Admin -> Geodirectory -> Place settings -> Custom fields
|
|
670
|
|
|
*
|
|
671
|
|
|
* @since 1.0.0
|
|
672
|
|
|
* @package GeoDirectory
|
|
673
|
|
|
* @param string $title The section title.
|
|
674
|
|
|
* @param string $field_type The field type.
|
|
675
|
|
|
* @return string Returns the section title.
|
|
676
|
|
|
*/
|
|
677
|
|
|
function geodir_advance_customfields_heading($title, $field_type)
|
|
678
|
|
|
{
|
|
679
|
|
|
|
|
680
|
2 |
|
if (in_array($field_type, array('multiselect', 'textarea', 'taxonomy'))) {
|
|
681
|
1 |
|
$title = '';
|
|
682
|
1 |
|
}
|
|
683
|
2 |
|
return $title;
|
|
684
|
|
|
}
|
|
685
|
|
|
|
|
686
|
|
|
|
|
687
|
|
|
/**
|
|
688
|
|
|
* Returns related listings of a listing.
|
|
689
|
|
|
*
|
|
690
|
|
|
* @since 1.0.0
|
|
691
|
|
|
* @package GeoDirectory
|
|
692
|
|
|
* @param array $request Related posts request array.
|
|
693
|
|
|
* @global object $wpdb WordPress Database object.
|
|
694
|
|
|
* @global object $post The current post object.
|
|
695
|
|
|
* @global string $gridview_columns The girdview style of the listings.
|
|
696
|
|
|
* @global object $gd_session GeoDirectory Session object.
|
|
697
|
|
|
* @return string Returns related posts html.
|
|
698
|
|
|
*/
|
|
699
|
|
|
function geodir_related_posts_display($request) {
|
|
700
|
3 |
|
if (!empty($request)) {
|
|
701
|
3 |
|
$before_title = (isset($request['before_title']) && !empty($request['before_title'])) ? $request['before_title'] : '';
|
|
702
|
3 |
|
$after_title = (isset($request['after_title']) && !empty($request['after_title'])) ? $request['after_title'] : '';
|
|
703
|
|
|
|
|
704
|
3 |
|
$title = (isset($request['title']) && !empty($request['title'])) ? $request['title'] : __('Related Listings', 'geodirectory');
|
|
705
|
3 |
|
$post_number = (isset($request['post_number']) && !empty($request['post_number'])) ? $request['post_number'] : '5';
|
|
706
|
3 |
|
$relate_to = (isset($request['relate_to']) && !empty($request['relate_to'])) ? $request['relate_to'] : 'category';
|
|
707
|
3 |
|
$layout = (isset($request['layout']) && !empty($request['layout'])) ? $request['layout'] : 'gridview_onehalf';
|
|
708
|
3 |
|
$add_location_filter = (isset($request['add_location_filter']) && !empty($request['add_location_filter'])) ? $request['add_location_filter'] : '0';
|
|
709
|
3 |
|
$listing_width = (isset($request['listing_width']) && !empty($request['listing_width'])) ? $request['listing_width'] : '';
|
|
710
|
3 |
|
$list_sort = (isset($request['list_sort']) && !empty($request['list_sort'])) ? $request['list_sort'] : 'latest';
|
|
711
|
3 |
|
$character_count = (isset($request['character_count']) && !empty($request['character_count'])) ? $request['character_count'] : '';
|
|
712
|
|
|
|
|
713
|
3 |
|
global $wpdb, $post, $gd_session;
|
|
714
|
3 |
|
$origi_post = $post;
|
|
715
|
3 |
|
$post_type = '';
|
|
716
|
3 |
|
$post_id = '';
|
|
717
|
3 |
|
$category_taxonomy = '';
|
|
718
|
3 |
|
$tax_field = 'id';
|
|
719
|
3 |
|
$category = array();
|
|
720
|
|
|
|
|
721
|
3 |
|
if (isset($_REQUEST['backandedit'])) {
|
|
722
|
|
|
$post = (object)$gd_session->get('listing');
|
|
723
|
|
|
$post_type = $post->listing_type;
|
|
724
|
|
|
if (isset($_REQUEST['pid']) && $_REQUEST['pid'] != '')
|
|
725
|
|
|
$post_id = $_REQUEST['pid'];
|
|
726
|
3 |
View Code Duplication |
} elseif (isset($_REQUEST['pid']) && $_REQUEST['pid'] != '') {
|
|
727
|
|
|
$post = geodir_get_post_info($_REQUEST['pid']);
|
|
728
|
|
|
$post_type = $post->post_type;
|
|
729
|
|
|
$post_id = $_REQUEST['pid'];
|
|
730
|
3 |
|
} elseif (isset($post->post_type) && $post->post_type != '') {
|
|
731
|
3 |
|
$post_type = $post->post_type;
|
|
732
|
3 |
|
$post_id = $post->ID;
|
|
733
|
3 |
|
}
|
|
734
|
|
|
|
|
735
|
3 |
|
if ($relate_to == 'category') {
|
|
736
|
|
|
|
|
737
|
3 |
|
$category_taxonomy = $post_type . $relate_to;
|
|
738
|
3 |
|
if (isset($post->{$category_taxonomy}) && $post->{$category_taxonomy} != '')
|
|
739
|
3 |
|
$category = explode(',', trim($post->{$category_taxonomy}, ','));
|
|
740
|
|
|
|
|
741
|
3 |
|
} elseif ($relate_to == 'tags') {
|
|
742
|
|
|
|
|
743
|
|
|
$category_taxonomy = $post_type . '_' . $relate_to;
|
|
744
|
|
|
if ($post->post_tags != '')
|
|
745
|
|
|
$category = explode(',', trim($post->post_tags, ','));
|
|
746
|
|
|
$tax_field = 'name';
|
|
747
|
|
|
}
|
|
748
|
|
|
|
|
749
|
|
|
/* --- return false in invalid request --- */
|
|
750
|
3 |
|
if (empty($category))
|
|
751
|
3 |
|
return false;
|
|
752
|
|
|
|
|
753
|
2 |
|
$all_postypes = geodir_get_posttypes();
|
|
754
|
|
|
|
|
755
|
2 |
|
if (!in_array($post_type, $all_postypes))
|
|
756
|
2 |
|
return false;
|
|
757
|
|
|
|
|
758
|
|
|
/* --- return false in invalid request --- */
|
|
759
|
|
|
|
|
760
|
2 |
|
$location_url = '';
|
|
761
|
2 |
|
if ($add_location_filter != '0') {
|
|
762
|
|
|
$location_url = array();
|
|
763
|
|
|
$geodir_show_location_url = get_option('geodir_show_location_url');
|
|
764
|
|
|
|
|
765
|
|
|
$gd_city = get_query_var('gd_city');
|
|
766
|
|
|
|
|
767
|
|
|
if ($gd_city) {
|
|
768
|
|
|
$gd_country = get_query_var('gd_country');
|
|
769
|
|
|
$gd_region = get_query_var('gd_region');
|
|
770
|
|
|
} else {
|
|
771
|
|
|
$location = geodir_get_default_location();
|
|
772
|
|
|
|
|
773
|
|
|
$gd_country = isset($location->country_slug) ? $location->country_slug : '';
|
|
774
|
|
|
$gd_region = isset($location->region_slug) ? $location->region_slug : '';
|
|
775
|
|
|
$gd_city = isset($location->city_slug) ? $location->city_slug : '';
|
|
776
|
|
|
}
|
|
777
|
|
|
|
|
778
|
|
|
if ($geodir_show_location_url == 'all') {
|
|
779
|
|
|
$location_url[] = $gd_country;
|
|
780
|
|
|
$location_url[] = $gd_region;
|
|
781
|
|
|
} else if ($geodir_show_location_url == 'country_city') {
|
|
782
|
|
|
$location_url[] = $gd_country;
|
|
783
|
|
|
} else if ($geodir_show_location_url == 'region_city') {
|
|
784
|
|
|
$location_url[] = $gd_region;
|
|
785
|
|
|
}
|
|
786
|
|
|
|
|
787
|
|
|
$location_url[] = $gd_city;
|
|
788
|
|
|
|
|
789
|
|
|
$location_url = implode('/', $location_url);
|
|
790
|
|
|
}
|
|
791
|
|
|
|
|
792
|
|
|
|
|
793
|
2 |
|
if (!empty($category)) {
|
|
794
|
2 |
|
global $geodir_add_location_url;
|
|
795
|
2 |
|
$geodir_add_location_url = '0';
|
|
796
|
2 |
|
if ($add_location_filter != '0') {
|
|
797
|
|
|
$geodir_add_location_url = '1';
|
|
798
|
|
|
}
|
|
799
|
2 |
|
$viewall_url = get_term_link((int)$category[0], $post_type . $category_taxonomy);
|
|
800
|
2 |
|
$geodir_add_location_url = NULL;
|
|
801
|
2 |
|
}
|
|
802
|
2 |
|
ob_start();
|
|
803
|
|
|
?>
|
|
804
|
|
|
|
|
805
|
|
|
|
|
806
|
|
|
<div class="geodir_locations geodir_location_listing">
|
|
807
|
|
|
|
|
808
|
|
|
<?php
|
|
809
|
2 |
|
if (isset($request['is_widget']) && $request['is_widget'] == '1') {
|
|
810
|
|
|
/** geodir_before_title filter Documented in geodirectory_widgets.php */
|
|
811
|
2 |
|
$before_title = isset($before_title) ? $before_title : apply_filters('geodir_before_title', '<h3 class="widget-title">');
|
|
812
|
|
|
/** geodir_after_title filter Documented in geodirectory_widgets.php */
|
|
813
|
2 |
|
$after_title = isset($after_title) ? $after_title : apply_filters('geodir_after_title', '</h3>');
|
|
814
|
|
|
?>
|
|
815
|
|
|
<div class="location_list_heading clearfix">
|
|
816
|
|
|
<?php echo $before_title . $title . $after_title; ?>
|
|
817
|
|
|
</div>
|
|
818
|
|
|
<?php
|
|
819
|
2 |
|
}
|
|
820
|
|
|
$query_args = array(
|
|
821
|
2 |
|
'posts_per_page' => $post_number,
|
|
822
|
2 |
|
'is_geodir_loop' => true,
|
|
823
|
2 |
|
'gd_location' => ($add_location_filter) ? true : false,
|
|
824
|
2 |
|
'post_type' => $post_type,
|
|
825
|
2 |
|
'order_by' => $list_sort,
|
|
826
|
2 |
|
'post__not_in' => array($post_id),
|
|
827
|
2 |
|
'excerpt_length' => $character_count,
|
|
828
|
2 |
|
);
|
|
829
|
|
|
|
|
830
|
2 |
|
$tax_query = array('taxonomy' => $category_taxonomy,
|
|
831
|
2 |
|
'field' => $tax_field,
|
|
832
|
|
|
'terms' => $category
|
|
833
|
2 |
|
);
|
|
834
|
|
|
|
|
835
|
2 |
|
$query_args['tax_query'] = array($tax_query);
|
|
836
|
|
|
|
|
837
|
|
|
|
|
838
|
2 |
|
global $gridview_columns, $post;
|
|
839
|
|
|
|
|
840
|
|
|
|
|
841
|
2 |
|
query_posts($query_args);
|
|
842
|
|
|
|
|
843
|
2 |
View Code Duplication |
if (strstr($layout, 'gridview')) {
|
|
844
|
2 |
|
$listing_view_exp = explode('_', $layout);
|
|
845
|
2 |
|
$gridview_columns = $layout;
|
|
846
|
2 |
|
$layout = $listing_view_exp[0];
|
|
847
|
2 |
|
} else if ($layout == 'list') {
|
|
848
|
|
|
$gridview_columns = '';
|
|
849
|
|
|
}
|
|
850
|
2 |
|
$related_posts = true;
|
|
851
|
|
|
|
|
852
|
|
|
/**
|
|
853
|
|
|
* Filters related listing listview template.
|
|
854
|
|
|
*
|
|
855
|
|
|
* @since 1.0.0
|
|
856
|
|
|
*/
|
|
857
|
2 |
|
$template = apply_filters("geodir_template_part-related-listing-listview", geodir_locate_template('listing-listview'));
|
|
858
|
|
|
|
|
859
|
|
|
/**
|
|
860
|
|
|
* Includes related listing listview template.
|
|
861
|
|
|
*
|
|
862
|
|
|
* @since 1.0.0
|
|
863
|
|
|
*/
|
|
864
|
2 |
|
include($template);
|
|
865
|
|
|
|
|
866
|
2 |
|
wp_reset_query();
|
|
867
|
2 |
|
$post = $origi_post;
|
|
868
|
|
|
?>
|
|
869
|
|
|
|
|
870
|
|
|
</div>
|
|
871
|
|
|
<?php
|
|
872
|
2 |
|
return $html = ob_get_clean();
|
|
|
|
|
|
|
873
|
|
|
|
|
874
|
|
|
}
|
|
875
|
|
|
|
|
876
|
|
|
}
|
|
877
|
|
|
|
|
878
|
|
|
|
|
879
|
|
|
//add_action('wp_footer', 'geodir_category_count_script', 10);
|
|
|
|
|
|
|
880
|
|
|
/**
|
|
881
|
|
|
* Adds the category post count javascript code
|
|
882
|
|
|
*
|
|
883
|
|
|
* @since 1.0.0
|
|
884
|
|
|
* @package GeoDirectory
|
|
885
|
|
|
* @global string $geodir_post_category_str The geodirectory post category.
|
|
886
|
|
|
* @depreciated No longer needed.
|
|
887
|
|
|
*/
|
|
888
|
|
|
function geodir_category_count_script()
|
|
889
|
|
|
{
|
|
890
|
|
|
global $geodir_post_category_str;
|
|
891
|
|
|
|
|
892
|
|
|
if (!empty($geodir_post_category_str)) {
|
|
893
|
|
|
$geodir_post_category_str = serialize($geodir_post_category_str);
|
|
894
|
|
|
}
|
|
895
|
|
|
|
|
896
|
|
|
$all_var['post_category_array'] = html_entity_decode((string)$geodir_post_category_str, ENT_QUOTES, 'UTF-8');
|
|
|
|
|
|
|
897
|
|
|
$script = "var post_category_array = " . json_encode($all_var) . ';';
|
|
898
|
|
|
echo '<script>';
|
|
899
|
|
|
echo $script;
|
|
900
|
|
|
echo '</script>';
|
|
901
|
|
|
|
|
902
|
|
|
}
|
|
903
|
|
|
|
|
904
|
|
|
/**
|
|
905
|
|
|
* Returns the default language of the map.
|
|
906
|
|
|
*
|
|
907
|
|
|
* @since 1.0.0
|
|
908
|
|
|
* @package GeoDirectory
|
|
909
|
|
|
* @return string Returns the default language.
|
|
910
|
|
|
*/
|
|
911
|
|
|
function geodir_get_map_default_language()
|
|
912
|
|
|
{
|
|
913
|
2 |
|
$geodir_default_map_language = get_option('geodir_default_map_language');
|
|
914
|
2 |
|
if (empty($geodir_default_map_language))
|
|
915
|
2 |
|
$geodir_default_map_language = 'en';
|
|
916
|
|
|
/**
|
|
917
|
|
|
* Filter default map language.
|
|
918
|
|
|
*
|
|
919
|
|
|
* @since 1.0.0
|
|
920
|
|
|
* @param string $geodir_default_map_language Default map language.
|
|
921
|
|
|
*/
|
|
922
|
2 |
|
return apply_filters('geodir_default_map_language', $geodir_default_map_language);
|
|
923
|
|
|
}
|
|
924
|
|
|
|
|
925
|
|
|
|
|
926
|
|
|
/**
|
|
927
|
|
|
* Adds meta keywords and description for SEO.
|
|
928
|
|
|
*
|
|
929
|
|
|
* @since 1.0.0
|
|
930
|
|
|
* @since 1.5.4 Modified to replace %location% from meta when Yoast SEO plugin active.
|
|
931
|
|
|
* @package GeoDirectory
|
|
932
|
|
|
* @global object $wpdb WordPress Database object.
|
|
933
|
|
|
* @global object $post The current post object.
|
|
934
|
|
|
* @global object $wp_query WordPress Query object.
|
|
935
|
|
|
* @global array $geodir_addon_list List of active GeoDirectory extensions.
|
|
936
|
|
|
*/
|
|
937
|
|
|
function geodir_add_meta_keywords()
|
|
938
|
|
|
{
|
|
939
|
2 |
|
global $wp, $post, $wp_query, $wpdb, $geodir_addon_list;
|
|
940
|
|
|
|
|
941
|
2 |
|
$is_geodir_page = geodir_is_geodir_page();
|
|
942
|
2 |
|
if (!$is_geodir_page) {
|
|
943
|
2 |
|
return;
|
|
944
|
|
|
}// if non GD page, bail
|
|
945
|
|
|
|
|
946
|
|
|
$use_gd_meta = true;
|
|
947
|
|
|
if (class_exists('WPSEO_Frontend') || class_exists('All_in_One_SEO_Pack')) {
|
|
948
|
|
|
$use_gd_meta = false;
|
|
949
|
|
|
|
|
950
|
|
|
if (geodir_is_page('search')) {
|
|
951
|
|
|
$use_gd_meta = true;
|
|
952
|
|
|
}
|
|
953
|
|
|
}
|
|
954
|
|
|
|
|
955
|
|
|
if (!$use_gd_meta) {
|
|
956
|
|
|
return;
|
|
957
|
|
|
}// bail if Yoast Wordpress SEO or All_in_One_SEO_Pack active.
|
|
958
|
|
|
|
|
959
|
|
|
$current_term = $wp_query->get_queried_object();
|
|
960
|
|
|
|
|
961
|
|
|
$all_postypes = geodir_get_posttypes();
|
|
962
|
|
|
|
|
963
|
|
|
$geodir_taxonomies = geodir_get_taxonomies('', true);
|
|
964
|
|
|
|
|
965
|
|
|
$meta_desc = '';
|
|
966
|
|
|
$meta_key = '';
|
|
967
|
|
|
if (isset($current_term->ID) && $current_term->ID == geodir_location_page_id()) {
|
|
968
|
|
|
/**
|
|
969
|
|
|
* Filter SEO meta location description.
|
|
970
|
|
|
*
|
|
971
|
|
|
* @since 1.0.0
|
|
972
|
|
|
*/
|
|
973
|
|
|
$meta_desc = apply_filters('geodir_seo_meta_location_description', '');
|
|
974
|
|
|
$meta_desc .= '';
|
|
975
|
|
|
}
|
|
976
|
|
|
if (have_posts() && is_single() OR is_page()) {
|
|
977
|
|
|
while (have_posts()) {
|
|
978
|
|
|
the_post();
|
|
979
|
|
|
|
|
980
|
|
|
if (has_excerpt()) {
|
|
981
|
|
|
$out_excerpt = strip_tags(strip_shortcodes(get_the_excerpt()));
|
|
982
|
|
|
if (empty($out_excerpt)) {
|
|
983
|
|
|
$out_excerpt = strip_tags(do_shortcode(get_the_excerpt()));
|
|
984
|
|
|
}
|
|
985
|
|
|
$out_excerpt = str_replace(array("\r\n", "\r", "\n"), "", $out_excerpt);
|
|
986
|
|
|
} else {
|
|
987
|
|
|
$out_excerpt = str_replace(array("\r\n", "\r", "\n"), "", $post->post_content);
|
|
988
|
|
|
$out_excerpt = strip_tags(strip_shortcodes($out_excerpt));
|
|
989
|
|
|
if (empty($out_excerpt)) {
|
|
990
|
|
|
$out_excerpt = strip_tags(do_shortcode($out_excerpt)); // parse short code from content
|
|
991
|
|
|
}
|
|
992
|
|
|
$out_excerpt = trim(wp_trim_words($out_excerpt, 35, ''), '.!?,;:-');
|
|
993
|
|
|
}
|
|
994
|
|
|
|
|
995
|
|
|
$meta_desc .= $out_excerpt;
|
|
996
|
|
|
}
|
|
997
|
|
|
} elseif ((is_category() || is_tag()) && isset($current_term->taxonomy) && in_array($current_term->taxonomy, $geodir_taxonomies)) {
|
|
998
|
|
|
if (is_category()) {
|
|
999
|
|
|
$meta_desc .= __("Posts related to Category:", 'geodirectory') . " " . ucfirst(single_cat_title("", FALSE));
|
|
1000
|
|
|
} elseif (is_tag()) {
|
|
1001
|
|
|
$meta_desc .= __("Posts related to Tag:", 'geodirectory') . " " . ucfirst(single_tag_title("", FALSE));
|
|
1002
|
|
|
}
|
|
1003
|
|
|
} elseif (isset($current_term->taxonomy) && in_array($current_term->taxonomy, $geodir_taxonomies)) {
|
|
1004
|
|
|
$meta_desc .= isset($current_term->description) ? $current_term->description : '';
|
|
1005
|
|
|
}
|
|
1006
|
|
|
|
|
1007
|
|
|
|
|
1008
|
|
|
$geodir_post_type = geodir_get_current_posttype();
|
|
1009
|
|
|
$geodir_post_type_info = get_post_type_object($geodir_post_type);
|
|
1010
|
|
|
$geodir_is_page_listing = geodir_is_page('listing') ? true : false;
|
|
1011
|
|
|
|
|
1012
|
|
|
$category_taxonomy = geodir_get_taxonomies($geodir_post_type);
|
|
1013
|
|
|
$tag_taxonomy = geodir_get_taxonomies($geodir_post_type, true);
|
|
1014
|
|
|
|
|
1015
|
|
|
$geodir_is_category = isset($category_taxonomy[0]) && get_query_var($category_taxonomy[0]) ? get_query_var($category_taxonomy[0]) : false;
|
|
1016
|
|
|
$geodir_is_tag = isset($tag_taxonomy[0]) && get_query_var($tag_taxonomy[0]) ? true : false;
|
|
1017
|
|
|
|
|
1018
|
|
|
$geodir_is_search = geodir_is_page('search') ? true : false;
|
|
1019
|
|
|
$geodir_is_location = geodir_is_page('location') ? true : false;
|
|
|
|
|
|
|
1020
|
|
|
$geodir_location_manager = isset($geodir_addon_list['geodir_location_manager']) && $geodir_addon_list['geodir_location_manager'] = 'yes' ? true : false;
|
|
1021
|
|
|
$godir_location_terms = geodir_get_current_location_terms('query_vars');
|
|
1022
|
|
|
$gd_city = $geodir_location_manager && isset($godir_location_terms['gd_city']) ? $godir_location_terms['gd_city'] : NULL;
|
|
1023
|
|
|
$gd_region = $geodir_location_manager && isset($godir_location_terms['gd_region']) ? $godir_location_terms['gd_region'] : NULL;
|
|
|
|
|
|
|
1024
|
|
|
$gd_country = $geodir_location_manager && isset($godir_location_terms['gd_country']) ? $godir_location_terms['gd_country'] : NULL;
|
|
|
|
|
|
|
1025
|
|
|
$replace_location = __('Everywhere', 'geodirectory');
|
|
1026
|
|
|
$location_id = NULL;
|
|
1027
|
|
|
if ($geodir_location_manager) {
|
|
1028
|
|
|
$sql = $wpdb->prepare("SELECT location_id FROM " . POST_LOCATION_TABLE . " WHERE city_slug=%s ORDER BY location_id ASC LIMIT 1", array($gd_city));
|
|
1029
|
|
|
$location_id = (int)$wpdb->get_var($sql);
|
|
1030
|
|
|
$location_type = geodir_what_is_current_location();
|
|
1031
|
|
|
if ($location_type == 'city') {
|
|
1032
|
|
|
$replace_location = geodir_get_current_location(array('what' => 'city', 'echo' => false));
|
|
1033
|
|
|
} elseif ($location_type == 'region') {
|
|
1034
|
|
|
$replace_location = geodir_get_current_location(array('what' => 'region', 'echo' => false));
|
|
1035
|
|
|
} elseif ($location_type == 'country') {
|
|
1036
|
|
|
$replace_location = geodir_get_current_location(array('what' => 'country', 'echo' => false));
|
|
1037
|
|
|
$replace_location = __($replace_location, 'geodirectory');
|
|
1038
|
|
|
}
|
|
1039
|
|
|
$country = get_query_var('gd_country');
|
|
1040
|
|
|
$region = get_query_var('gd_region');
|
|
1041
|
|
|
$city = get_query_var('gd_city');
|
|
1042
|
|
|
$current_location = '';
|
|
1043
|
|
|
if ($country != '') {
|
|
1044
|
|
|
$current_location = get_actual_location_name('country', $country, true);
|
|
1045
|
|
|
}
|
|
1046
|
|
|
if ($region != '') {
|
|
1047
|
|
|
$current_location = get_actual_location_name('region', $region);
|
|
1048
|
|
|
}
|
|
1049
|
|
|
if ($city != '') {
|
|
1050
|
|
|
$current_location = get_actual_location_name('city', $city);
|
|
1051
|
|
|
}
|
|
1052
|
|
|
$replace_location = $current_location != '' ? $current_location : $replace_location;
|
|
1053
|
|
|
}
|
|
1054
|
|
|
|
|
1055
|
|
|
$geodir_meta_keys = '';
|
|
1056
|
|
|
$geodir_meta_desc = '';
|
|
1057
|
|
|
if ($is_geodir_page && !empty($geodir_post_type_info)) {
|
|
1058
|
|
|
if ($geodir_is_page_listing || $geodir_is_search || geodir_is_page('add-listing')) {
|
|
1059
|
|
|
$geodir_meta_keys = isset($geodir_post_type_info->seo['meta_keyword']) && $geodir_post_type_info->seo['meta_keyword'] != '' ? $geodir_post_type_info->seo['meta_keyword'] : $geodir_meta_keys;
|
|
1060
|
|
|
|
|
1061
|
|
|
$geodir_meta_desc = isset($geodir_post_type_info->description) ? $geodir_post_type_info->description : $geodir_meta_desc;
|
|
1062
|
|
|
$geodir_meta_desc = isset($geodir_post_type_info->seo['meta_description']) && $geodir_post_type_info->seo['meta_description'] != '' ? $geodir_post_type_info->seo['meta_description'] : $geodir_meta_desc;
|
|
1063
|
|
|
|
|
1064
|
|
|
if ($geodir_is_category) {
|
|
1065
|
|
|
$category = $geodir_is_category ? get_term_by('slug', $geodir_is_category, $category_taxonomy[0]) : NULL;
|
|
1066
|
|
|
if (isset($category->term_id) && !empty($category->term_id)) {
|
|
1067
|
|
|
$category_id = $category->term_id;
|
|
1068
|
|
|
$category_desc = trim($category->description) != '' ? trim($category->description) : get_tax_meta($category_id, 'ct_cat_top_desc', false, $geodir_post_type);
|
|
1069
|
|
|
if ($location_id) {
|
|
|
|
|
|
|
1070
|
|
|
$option_name = 'geodir_cat_loc_' . $geodir_post_type . '_' . $category_id;
|
|
1071
|
|
|
$cat_loc_option = get_option($option_name);
|
|
1072
|
|
|
|
|
1073
|
|
|
$gd_cat_loc_default = !empty($cat_loc_option) && isset($cat_loc_option['gd_cat_loc_default']) && $cat_loc_option['gd_cat_loc_default'] > 0 ? true : false;
|
|
1074
|
|
|
if (!$gd_cat_loc_default) {
|
|
1075
|
|
|
$option_name = 'geodir_cat_loc_' . $geodir_post_type . '_' . $category_id . '_' . $location_id;
|
|
1076
|
|
|
$option = get_option($option_name);
|
|
1077
|
|
|
$category_desc = isset($option['gd_cat_loc_desc']) && trim($option['gd_cat_loc_desc']) != '' ? trim($option['gd_cat_loc_desc']) : $category_desc;
|
|
1078
|
|
|
}
|
|
1079
|
|
|
}
|
|
1080
|
|
|
$geodir_meta_desc = __("Posts related to Category:", 'geodirectory') . " " . ucfirst(single_cat_title("", FALSE)) . '. ' . $category_desc;
|
|
|
|
|
|
|
1081
|
|
|
}
|
|
1082
|
|
|
} else if ($geodir_is_tag) {
|
|
1083
|
|
|
$geodir_meta_desc = __("Posts related to Tag:", 'geodirectory') . " " . ucfirst(single_tag_title("", FALSE)) . '. ' . $geodir_meta_desc;
|
|
|
|
|
|
|
1084
|
|
|
}
|
|
1085
|
|
|
}
|
|
1086
|
|
|
}
|
|
1087
|
|
|
|
|
1088
|
|
|
|
|
1089
|
|
|
$gd_page = '';
|
|
1090
|
|
View Code Duplication |
if(geodir_is_page('home')){
|
|
1091
|
|
|
$gd_page = 'home';
|
|
1092
|
|
|
$meta_desc = (get_option('geodir_meta_desc_homepage')) ? get_option('geodir_meta_desc_homepage') : $meta_desc;
|
|
1093
|
|
|
}
|
|
1094
|
|
|
elseif(geodir_is_page('detail')){
|
|
1095
|
|
|
$gd_page = 'detail';
|
|
1096
|
|
|
$meta_desc = (get_option('geodir_meta_desc_detail')) ? get_option('geodir_meta_desc_detail') : $meta_desc;
|
|
1097
|
|
|
}
|
|
1098
|
|
|
elseif(geodir_is_page('pt')){
|
|
1099
|
|
|
$gd_page = 'pt';
|
|
1100
|
|
|
$meta_desc = (get_option('geodir_meta_desc_pt')) ? get_option('geodir_meta_desc_pt') : $meta_desc;
|
|
1101
|
|
|
}
|
|
1102
|
|
|
elseif(geodir_is_page('listing')){
|
|
1103
|
|
|
$gd_page = 'listing';
|
|
1104
|
|
|
$meta_desc = (get_option('geodir_meta_desc_listing')) ? get_option('geodir_meta_desc_listing') : $meta_desc;
|
|
1105
|
|
|
}
|
|
1106
|
|
|
elseif(geodir_is_page('location')){
|
|
1107
|
|
|
$gd_page = 'location';
|
|
1108
|
|
|
$meta_desc = (get_option('geodir_meta_desc_location')) ? get_option('geodir_meta_desc_location') : $meta_desc;
|
|
1109
|
|
|
$meta_desc = apply_filters('geodir_seo_meta_location_description', $meta_desc);
|
|
1110
|
|
|
|
|
1111
|
|
|
}
|
|
1112
|
|
|
elseif(geodir_is_page('search')){
|
|
1113
|
|
|
$gd_page = 'search';
|
|
1114
|
|
|
$meta_desc = (get_option('geodir_meta_desc_search')) ? get_option('geodir_meta_desc_search') : $meta_desc;
|
|
1115
|
|
|
}
|
|
1116
|
|
|
elseif(geodir_is_page('add-listing')){
|
|
1117
|
|
|
$gd_page = 'add-listing';
|
|
1118
|
|
|
$meta_desc = (get_option('geodir_meta_desc_add-listing')) ? get_option('geodir_meta_desc_add-listing') : $meta_desc;
|
|
1119
|
|
|
}
|
|
1120
|
|
|
elseif(geodir_is_page('author')){
|
|
1121
|
|
|
$gd_page = 'author';
|
|
1122
|
|
|
$meta_desc = (get_option('geodir_meta_desc_author')) ? get_option('geodir_meta_desc_author') : $meta_desc;
|
|
1123
|
|
|
}
|
|
1124
|
|
|
elseif(geodir_is_page('login')){
|
|
1125
|
|
|
$gd_page = 'login';
|
|
1126
|
|
|
$meta_desc = (get_option('geodir_meta_desc_login')) ? get_option('geodir_meta_desc_login') : $meta_desc;
|
|
1127
|
|
|
}
|
|
1128
|
|
|
elseif(geodir_is_page('listing-success')){
|
|
1129
|
|
|
$gd_page = 'listing-success';
|
|
1130
|
|
|
$meta_desc = (get_option('geodir_meta_desc_listing-success')) ? get_option('geodir_meta_desc_listing-success') : $meta_desc;
|
|
1131
|
|
|
}
|
|
1132
|
|
|
|
|
1133
|
|
|
|
|
1134
|
|
|
/*
|
|
|
|
|
|
|
1135
|
|
|
$geodir_meta_desc = $geodir_meta_desc != '' ? $geodir_meta_desc : $meta_desc;
|
|
1136
|
|
|
if ($geodir_meta_desc != '') {
|
|
1137
|
|
|
$geodir_meta_desc = strip_tags($geodir_meta_desc);
|
|
1138
|
|
|
$geodir_meta_desc = esc_html($geodir_meta_desc);
|
|
1139
|
|
|
$geodir_meta_desc = wp_html_excerpt($geodir_meta_desc, 1000, '.');
|
|
1140
|
|
|
$geodir_meta_desc = isset($replace_location) ? str_replace('%location%', $replace_location, $geodir_meta_desc) : $geodir_meta_desc;
|
|
1141
|
|
|
|
|
1142
|
|
|
$meta_desc = $geodir_meta_desc != '' ? $geodir_meta_desc : $meta_desc;
|
|
1143
|
|
|
}
|
|
1144
|
|
|
*/
|
|
1145
|
|
|
|
|
1146
|
|
|
|
|
1147
|
|
|
if ($meta_desc) {
|
|
1148
|
|
|
$meta_desc = stripslashes_deep($meta_desc);
|
|
1149
|
|
|
/**
|
|
1150
|
|
|
* Filter page description to replace variables.
|
|
1151
|
|
|
*
|
|
1152
|
|
|
* @since 1.5.4
|
|
1153
|
|
|
* @param string $title The page description including variables.
|
|
1154
|
|
|
* @param string $gd_page The GeoDirectory page type if any.
|
|
1155
|
|
|
*/
|
|
1156
|
|
|
$meta_desc = apply_filters('geodir_seo_meta_description_pre', __($meta_desc, 'geodirectory'),$gd_page,'');
|
|
1157
|
|
|
|
|
1158
|
|
|
/**
|
|
1159
|
|
|
* Filter SEO meta description.
|
|
1160
|
|
|
*
|
|
1161
|
|
|
* @since 1.0.0
|
|
1162
|
|
|
* @param string $meta_desc Meta description content.
|
|
1163
|
|
|
*/
|
|
1164
|
|
|
echo apply_filters('geodir_seo_meta_description', '<meta name="description" content="' . $meta_desc . '" />', $meta_desc);
|
|
1165
|
|
|
}
|
|
1166
|
|
|
|
|
1167
|
|
|
// meta keywords
|
|
1168
|
|
|
if (isset($post->post_type) && in_array($post->post_type, $all_postypes)) {
|
|
1169
|
|
|
$place_tags = wp_get_post_terms($post->ID, $post->post_type . '_tags', array("fields" => "names"));
|
|
1170
|
|
|
$place_cats = wp_get_post_terms($post->ID, $post->post_type . 'category', array("fields" => "names"));
|
|
1171
|
|
|
|
|
1172
|
|
|
$meta_key .= implode(", ", array_merge((array)$place_cats, (array)$place_tags));
|
|
1173
|
|
|
} else {
|
|
1174
|
|
|
$posttags = get_the_tags();
|
|
1175
|
|
|
if ($posttags) {
|
|
1176
|
|
|
foreach ($posttags as $tag) {
|
|
1177
|
|
|
$meta_key .= $tag->name . ' ';
|
|
1178
|
|
|
}
|
|
1179
|
|
|
} else {
|
|
1180
|
|
|
$tags = get_tags(array('orderby' => 'count', 'order' => 'DESC'));
|
|
1181
|
|
|
$xt = 1;
|
|
1182
|
|
|
|
|
1183
|
|
|
foreach ($tags as $tag) {
|
|
1184
|
|
|
if ($xt <= 20) {
|
|
1185
|
|
|
$meta_key .= $tag->name . ", ";
|
|
1186
|
|
|
}
|
|
1187
|
|
|
|
|
1188
|
|
|
$xt++;
|
|
1189
|
|
|
}
|
|
1190
|
|
|
}
|
|
1191
|
|
|
}
|
|
1192
|
|
|
|
|
1193
|
|
|
$meta_key = $meta_key != '' ? rtrim(trim($meta_key), ",") : $meta_key;
|
|
1194
|
|
|
$geodir_meta_keys = $geodir_meta_keys != '' ? ($meta_key != '' ? $meta_key . ', ' . $geodir_meta_keys : $geodir_meta_keys) : $meta_key;
|
|
1195
|
|
|
if ($geodir_meta_keys != '') {
|
|
1196
|
|
|
$geodir_meta_keys = strip_tags($geodir_meta_keys);
|
|
1197
|
|
|
$geodir_meta_keys = esc_html($geodir_meta_keys);
|
|
1198
|
|
|
$geodir_meta_keys = geodir_strtolower($geodir_meta_keys);
|
|
1199
|
|
|
$geodir_meta_keys = wp_html_excerpt($geodir_meta_keys, 1000, '');
|
|
1200
|
|
|
$geodir_meta_keys = str_replace('%location%', $replace_location, $geodir_meta_keys);
|
|
1201
|
|
|
|
|
1202
|
|
|
$meta_key = rtrim(trim($geodir_meta_keys), ",");
|
|
1203
|
|
|
}
|
|
1204
|
|
|
|
|
1205
|
|
|
if ($meta_key) {
|
|
1206
|
|
|
$meta_key = stripslashes_deep($meta_key);
|
|
1207
|
|
|
/**
|
|
1208
|
|
|
* Filter SEO meta keywords.
|
|
1209
|
|
|
*
|
|
1210
|
|
|
* @since 1.0.0
|
|
1211
|
|
|
* @param string $meta_desc Meta keywords.
|
|
1212
|
|
|
*/
|
|
1213
|
|
|
echo apply_filters('geodir_seo_meta_keywords', '<meta name="keywords" content="' . $meta_key . '" />', $meta_key);
|
|
1214
|
|
|
}
|
|
1215
|
|
|
|
|
1216
|
|
|
}
|
|
1217
|
|
|
|
|
1218
|
|
|
/**
|
|
1219
|
|
|
* Returns list of options available for "Detail page tab settings"
|
|
1220
|
|
|
*
|
|
1221
|
|
|
* Options will be populated here. WP Admin -> Geodirectory -> Design -> Detail -> Detail page tab settings -> Exclude selected tabs from detail page
|
|
1222
|
|
|
*
|
|
1223
|
|
|
* @since 1.0.0
|
|
1224
|
|
|
* @package GeoDirectory
|
|
1225
|
|
|
* @return array eturns list of options available as an array.
|
|
1226
|
|
|
*/
|
|
1227
|
|
|
function geodir_detail_page_tabs_key_value_array()
|
|
1228
|
|
|
{
|
|
1229
|
|
|
$geodir_detail_page_tabs_key_value_array = array();
|
|
1230
|
|
|
|
|
1231
|
|
|
$geodir_detail_page_tabs_array = geodir_detail_page_tabs_array();
|
|
1232
|
|
|
|
|
1233
|
|
|
foreach ($geodir_detail_page_tabs_array as $key => $tabs_obj) {
|
|
1234
|
|
|
$geodir_detail_page_tabs_key_value_array[$key] = $tabs_obj['heading_text'];
|
|
1235
|
|
|
}
|
|
1236
|
|
|
return $geodir_detail_page_tabs_key_value_array;
|
|
1237
|
|
|
}
|
|
1238
|
|
|
|
|
1239
|
|
|
/**
|
|
1240
|
|
|
* Build and return the list of available tabs as an array.
|
|
1241
|
|
|
*
|
|
1242
|
|
|
* @since 1.0.0
|
|
1243
|
|
|
* @package GeoDirectory
|
|
1244
|
|
|
* @return mixed|array Tabs array.
|
|
1245
|
|
|
*/
|
|
1246
|
|
|
function geodir_detail_page_tabs_array()
|
|
1247
|
|
|
{
|
|
1248
|
|
|
|
|
1249
|
1 |
|
$arr_tabs = array();
|
|
1250
|
|
|
/**
|
|
1251
|
|
|
* Filter detail page tab display.
|
|
1252
|
|
|
*
|
|
1253
|
|
|
* @since 1.0.0
|
|
1254
|
|
|
*/
|
|
1255
|
1 |
|
$arr_tabs['post_profile'] = array(
|
|
1256
|
1 |
|
'heading_text' => __('Profile', 'geodirectory'),
|
|
1257
|
1 |
|
'is_active_tab' => true,
|
|
1258
|
1 |
|
'is_display' => apply_filters('geodir_detail_page_tab_is_display', true, 'post_profile'),
|
|
1259
|
|
|
'tab_content' => ''
|
|
1260
|
1 |
|
);
|
|
1261
|
1 |
|
$arr_tabs['post_info'] = array(
|
|
1262
|
1 |
|
'heading_text' => __('More Info', 'geodirectory'),
|
|
1263
|
1 |
|
'is_active_tab' => false,
|
|
1264
|
1 |
|
'is_display' => apply_filters('geodir_detail_page_tab_is_display', true, 'post_info'),
|
|
1265
|
|
|
'tab_content' => ''
|
|
1266
|
1 |
|
);
|
|
1267
|
|
|
|
|
1268
|
1 |
|
$arr_tabs['post_images'] = array(
|
|
1269
|
1 |
|
'heading_text' => __('Photo', 'geodirectory'),
|
|
1270
|
1 |
|
'is_active_tab' => false,
|
|
1271
|
1 |
|
'is_display' => apply_filters('geodir_detail_page_tab_is_display', true, 'post_images'),
|
|
1272
|
|
|
'tab_content' => ''
|
|
1273
|
1 |
|
);
|
|
1274
|
|
|
|
|
1275
|
1 |
|
$arr_tabs['post_video'] = array(
|
|
1276
|
1 |
|
'heading_text' => __('Video', 'geodirectory'),
|
|
1277
|
1 |
|
'is_active_tab' => false,
|
|
1278
|
1 |
|
'is_display' => apply_filters('geodir_detail_page_tab_is_display', true, 'post_video'),
|
|
1279
|
|
|
'tab_content' => ''
|
|
1280
|
1 |
|
);
|
|
1281
|
|
|
|
|
1282
|
1 |
|
$arr_tabs['special_offers'] = array(
|
|
1283
|
1 |
|
'heading_text' => __('Special Offers', 'geodirectory'),
|
|
1284
|
1 |
|
'is_active_tab' => false,
|
|
1285
|
1 |
|
'is_display' => apply_filters('geodir_detail_page_tab_is_display', true, 'special_offers'),
|
|
1286
|
|
|
'tab_content' => ''
|
|
1287
|
1 |
|
);
|
|
1288
|
|
|
|
|
1289
|
1 |
|
$arr_tabs['post_map'] = array(
|
|
1290
|
1 |
|
'heading_text' => __('Map', 'geodirectory'),
|
|
1291
|
1 |
|
'is_active_tab' => false,
|
|
1292
|
1 |
|
'is_display' => apply_filters('geodir_detail_page_tab_is_display', true, 'post_map'),
|
|
1293
|
|
|
'tab_content' => ''
|
|
1294
|
1 |
|
);
|
|
1295
|
|
|
|
|
1296
|
1 |
|
$arr_tabs['reviews'] = array(
|
|
1297
|
1 |
|
'heading_text' => __('Reviews', 'geodirectory'),
|
|
1298
|
1 |
|
'is_active_tab' => false,
|
|
1299
|
1 |
|
'is_display' => apply_filters('geodir_detail_page_tab_is_display', true, 'reviews'),
|
|
1300
|
|
|
'tab_content' => 'review display'
|
|
1301
|
1 |
|
);
|
|
1302
|
|
|
|
|
1303
|
1 |
|
$arr_tabs['related_listing'] = array(
|
|
1304
|
1 |
|
'heading_text' => __('Related Listing', 'geodirectory'),
|
|
1305
|
1 |
|
'is_active_tab' => false,
|
|
1306
|
1 |
|
'is_display' => apply_filters('geodir_detail_page_tab_is_display', true, 'related_listing'),
|
|
1307
|
|
|
'tab_content' => ''
|
|
1308
|
1 |
|
);
|
|
1309
|
|
|
|
|
1310
|
|
|
/**
|
|
1311
|
|
|
* Filter the tabs array.
|
|
1312
|
|
|
*
|
|
1313
|
|
|
* @since 1.0.0
|
|
1314
|
|
|
*/
|
|
1315
|
1 |
|
return apply_filters('geodir_detail_page_tab_list_extend', $arr_tabs);
|
|
1316
|
|
|
|
|
1317
|
|
|
|
|
1318
|
|
|
}
|
|
1319
|
|
|
|
|
1320
|
|
|
|
|
1321
|
|
|
/**
|
|
1322
|
|
|
* Returns the list of tabs available as an array.
|
|
1323
|
|
|
*
|
|
1324
|
|
|
* @since 1.0.0
|
|
1325
|
|
|
* @package GeoDirectory
|
|
1326
|
|
|
* @return mixed|array Tabs array.
|
|
1327
|
|
|
*/
|
|
1328
|
|
|
function geodir_detail_page_tabs_list()
|
|
1329
|
|
|
{
|
|
1330
|
1 |
|
$tabs_excluded = get_option('geodir_detail_page_tabs_excluded');
|
|
1331
|
1 |
|
$tabs_array = geodir_detail_page_tabs_array();
|
|
1332
|
1 |
|
if (!empty($tabs_excluded)) {
|
|
1333
|
1 |
|
foreach ($tabs_excluded as $tab) {
|
|
1334
|
1 |
|
if (array_key_exists($tab, $tabs_array))
|
|
1335
|
1 |
|
unset($tabs_array[$tab]);
|
|
1336
|
1 |
|
}
|
|
1337
|
1 |
|
}
|
|
1338
|
1 |
|
return $tabs_array;
|
|
1339
|
|
|
}
|
|
1340
|
|
|
|
|
1341
|
|
|
|
|
1342
|
|
|
/**
|
|
1343
|
|
|
* The main function responsible for displaying tabs in frontend detail page.
|
|
1344
|
|
|
*
|
|
1345
|
|
|
* @since 1.0.0
|
|
1346
|
|
|
* @package GeoDirectory
|
|
1347
|
|
|
* @global object $post The current post object.
|
|
1348
|
|
|
* @global array $post_images List of images attached to the post.
|
|
1349
|
|
|
* @global string $video The video embed content.
|
|
1350
|
|
|
* @global string $special_offers Special offers content.
|
|
1351
|
|
|
* @global string $related_listing Related listing html.
|
|
1352
|
|
|
* @global string $geodir_post_detail_fields Detail field html.
|
|
1353
|
|
|
*/
|
|
1354
|
|
|
function geodir_show_detail_page_tabs()
|
|
1355
|
|
|
{
|
|
1356
|
1 |
|
global $post, $post_images, $video, $special_offers, $related_listing, $geodir_post_detail_fields;
|
|
1357
|
|
|
|
|
1358
|
1 |
|
$post_id = !empty($post) && isset($post->ID) ? (int)$post->ID : 0;
|
|
1359
|
1 |
|
$request_post_id = !empty($_REQUEST['p']) ? (int)$_REQUEST['p'] : 0;
|
|
1360
|
1 |
|
$is_backend_preview = (is_single() && !empty($_REQUEST['post_type']) && !empty($_REQUEST['preview']) && !empty($_REQUEST['p'])) && is_super_admin() ? true : false; // skip if preview from backend
|
|
1361
|
|
|
|
|
1362
|
1 |
|
if ($is_backend_preview && !$post_id > 0 && $request_post_id > 0) {
|
|
1363
|
|
|
$post = geodir_get_post_info($request_post_id);
|
|
1364
|
|
|
setup_postdata($post);
|
|
1365
|
|
|
}
|
|
1366
|
|
|
|
|
1367
|
1 |
|
$geodir_post_detail_fields = geodir_show_listing_info('detail');
|
|
1368
|
|
|
|
|
1369
|
1 |
|
if (geodir_is_page('detail')) {
|
|
1370
|
1 |
|
$video = geodir_get_video($post->ID);
|
|
1371
|
1 |
|
$special_offers = geodir_get_special_offers($post->ID);
|
|
1372
|
1 |
|
$related_listing_array = array();
|
|
1373
|
1 |
|
if (get_option('geodir_add_related_listing_posttypes'))
|
|
1374
|
1 |
|
$related_listing_array = get_option('geodir_add_related_listing_posttypes');
|
|
1375
|
|
|
|
|
1376
|
1 |
|
$related_listing = '';
|
|
1377
|
1 |
|
if (in_array($post->post_type, $related_listing_array)) {
|
|
1378
|
1 |
|
$request = array('post_number' => get_option('geodir_related_post_count'),
|
|
1379
|
1 |
|
'relate_to' => get_option('geodir_related_post_relate_to'),
|
|
1380
|
1 |
|
'layout' => get_option('geodir_related_post_listing_view'),
|
|
1381
|
1 |
|
'add_location_filter' => get_option('geodir_related_post_location_filter'),
|
|
1382
|
1 |
|
'list_sort' => get_option('geodir_related_post_sortby'),
|
|
1383
|
1 |
|
'character_count' => get_option('geodir_related_post_excerpt'));
|
|
1384
|
|
|
|
|
1385
|
1 |
|
$related_listing = geodir_related_posts_display($request);
|
|
1386
|
1 |
|
}
|
|
1387
|
|
|
|
|
1388
|
1 |
|
$post_images = geodir_get_images($post->ID, 'thumbnail');
|
|
1389
|
1 |
|
$thumb_image = '';
|
|
1390
|
1 |
|
if (!empty($post_images)) {
|
|
1391
|
1 |
|
foreach ($post_images as $image) {
|
|
|
|
|
|
|
1392
|
1 |
|
$caption = (!empty($image->caption)) ? $image->caption : '';
|
|
1393
|
1 |
|
$thumb_image .= '<a href="' . $image->src . '" title="'.$caption.'">';
|
|
1394
|
1 |
|
$thumb_image .= geodir_show_image($image, 'thumbnail', true, false);
|
|
1395
|
1 |
|
$thumb_image .= '</a>';
|
|
1396
|
1 |
|
}
|
|
1397
|
1 |
|
}
|
|
1398
|
|
|
|
|
1399
|
1 |
|
$map_args = array();
|
|
1400
|
1 |
|
$map_args['map_canvas_name'] = 'detail_page_map_canvas';
|
|
1401
|
1 |
|
$map_args['width'] = '600';
|
|
1402
|
1 |
|
$map_args['height'] = '300';
|
|
1403
|
1 |
|
if ($post->post_mapzoom) {
|
|
1404
|
|
|
$map_args['zoom'] = '' . $post->post_mapzoom . '';
|
|
1405
|
|
|
}
|
|
1406
|
1 |
|
$map_args['autozoom'] = false;
|
|
1407
|
1 |
|
$map_args['child_collapse'] = '0';
|
|
1408
|
1 |
|
$map_args['enable_cat_filters'] = false;
|
|
1409
|
1 |
|
$map_args['enable_text_search'] = false;
|
|
1410
|
1 |
|
$map_args['enable_post_type_filters'] = false;
|
|
1411
|
1 |
|
$map_args['enable_location_filters'] = false;
|
|
1412
|
1 |
|
$map_args['enable_jason_on_load'] = true;
|
|
1413
|
1 |
|
$map_args['enable_map_direction'] = true;
|
|
1414
|
1 |
|
$map_args['map_class_name'] = 'geodir-map-detail-page';
|
|
1415
|
1 |
|
$map_args['maptype'] = (!empty($post->post_mapview)) ? $post->post_mapview : 'ROADMAP';
|
|
1416
|
1 |
|
} else if (geodir_is_page('preview')) {
|
|
1417
|
|
|
$video = isset($post->geodir_video) ? $post->geodir_video : '';
|
|
1418
|
|
|
$special_offers = isset($post->geodir_special_offers) ? $post->geodir_special_offers : '';
|
|
1419
|
|
|
|
|
1420
|
|
|
if (isset($post->post_images))
|
|
1421
|
|
|
$post->post_images = trim($post->post_images, ",");
|
|
1422
|
|
|
|
|
1423
|
|
|
if (isset($post->post_images) && !empty($post->post_images))
|
|
1424
|
|
|
$post_images = explode(",", $post->post_images);
|
|
1425
|
|
|
|
|
1426
|
|
|
$thumb_image = '';
|
|
1427
|
|
|
if (!empty($post_images)) {
|
|
1428
|
|
|
foreach ($post_images as $image) {
|
|
1429
|
|
|
if ($image != '') {
|
|
1430
|
|
|
$thumb_image .= '<a href="' . $image . '">';
|
|
1431
|
|
|
$thumb_image .= geodir_show_image(array('src' => $image), 'thumbnail', true, false);
|
|
1432
|
|
|
$thumb_image .= '</a>';
|
|
1433
|
|
|
}
|
|
1434
|
|
|
}
|
|
1435
|
|
|
}
|
|
1436
|
|
|
|
|
1437
|
|
|
global $map_jason;
|
|
1438
|
|
|
$map_jason[] = $post->marker_json;
|
|
1439
|
|
|
|
|
1440
|
|
|
$address_latitude = isset($post->post_latitude) ? $post->post_latitude : '';
|
|
1441
|
|
|
$address_longitude = isset($post->post_longitude) ? $post->post_longitude : '';
|
|
1442
|
|
|
$mapview = isset($post->post_mapview) ? $post->post_mapview : '';
|
|
1443
|
|
|
$mapzoom = isset($post->post_mapzoom) ? $post->post_mapzoom : '';
|
|
1444
|
|
|
if (!$mapzoom) {
|
|
1445
|
|
|
$mapzoom = 12;
|
|
1446
|
|
|
}
|
|
1447
|
|
|
|
|
1448
|
|
|
$map_args = array();
|
|
1449
|
|
|
$map_args['map_canvas_name'] = 'preview_map_canvas';
|
|
1450
|
|
|
$map_args['width'] = '950';
|
|
1451
|
|
|
$map_args['height'] = '300';
|
|
1452
|
|
|
$map_args['child_collapse'] = '0';
|
|
1453
|
|
|
$map_args['maptype'] = $mapview;
|
|
1454
|
|
|
$map_args['autozoom'] = false;
|
|
1455
|
|
|
$map_args['zoom'] = "$mapzoom";
|
|
1456
|
|
|
$map_args['latitude'] = $address_latitude;
|
|
1457
|
|
|
$map_args['longitude'] = $address_longitude;
|
|
1458
|
|
|
$map_args['enable_cat_filters'] = false;
|
|
1459
|
|
|
$map_args['enable_text_search'] = false;
|
|
1460
|
|
|
$map_args['enable_post_type_filters'] = false;
|
|
1461
|
|
|
$map_args['enable_location_filters'] = false;
|
|
1462
|
|
|
$map_args['enable_jason_on_load'] = true;
|
|
1463
|
|
|
$map_args['enable_map_direction'] = true;
|
|
1464
|
|
|
$map_args['map_class_name'] = 'geodir-map-preview-page';
|
|
1465
|
|
|
}
|
|
1466
|
|
|
|
|
1467
|
1 |
|
$arr_detail_page_tabs = geodir_detail_page_tabs_list();// get this sooner so we can get the active tab for the user
|
|
1468
|
|
|
|
|
1469
|
1 |
|
$active_tab = '';
|
|
1470
|
1 |
|
$active_tab_name = '';
|
|
1471
|
1 |
|
$default_tab = '';
|
|
1472
|
1 |
|
$default_tab_name = '';
|
|
1473
|
1 |
|
foreach($arr_detail_page_tabs as $tab_index => $tabs){
|
|
1474
|
1 |
|
if (isset($tabs['is_active_tab']) && $tabs['is_active_tab'] && !empty($tabs['is_display']) && isset($tabs['heading_text']) && $tabs['heading_text']) {
|
|
1475
|
1 |
|
$active_tab = $tab_index;
|
|
1476
|
1 |
|
$active_tab_name = __($tabs['heading_text'], 'geodirectory');
|
|
1477
|
1 |
|
}
|
|
1478
|
|
|
|
|
1479
|
1 |
|
if ($default_tab === '' && !empty($tabs['is_display']) && !empty($tabs['heading_text'])) {
|
|
1480
|
1 |
|
$default_tab = $tab_index;
|
|
1481
|
1 |
|
$default_tab_name = __($tabs['heading_text'], 'geodirectory');
|
|
1482
|
1 |
|
}
|
|
1483
|
1 |
|
}
|
|
1484
|
|
|
|
|
1485
|
1 |
|
if ($active_tab === '' && $default_tab !== '') { // Make first tab acs a active tab if not any tab is active.
|
|
1486
|
|
|
if (isset($arr_detail_page_tabs[$active_tab]) && isset($arr_detail_page_tabs[$active_tab]['is_active_tab'])) {
|
|
1487
|
|
|
$arr_detail_page_tabs[$active_tab]['is_active_tab'] = false;
|
|
1488
|
|
|
}
|
|
1489
|
|
|
|
|
1490
|
|
|
$arr_detail_page_tabs[$default_tab]['is_active_tab'] = true;
|
|
1491
|
|
|
$active_tab = $default_tab;
|
|
|
|
|
|
|
1492
|
|
|
$active_tab_name = $default_tab_name;
|
|
1493
|
|
|
}
|
|
1494
|
|
|
?>
|
|
1495
|
|
|
<div class="geodir-tabs" id="gd-tabs" style="position:relative;">
|
|
1496
|
|
|
<div id="geodir-tab-mobile-menu" >
|
|
1497
|
|
|
<i class="fa fa-bars"></i>
|
|
1498
|
|
|
<span class="geodir-mobile-active-tab"><?php echo $active_tab_name;?></span>
|
|
1499
|
|
|
<i class="fa fa-sort-desc"></i>
|
|
1500
|
|
|
</div>
|
|
1501
|
|
|
<dl class="geodir-tab-head">
|
|
1502
|
|
|
<?php
|
|
1503
|
|
|
/**
|
|
1504
|
|
|
* Called before the details page tab list headings, inside the `dl` tag.
|
|
1505
|
|
|
*
|
|
1506
|
|
|
* @since 1.0.0
|
|
1507
|
|
|
* @see 'geodir_after_tab_list'
|
|
1508
|
|
|
*/
|
|
1509
|
|
|
do_action('geodir_before_tab_list'); ?>
|
|
1510
|
|
|
<?php
|
|
1511
|
1 |
|
foreach ($arr_detail_page_tabs as $tab_index => $detail_page_tab) {
|
|
1512
|
1 |
|
if ($detail_page_tab['is_display']) {
|
|
1513
|
|
|
?>
|
|
1514
|
|
|
<dt></dt> <!-- added to comply with validation -->
|
|
1515
|
|
|
<dd <?php if ($detail_page_tab['is_active_tab']){ ?>class="geodir-tab-active"<?php }?> ><a data-tab="#<?php echo $tab_index;?>" data-status="enable"><?php _e($detail_page_tab['heading_text'],'geodirectory');?></a>
|
|
1516
|
|
|
</dd>
|
|
1517
|
|
|
<?php
|
|
1518
|
1 |
|
ob_start() // start tab content buffering
|
|
1519
|
|
|
?>
|
|
1520
|
|
|
<li id="<?php echo $tab_index;?>Tab">
|
|
1521
|
|
|
<div id="<?php echo $tab_index;?>" class="hash-offset"></div>
|
|
1522
|
|
|
<?php
|
|
1523
|
|
|
/**
|
|
1524
|
|
|
* Called before the details tab content is output per tab.
|
|
1525
|
|
|
*
|
|
1526
|
|
|
* @since 1.0.0
|
|
1527
|
|
|
* @param string $tab_index The tab name ID.
|
|
1528
|
|
|
*/
|
|
1529
|
1 |
|
do_action('geodir_before_tab_content', $tab_index);
|
|
1530
|
|
|
|
|
1531
|
|
|
/**
|
|
1532
|
|
|
* Called before the details tab content is output per tab.
|
|
1533
|
|
|
*
|
|
1534
|
|
|
* Uses dynamic hook name: geodir_before_$tab_index_tab_content
|
|
1535
|
|
|
*
|
|
1536
|
|
|
* @since 1.0.0
|
|
1537
|
|
|
* @todo do we need this if we have the hook above? 'geodir_before_tab_content'
|
|
1538
|
|
|
*/
|
|
1539
|
1 |
|
do_action('geodir_before_' . $tab_index . '_tab_content');
|
|
1540
|
|
|
/// write a code to generate content of each tab
|
|
1541
|
|
|
switch ($tab_index) {
|
|
1542
|
1 |
|
case 'post_profile':
|
|
1543
|
|
|
/**
|
|
1544
|
|
|
* Called before the listing description content on the details page tab.
|
|
1545
|
|
|
*
|
|
1546
|
|
|
* @since 1.0.0
|
|
1547
|
|
|
*/
|
|
1548
|
1 |
|
do_action('geodir_before_description_on_listing_detail');
|
|
1549
|
1 |
|
if (geodir_is_page('detail')) {
|
|
1550
|
1 |
|
the_content();
|
|
1551
|
1 |
|
} else {
|
|
1552
|
|
|
/** This action is documented in geodirectory_template_actions.php */
|
|
1553
|
|
|
echo apply_filters('the_content', stripslashes($post->post_desc));
|
|
1554
|
|
|
}
|
|
1555
|
|
|
|
|
1556
|
|
|
/**
|
|
1557
|
|
|
* Called after the listing description content on the details page tab.
|
|
1558
|
|
|
*
|
|
1559
|
|
|
* @since 1.0.0
|
|
1560
|
|
|
*/
|
|
1561
|
1 |
|
do_action('geodir_after_description_on_listing_detail');
|
|
1562
|
1 |
|
break;
|
|
1563
|
1 |
|
case 'post_info':
|
|
1564
|
|
|
echo $geodir_post_detail_fields;
|
|
1565
|
|
|
break;
|
|
1566
|
1 |
|
case 'post_images':
|
|
1567
|
1 |
|
echo $thumb_image;
|
|
|
|
|
|
|
1568
|
1 |
|
break;
|
|
1569
|
1 |
|
case 'post_video':
|
|
1570
|
|
|
/** This action is documented in geodirectory_template_actions.php */
|
|
1571
|
|
|
echo apply_filters('the_content', stripslashes($video));// we apply the_content filter so oembed works also;
|
|
1572
|
|
|
break;
|
|
1573
|
1 |
|
case 'special_offers':
|
|
1574
|
|
|
echo wpautop(stripslashes($special_offers));
|
|
1575
|
|
|
|
|
1576
|
|
|
break;
|
|
1577
|
1 |
|
case 'post_map':
|
|
1578
|
1 |
|
geodir_draw_map($map_args);
|
|
|
|
|
|
|
1579
|
1 |
|
break;
|
|
1580
|
1 |
|
case 'reviews':
|
|
1581
|
1 |
|
comments_template();
|
|
1582
|
1 |
|
break;
|
|
1583
|
|
|
case 'related_listing':
|
|
1584
|
|
|
echo $related_listing;
|
|
1585
|
|
|
break;
|
|
1586
|
|
|
default: {
|
|
1587
|
|
|
if ((isset($post->{$tab_index}) || (!isset($post->{$tab_index}) && (strpos($tab_index, 'gd_tab_') !== false || $tab_index == 'link_business'))) && !empty($detail_page_tab['tab_content'])) {
|
|
1588
|
|
|
echo $detail_page_tab['tab_content'];
|
|
1589
|
|
|
}
|
|
1590
|
|
|
}
|
|
1591
|
|
|
break;
|
|
1592
|
|
|
}
|
|
1593
|
|
|
|
|
1594
|
|
|
/**
|
|
1595
|
|
|
* Called after the details tab content is output per tab.
|
|
1596
|
|
|
*
|
|
1597
|
|
|
* @since 1.0.0
|
|
1598
|
|
|
*/
|
|
1599
|
1 |
|
do_action('geodir_after_tab_content', $tab_index);
|
|
1600
|
|
|
|
|
1601
|
|
|
/**
|
|
1602
|
|
|
* Called after the details tab content is output per tab.
|
|
1603
|
|
|
*
|
|
1604
|
|
|
* Uses dynamic hook name: geodir_after_$tab_index_tab_content
|
|
1605
|
|
|
*
|
|
1606
|
|
|
* @since 1.0.0
|
|
1607
|
|
|
* @todo do we need this if we have the hook above? 'geodir_after_tab_content'
|
|
1608
|
|
|
*/
|
|
1609
|
1 |
|
do_action('geodir_after_' . $tab_index . '_tab_content');
|
|
1610
|
|
|
?> </li>
|
|
1611
|
|
|
<?php
|
|
1612
|
|
|
/**
|
|
1613
|
|
|
* Filter the current tab content.
|
|
1614
|
|
|
*
|
|
1615
|
|
|
* @since 1.0.0
|
|
1616
|
|
|
*/
|
|
1617
|
1 |
|
$arr_detail_page_tabs[$tab_index]['tab_content'] = apply_filters("geodir_modify_" . $detail_page_tab['tab_content'] . "_tab_content", ob_get_clean());
|
|
1618
|
1 |
|
} // end of if for is_display
|
|
1619
|
1 |
|
}// end of foreach
|
|
1620
|
|
|
|
|
1621
|
|
|
/**
|
|
1622
|
|
|
* Called after the details page tab list headings, inside the `dl` tag.
|
|
1623
|
|
|
*
|
|
1624
|
|
|
* @since 1.0.0
|
|
1625
|
|
|
* @see 'geodir_before_tab_list'
|
|
1626
|
|
|
*/
|
|
1627
|
1 |
|
do_action('geodir_after_tab_list');
|
|
1628
|
|
|
?>
|
|
1629
|
|
|
</dl>
|
|
1630
|
|
|
<ul class="geodir-tabs-content entry-content" style="position:relative;">
|
|
1631
|
|
|
<?php
|
|
1632
|
1 |
|
foreach ($arr_detail_page_tabs as $detail_page_tab) {
|
|
1633
|
1 |
|
if ($detail_page_tab['is_display'] && !empty($detail_page_tab['tab_content'])) {
|
|
1634
|
1 |
|
echo $detail_page_tab['tab_content'];
|
|
1635
|
1 |
|
}// end of if
|
|
1636
|
1 |
|
}// end of foreach
|
|
1637
|
|
|
|
|
1638
|
|
|
/**
|
|
1639
|
|
|
* Called after all the tab content is output in `li` tags, called before the closing `ul` tag.
|
|
1640
|
|
|
*
|
|
1641
|
|
|
* @since 1.0.0
|
|
1642
|
|
|
*/
|
|
1643
|
|
|
do_action('geodir_add_tab_content'); ?>
|
|
1644
|
|
|
</ul>
|
|
1645
|
|
|
<!--gd-tabs-content ul end-->
|
|
1646
|
|
|
</div>
|
|
1647
|
|
|
<script>
|
|
1648
|
|
|
if (window.location.hash && window.location.hash.indexOf('&') === -1 && jQuery(window.location.hash + 'Tab').length) {
|
|
1649
|
|
|
hashVal = window.location.hash;
|
|
1650
|
|
|
} else {
|
|
1651
|
|
|
hashVal = jQuery('dl.geodir-tab-head dd.geodir-tab-active').find('a').attr('data-tab');
|
|
1652
|
|
|
}
|
|
1653
|
|
|
jQuery('dl.geodir-tab-head dd').each(function () {
|
|
1654
|
|
|
//Get all tabs
|
|
1655
|
|
|
var tabs = jQuery(this).children('dd');
|
|
1656
|
|
|
var tab = '';
|
|
1657
|
|
|
tab = jQuery(this).find('a').attr('data-tab');
|
|
1658
|
|
|
if (hashVal != tab) {
|
|
1659
|
|
|
jQuery(tab + 'Tab').hide();
|
|
1660
|
|
|
}
|
|
1661
|
|
|
|
|
1662
|
|
|
});
|
|
1663
|
|
|
</script>
|
|
1664
|
|
|
|
|
1665
|
|
|
<?php
|
|
1666
|
|
|
|
|
1667
|
1 |
|
}
|
|
1668
|
|
|
|
|
1669
|
|
|
|
|
1670
|
|
|
/**
|
|
1671
|
|
|
* Fixes image orientation.
|
|
1672
|
|
|
*
|
|
1673
|
|
|
* @since 1.0.0
|
|
1674
|
|
|
* @package GeoDirectory
|
|
1675
|
|
|
* @param array $file The image file.
|
|
1676
|
|
|
* @return mixed Image file.
|
|
1677
|
|
|
*/
|
|
1678
|
|
|
function geodir_exif($file)
|
|
1679
|
|
|
{
|
|
1680
|
|
|
if (empty($file) || !is_array($file)) {
|
|
1681
|
|
|
return $file;
|
|
1682
|
|
|
}
|
|
1683
|
|
|
|
|
1684
|
|
|
$file_path = !empty($file['tmp_name']) ? sanitize_text_field($file['tmp_name']) : '';
|
|
1685
|
|
|
if (!($file_path && file_exists($file_path))) {
|
|
1686
|
|
|
return $file;
|
|
1687
|
|
|
}
|
|
1688
|
|
|
$file['file'] = $file_path;
|
|
1689
|
|
|
|
|
1690
|
|
|
if (!file_is_valid_image($file_path)) {
|
|
1691
|
|
|
return $file; // Bail if file is not an image.
|
|
1692
|
|
|
}
|
|
1693
|
|
|
|
|
1694
|
|
|
if (!function_exists('wp_get_image_editor')) {
|
|
1695
|
|
|
return $file;
|
|
1696
|
|
|
}
|
|
1697
|
|
|
|
|
1698
|
|
|
$mime_type = $file['type'];
|
|
1699
|
|
|
$exif = array();
|
|
1700
|
|
|
if ($mime_type == 'image/jpeg' && function_exists('exif_read_data')) {
|
|
1701
|
|
|
try {
|
|
1702
|
|
|
$exif = exif_read_data($file_path);
|
|
1703
|
|
|
} catch(Exception $e) {
|
|
1704
|
|
|
$exif = array();
|
|
1705
|
|
|
}
|
|
1706
|
|
|
}
|
|
1707
|
|
|
|
|
1708
|
|
|
$rotate = false;
|
|
1709
|
|
|
$flip = false;
|
|
1710
|
|
|
$modify = false;
|
|
1711
|
|
|
$orientation = 0;
|
|
1712
|
|
|
if (!empty($exif) && isset($exif['Orientation'])) {
|
|
1713
|
|
|
switch ((int)$exif['Orientation']) {
|
|
1714
|
|
|
case 1:
|
|
1715
|
|
|
// do nothing
|
|
1716
|
|
|
break;
|
|
1717
|
|
View Code Duplication |
case 2:
|
|
1718
|
|
|
$flip = array(false, true);
|
|
1719
|
|
|
$modify = true;
|
|
1720
|
|
|
break;
|
|
1721
|
|
|
case 3:
|
|
1722
|
|
|
$orientation = -180;
|
|
1723
|
|
|
$rotate = true;
|
|
1724
|
|
|
$modify = true;
|
|
1725
|
|
|
break;
|
|
1726
|
|
View Code Duplication |
case 4:
|
|
1727
|
|
|
$flip = array(true, false);
|
|
1728
|
|
|
$modify = true;
|
|
1729
|
|
|
break;
|
|
1730
|
|
View Code Duplication |
case 5:
|
|
1731
|
|
|
$orientation = -90;
|
|
1732
|
|
|
$rotate = true;
|
|
1733
|
|
|
$flip = array(false, true);
|
|
1734
|
|
|
$modify = true;
|
|
1735
|
|
|
break;
|
|
1736
|
|
|
case 6:
|
|
1737
|
|
|
$orientation = -90;
|
|
1738
|
|
|
$rotate = true;
|
|
1739
|
|
|
$modify = true;
|
|
1740
|
|
|
break;
|
|
1741
|
|
View Code Duplication |
case 7:
|
|
1742
|
|
|
$orientation = -270;
|
|
1743
|
|
|
$rotate = true;
|
|
1744
|
|
|
$flip = array(false, true);
|
|
1745
|
|
|
$modify = true;
|
|
1746
|
|
|
break;
|
|
1747
|
|
|
case 8:
|
|
1748
|
|
|
case 9:
|
|
1749
|
|
|
$orientation = -270;
|
|
1750
|
|
|
$rotate = true;
|
|
1751
|
|
|
$modify = true;
|
|
1752
|
|
|
break;
|
|
1753
|
|
|
default:
|
|
1754
|
|
|
$orientation = 0;
|
|
1755
|
|
|
$rotate = true;
|
|
1756
|
|
|
$modify = true;
|
|
1757
|
|
|
break;
|
|
1758
|
|
|
}
|
|
1759
|
|
|
}
|
|
1760
|
|
|
|
|
1761
|
|
|
$quality = null;
|
|
1762
|
|
|
/**
|
|
1763
|
|
|
* Filter the image quality.
|
|
1764
|
|
|
*
|
|
1765
|
|
|
* @since 1.5.7
|
|
1766
|
|
|
* @param int|null $quality Image Compression quality between 1-100% scale. Default null.
|
|
1767
|
|
|
* @param string $quality Image mime type.
|
|
1768
|
|
|
*/
|
|
1769
|
|
|
$quality = apply_filters('geodir_image_upload_set_quality', $quality, $mime_type);
|
|
1770
|
|
|
if ($quality !== null) {
|
|
1771
|
|
|
$modify = true;
|
|
1772
|
|
|
}
|
|
1773
|
|
|
|
|
1774
|
|
|
if (!$modify) {
|
|
1775
|
|
|
return $file; // no change
|
|
1776
|
|
|
}
|
|
1777
|
|
|
|
|
1778
|
|
|
$image = wp_get_image_editor($file_path);
|
|
1779
|
|
|
if (!is_wp_error($image)) {
|
|
1780
|
|
|
if ($rotate) {
|
|
1781
|
|
|
$image->rotate($orientation);
|
|
1782
|
|
|
}
|
|
1783
|
|
|
|
|
1784
|
|
|
if (!empty($flip)) {
|
|
1785
|
|
|
$image->flip($flip[0], $flip[1]);
|
|
1786
|
|
|
}
|
|
1787
|
|
|
|
|
1788
|
|
|
if ($quality !== null) {
|
|
1789
|
|
|
$image->set_quality((int)$quality);
|
|
1790
|
|
|
}
|
|
1791
|
|
|
|
|
1792
|
|
|
$result = $image->save($file_path);
|
|
1793
|
|
|
if (!is_wp_error($result)) {
|
|
1794
|
|
|
$file['file'] = $result['path'];
|
|
1795
|
|
|
$file['tmp_name'] = $result['path'];
|
|
1796
|
|
|
}
|
|
1797
|
|
|
}
|
|
1798
|
|
|
|
|
1799
|
|
|
// The image orientation is fixed, pass it back for further processing
|
|
1800
|
|
|
return $file;
|
|
1801
|
|
|
}
|
|
1802
|
|
|
|
|
1803
|
|
|
/**
|
|
1804
|
|
|
* Returns the recent reviews.
|
|
1805
|
|
|
*
|
|
1806
|
|
|
* @since 1.0.0
|
|
1807
|
|
|
* @package GeoDirectory
|
|
1808
|
|
|
*
|
|
1809
|
|
|
* @global object $wpdb WordPress Database object.
|
|
1810
|
|
|
* @global object $gd_session GeoDirectory Session object.
|
|
1811
|
|
|
*
|
|
1812
|
|
|
* @param int $g_size Optional. Avatar size in pixels. Default 60.
|
|
1813
|
|
|
* @param int $no_comments Optional. Number of reviews you want to display. Default: 10.
|
|
1814
|
|
|
* @param int $comment_lenth Optional. Maximum number of characters you want to display. After that read more link will appear.
|
|
1815
|
|
|
* @param bool $show_pass_post Optional. Not yet implemented.
|
|
1816
|
|
|
* @return string Returns the recent reviews html.
|
|
1817
|
|
|
*/
|
|
1818
|
|
|
function geodir_get_recent_reviews($g_size = 60, $no_comments = 10, $comment_lenth = 60, $show_pass_post = false) {
|
|
|
|
|
|
|
1819
|
2 |
|
global $wpdb, $tablecomments, $tableposts, $rating_table_name, $gd_session;
|
|
1820
|
2 |
|
$tablecomments = $wpdb->comments;
|
|
1821
|
2 |
|
$tableposts = $wpdb->posts;
|
|
1822
|
|
|
|
|
1823
|
2 |
|
$comments_echo = '';
|
|
1824
|
2 |
|
$city_filter = '';
|
|
1825
|
2 |
|
$region_filter = '';
|
|
1826
|
2 |
|
$country_filter = '';
|
|
1827
|
|
|
|
|
1828
|
2 |
|
if ($gd_session->get('gd_multi_location')) {
|
|
1829
|
|
|
if ($gd_ses_country = $gd_session->get('gd_country')) {
|
|
1830
|
|
|
$country_filter = $wpdb->prepare(" AND r.post_country=%s ", str_replace("-", " ", $gd_ses_country));
|
|
1831
|
|
|
}
|
|
1832
|
|
|
|
|
1833
|
|
|
if ($gd_ses_region = $gd_session->get('gd_region')) {
|
|
1834
|
|
|
$region_filter = $wpdb->prepare(" AND r.post_region=%s ", str_replace("-", " ", $gd_ses_region));
|
|
1835
|
|
|
}
|
|
1836
|
|
|
|
|
1837
|
|
|
if ($gd_ses_city = $gd_session->get('gd_city')) {
|
|
1838
|
|
|
$city_filter = $wpdb->prepare(" AND r.post_city=%s ", str_replace("-", " ", $gd_ses_city));
|
|
1839
|
|
|
}
|
|
1840
|
|
|
}
|
|
1841
|
|
|
|
|
1842
|
2 |
|
$review_table = GEODIR_REVIEW_TABLE;
|
|
1843
|
2 |
|
$request = "SELECT r.id as ID, r.post_type, r.comment_id as comment_ID, r.post_date as comment_date,r.overall_rating, r.user_id, r.post_id FROM $review_table as r WHERE r.post_status = 1 AND r.status =1 AND r.overall_rating>=1 $country_filter $region_filter $city_filter ORDER BY r.post_date DESC, r.id DESC LIMIT $no_comments";
|
|
1844
|
|
|
|
|
1845
|
2 |
|
$comments = $wpdb->get_results($request);
|
|
1846
|
|
|
|
|
1847
|
2 |
|
foreach ($comments as $comment) {
|
|
1848
|
|
|
// Set the extra comment info needed.
|
|
1849
|
2 |
|
$comment_extra = $wpdb->get_row("SELECT * FROM $wpdb->comments WHERE comment_ID =$comment->comment_ID");
|
|
1850
|
|
|
//echo "SELECT * FROM $wpdb->comments WHERE comment_ID =$comment->comment_ID";
|
|
1851
|
2 |
|
$comment->comment_content = $comment_extra->comment_content;
|
|
1852
|
2 |
|
$comment->comment_author = $comment_extra->comment_author;
|
|
1853
|
2 |
|
$comment->comment_author_email = $comment_extra->comment_author_email;
|
|
1854
|
|
|
|
|
1855
|
2 |
|
$comment_id = '';
|
|
|
|
|
|
|
1856
|
2 |
|
$comment_id = $comment->comment_ID;
|
|
1857
|
2 |
|
$comment_content = strip_tags($comment->comment_content);
|
|
1858
|
|
|
|
|
1859
|
2 |
|
$comment_content = preg_replace('#(\\[img\\]).+(\\[\\/img\\])#', '', $comment_content);
|
|
1860
|
|
|
|
|
1861
|
2 |
|
$permalink = get_permalink($comment->ID) . "#comment-" . $comment->comment_ID;
|
|
|
|
|
|
|
1862
|
2 |
|
$comment_author_email = $comment->comment_author_email;
|
|
|
|
|
|
|
1863
|
2 |
|
$comment_post_ID = $comment->post_id;
|
|
1864
|
|
|
|
|
1865
|
2 |
|
$na = true;
|
|
1866
|
2 |
|
if (function_exists('icl_object_id') && icl_object_id($comment_post_ID, $comment->post_type, true)) {
|
|
1867
|
|
|
$comment_post_ID2 = icl_object_id($comment_post_ID, $comment->post_type, false);
|
|
1868
|
|
|
if ($comment_post_ID == $comment_post_ID2) {
|
|
1869
|
|
|
} else {
|
|
1870
|
|
|
$na = false;
|
|
1871
|
|
|
}
|
|
1872
|
|
|
}
|
|
1873
|
|
|
|
|
1874
|
2 |
|
$post_title = get_the_title($comment_post_ID);
|
|
1875
|
2 |
|
$permalink = get_permalink($comment_post_ID);
|
|
1876
|
2 |
|
$comment_permalink = $permalink . "#comment-" . $comment->comment_ID;
|
|
1877
|
2 |
|
$read_more = '<a class="comment_excerpt" href="' . $comment_permalink . '">' . __('Read more', 'geodirectory') . '</a>';
|
|
1878
|
|
|
|
|
1879
|
2 |
|
$comment_content_length = strlen($comment_content);
|
|
1880
|
2 |
|
if ($comment_content_length > $comment_lenth) {
|
|
1881
|
|
|
$comment_excerpt = mb_substr($comment_content, 0, $comment_lenth) . '... ' . $read_more;
|
|
1882
|
|
|
} else {
|
|
1883
|
2 |
|
$comment_excerpt = $comment_content;
|
|
1884
|
|
|
}
|
|
1885
|
|
|
|
|
1886
|
2 |
|
if ($comment->user_id) {
|
|
1887
|
2 |
|
$user_profile_url = get_author_posts_url($comment->user_id);
|
|
1888
|
2 |
|
} else {
|
|
1889
|
|
|
$user_profile_url = '';
|
|
1890
|
|
|
}
|
|
1891
|
|
|
|
|
1892
|
2 |
|
if ($comment_id && $na) {
|
|
1893
|
2 |
|
$comments_echo .= '<li class="clearfix">';
|
|
1894
|
2 |
|
$comments_echo .= "<span class=\"li" . $comment_id . " geodir_reviewer_image\">";
|
|
1895
|
2 |
|
if (function_exists('get_avatar')) {
|
|
1896
|
2 |
|
if (!isset($comment->comment_type)) {
|
|
1897
|
2 |
|
if ($user_profile_url) {
|
|
1898
|
2 |
|
$comments_echo .= '<a href="' . $user_profile_url . '">';
|
|
1899
|
2 |
|
}
|
|
1900
|
2 |
|
$comments_echo .= get_avatar($comment->comment_author_email, $g_size, geodir_plugin_url() . '/geodirectory-assets/images/gravatar2.png');
|
|
1901
|
2 |
|
if ($user_profile_url) {
|
|
1902
|
2 |
|
$comments_echo .= '</a>';
|
|
1903
|
2 |
|
}
|
|
1904
|
2 |
|
} elseif ((isset($comment->comment_type) && $comment->comment_type == 'trackback') || (isset($comment->comment_type) && $comment->comment_type == 'pingback')) {
|
|
1905
|
|
|
if ($user_profile_url) {
|
|
1906
|
|
|
$comments_echo .= '<a href="' . $user_profile_url . '">';
|
|
1907
|
|
|
}
|
|
1908
|
|
|
$comments_echo .= get_avatar($comment->comment_author_url, $g_size, geodir_plugin_url() . '/geodirectory-assets/images/gravatar2.png');
|
|
1909
|
|
|
}
|
|
1910
|
2 |
|
} elseif (function_exists('gravatar')) {
|
|
1911
|
|
|
if ($user_profile_url) {
|
|
1912
|
|
|
$comments_echo .= '<a href="' . $user_profile_url . '">';
|
|
1913
|
|
|
}
|
|
1914
|
|
|
$comments_echo .= "<img src=\"";
|
|
1915
|
|
|
if ('' == $comment->comment_type) {
|
|
1916
|
|
|
$comments_echo .= gravatar($comment->comment_author_email, $g_size, geodir_plugin_url() . '/geodirectory-assets/images/gravatar2.png');
|
|
1917
|
|
|
if ($user_profile_url) {
|
|
1918
|
|
|
$comments_echo .= '</a>';
|
|
1919
|
|
|
}
|
|
1920
|
|
|
} elseif (('trackback' == $comment->comment_type) || ('pingback' == $comment->comment_type)) {
|
|
1921
|
|
|
if ($user_profile_url) {
|
|
1922
|
|
|
$comments_echo .= '<a href="' . $user_profile_url . '">';
|
|
1923
|
|
|
}
|
|
1924
|
|
|
$comments_echo .= gravatar($comment->comment_author_url, $g_size, geodir_plugin_url() . '/geodirectory-assets/images/gravatar2.png');
|
|
1925
|
|
|
if ($user_profile_url) {
|
|
1926
|
|
|
$comments_echo .= '</a>';
|
|
1927
|
|
|
}
|
|
1928
|
|
|
}
|
|
1929
|
|
|
$comments_echo .= "\" alt=\"\" class=\"avatar\" />";
|
|
1930
|
|
|
}
|
|
1931
|
|
|
|
|
1932
|
2 |
|
$comments_echo .= "</span>\n";
|
|
1933
|
|
|
|
|
1934
|
2 |
|
$comments_echo .= '<span class="geodir_reviewer_content">';
|
|
1935
|
2 |
|
if($comment->user_id){$comments_echo .= '<a href="'.get_author_posts_url( $comment->user_id ).'">';}
|
|
1936
|
2 |
|
$comments_echo .= '<span class="geodir_reviewer_author">' . $comment->comment_author . '</span> ';
|
|
1937
|
2 |
|
if($comment->user_id){$comments_echo .= '</a>';}
|
|
1938
|
2 |
|
$comments_echo .= '<span class="geodir_reviewer_reviewed">' . __('reviewed', 'geodirectory') . '</span> ';
|
|
1939
|
2 |
|
$comments_echo .= '<a href="' . $permalink . '" class="geodir_reviewer_title">' . $post_title . '</a>';
|
|
1940
|
2 |
|
$comments_echo .= geodir_get_rating_stars($comment->overall_rating, $comment_post_ID);
|
|
1941
|
2 |
|
$comments_echo .= '<p class="geodir_reviewer_text">' . $comment_excerpt . '';
|
|
1942
|
|
|
//echo preg_replace('#(\\[img\\]).+(\\[\\/img\\])#', '', $comment_excerpt);
|
|
|
|
|
|
|
1943
|
2 |
|
$comments_echo .= '</p>';
|
|
1944
|
|
|
|
|
1945
|
2 |
|
$comments_echo .= "</span>\n";
|
|
1946
|
2 |
|
$comments_echo .= '</li>';
|
|
1947
|
2 |
|
}
|
|
1948
|
2 |
|
}
|
|
1949
|
|
|
|
|
1950
|
2 |
|
return $comments_echo;
|
|
1951
|
|
|
}
|
|
1952
|
|
|
|
|
1953
|
|
|
/**
|
|
1954
|
|
|
* Returns All post categories from all GD post types.
|
|
1955
|
|
|
*
|
|
1956
|
|
|
* @since 1.0.0
|
|
1957
|
|
|
* @package GeoDirectory
|
|
1958
|
|
|
* @return array Returns post categories as an array.
|
|
1959
|
|
|
*/
|
|
1960
|
|
|
function geodir_home_map_cats_key_value_array()
|
|
1961
|
|
|
{
|
|
1962
|
|
|
$post_types = geodir_get_posttypes('object');
|
|
1963
|
|
|
|
|
1964
|
|
|
$return = array();
|
|
1965
|
|
|
if (!empty($post_types)) {
|
|
1966
|
|
|
foreach ($post_types as $key => $post_type) {
|
|
|
|
|
|
|
1967
|
|
|
$cpt_name = __($post_type->labels->singular_name, 'geodirectory');
|
|
1968
|
|
|
$post_type_name = sprintf(__('%s Categories', 'geodirectory'),$cpt_name);
|
|
1969
|
|
|
$taxonomies = geodir_get_taxonomies($key);
|
|
1970
|
|
|
$cat_taxonomy = !empty($taxonomies[0]) ? $taxonomies[0] : NULL;
|
|
1971
|
|
|
$cat_terms = $cat_taxonomy ? get_terms($cat_taxonomy) : NULL;
|
|
1972
|
|
|
|
|
1973
|
|
|
if (!empty($cat_terms)) {
|
|
1974
|
|
|
$return['optgroup_start-' . $key] = $post_type_name;
|
|
1975
|
|
|
|
|
1976
|
|
|
foreach ($cat_terms as $cat_term) {
|
|
1977
|
|
|
$return[$key . '_' . $cat_term->term_id] = $cat_term->name;
|
|
1978
|
|
|
}
|
|
1979
|
|
|
|
|
1980
|
|
|
$return['optgroup_end-' . $key] = $post_type_name;
|
|
1981
|
|
|
}
|
|
1982
|
|
|
}
|
|
1983
|
|
|
}
|
|
1984
|
|
|
return $return;
|
|
1985
|
|
|
}
|
|
1986
|
|
|
|
|
1987
|
|
|
/**
|
|
1988
|
|
|
* "Twitter tweet" button code.
|
|
1989
|
|
|
*
|
|
1990
|
|
|
* To display "Twitter tweet" button, you can call this function.
|
|
1991
|
|
|
* @since 1.0.0
|
|
1992
|
|
|
* @package GeoDirectory
|
|
1993
|
|
|
*/
|
|
1994
|
|
|
function geodir_twitter_tweet_button()
|
|
1995
|
|
|
{
|
|
1996
|
|
|
?>
|
|
1997
|
|
|
<a href="http://twitter.com/share"
|
|
1998
|
|
|
class="twitter-share-button"><?php _e('Tweet', 'geodirectory'); ?></a>
|
|
1999
|
|
|
<script type="text/javascript" src="//platform.twitter.com/widgets.js"></script>
|
|
2000
|
|
|
<?php
|
|
2001
|
1 |
|
}
|
|
2002
|
|
|
|
|
2003
|
|
|
/**
|
|
2004
|
|
|
* "Facebook like" button code.
|
|
2005
|
|
|
*
|
|
2006
|
|
|
* To display "Facebook like" button, you can call this function.
|
|
2007
|
|
|
*
|
|
2008
|
|
|
* @since 1.0.0
|
|
2009
|
|
|
* @package GeoDirectory
|
|
2010
|
|
|
* @global object $post The current post object.
|
|
2011
|
|
|
*/
|
|
2012
|
|
|
function geodir_fb_like_button()
|
|
2013
|
|
|
{
|
|
2014
|
1 |
|
global $post;
|
|
2015
|
|
|
?>
|
|
2016
|
|
View Code Duplication |
<iframe <?php if (isset($_SERVER['HTTP_USER_AGENT']) && (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false)) {
|
|
2017
|
|
|
echo 'allowtransparency="true"';
|
|
2018
|
|
|
} ?> class="facebook"
|
|
2019
|
|
|
src="//www.facebook.com/plugins/like.php?href=<?php echo urlencode(get_permalink($post->ID)); ?>&layout=button_count&show_faces=false&width=100&action=like&colorscheme=light"
|
|
2020
|
|
|
style="border:none; overflow:hidden; width:100px; height:20px"></iframe>
|
|
2021
|
|
|
<?php
|
|
2022
|
1 |
|
}
|
|
2023
|
|
|
|
|
2024
|
|
|
/**
|
|
2025
|
|
|
* "Google Plus" share button code.
|
|
2026
|
|
|
*
|
|
2027
|
|
|
* To display "Google Plus" share button, you can call this function.
|
|
2028
|
|
|
*
|
|
2029
|
|
|
* @since 1.0.0
|
|
2030
|
|
|
* @package GeoDirectory
|
|
2031
|
|
|
*/
|
|
2032
|
|
|
function geodir_google_plus_button()
|
|
2033
|
|
|
{
|
|
2034
|
|
|
?>
|
|
2035
|
|
|
<div id="plusone-div" class="g-plusone" data-size="medium"></div>
|
|
2036
|
|
|
<script type="text/javascript">
|
|
2037
|
|
|
(function () {
|
|
2038
|
|
|
var po = document.createElement('script');
|
|
2039
|
|
|
po.type = 'text/javascript';
|
|
2040
|
|
|
po.async = true;
|
|
2041
|
|
|
po.src = 'https://apis.google.com/js/platform.js';
|
|
2042
|
|
|
var s = document.getElementsByTagName('script')[0];
|
|
2043
|
|
|
s.parentNode.insertBefore(po, s);
|
|
2044
|
|
|
})();
|
|
2045
|
|
|
</script>
|
|
2046
|
|
|
<?php
|
|
2047
|
1 |
|
}
|
|
2048
|
|
|
|
|
2049
|
|
|
/**
|
|
2050
|
|
|
* "Share this" button code.
|
|
2051
|
|
|
*
|
|
2052
|
|
|
* To display "share this" button, you can call this function.
|
|
2053
|
|
|
*
|
|
2054
|
|
|
* @since 1.0.0
|
|
2055
|
|
|
* @package GeoDirectory
|
|
2056
|
|
|
* @global object $post The current post object.
|
|
2057
|
|
|
*/
|
|
2058
|
|
|
function geodir_share_this_button_code()
|
|
2059
|
|
|
{
|
|
2060
|
1 |
|
global $post;
|
|
2061
|
|
|
?>
|
|
2062
|
|
|
<div class="addthis_toolbox addthis_default_style">
|
|
2063
|
|
|
<span id='st_sharethis'></span>
|
|
2064
|
|
|
<script type="text/javascript">var switchTo5x = false;</script>
|
|
2065
|
|
|
<script type="text/javascript" src="//ws.sharethis.com/button/buttons.js"></script>
|
|
2066
|
|
|
<script type="text/javascript">stLight.options({
|
|
2067
|
|
|
publisher: "2bee0c38-7c7d-4ce7-9d9a-05e920d509b4",
|
|
2068
|
|
|
doNotHash: false,
|
|
2069
|
|
|
doNotCopy: false,
|
|
2070
|
|
|
hashAddressBar: false
|
|
2071
|
|
|
});
|
|
2072
|
|
|
stWidget.addEntry({
|
|
2073
|
|
|
"service": "sharethis",
|
|
2074
|
|
|
"element": document.getElementById('st_sharethis'),
|
|
2075
|
|
|
"url": "<?php echo geodir_curPageURL();?>",
|
|
2076
|
|
|
"title": "<?php echo $post->post_title;?>",
|
|
2077
|
|
|
"type": "chicklet",
|
|
2078
|
|
|
"text": "<?php _e( 'Share', 'geodirectory' );?>"
|
|
2079
|
|
|
});</script>
|
|
2080
|
|
|
|
|
2081
|
|
|
</div>
|
|
2082
|
|
|
<?php
|
|
2083
|
1 |
|
}
|
|
2084
|
|
|
|
|
2085
|
|
|
|
|
2086
|
|
|
function geodir_listing_bounce_map_pin_on_hover(){
|
|
2087
|
|
|
|
|
2088
|
9 |
|
if(get_option('geodir_listing_hover_bounce_map_pin',true)) {
|
|
2089
|
|
|
?>
|
|
2090
|
|
|
<script>
|
|
2091
|
|
|
jQuery(function ($) {
|
|
2092
|
|
|
if (typeof(animate_marker) == 'function') {
|
|
2093
|
|
|
var groupTab = $("ul.geodir_category_list_view").children("li");
|
|
2094
|
|
|
groupTab.hover(function () {
|
|
2095
|
|
|
animate_marker('listing_map_canvas', String($(this).data("post-id")));
|
|
2096
|
|
|
}, function () {
|
|
2097
|
|
|
stop_marker_animation('listing_map_canvas', String($(this).data("post-id")));
|
|
2098
|
|
|
|
|
2099
|
|
|
});
|
|
2100
|
|
|
}
|
|
2101
|
|
|
});
|
|
2102
|
|
|
</script>
|
|
2103
|
|
|
|
|
2104
|
|
|
<?php
|
|
2105
|
|
|
|
|
2106
|
9 |
|
}
|
|
2107
|
9 |
|
}
|
|
2108
|
|
|
add_action('geodir_after_listing_listview','geodir_listing_bounce_map_pin_on_hover',10);
|
|
2109
|
|
|
|
|
2110
|
|
|
add_action('geodir_after_favorite_html','geodir_output_favourite_html_listings',1,1);
|
|
2111
|
|
|
|
|
2112
|
|
|
function geodir_output_favourite_html_listings( $post_id){
|
|
2113
|
8 |
|
geodir_favourite_html('', $post_id);
|
|
2114
|
8 |
|
}
|
|
2115
|
|
|
|
|
2116
|
|
|
|
|
2117
|
|
|
add_action( 'geodir_listing_after_pinpoint', 'geodir_output_pinpoint_html_listings',1,2 );
|
|
2118
|
|
|
|
|
2119
|
|
|
function geodir_output_pinpoint_html_listings( $post_id, $post){
|
|
|
|
|
|
|
2120
|
3 |
|
global $wp_query;
|
|
2121
|
|
|
|
|
2122
|
3 |
|
$show_pin_point = $wp_query->is_main_query();
|
|
2123
|
3 |
|
if (!empty($show_pin_point) && is_active_widget(false, "", "geodir_map_v3_listing_map")) {
|
|
2124
|
|
|
|
|
2125
|
|
|
/*if($json_info = json_decode($post->marker_json))
|
|
|
|
|
|
|
2126
|
|
|
$marker_icon = $json_info->icon;*/
|
|
2127
|
|
|
|
|
2128
|
1 |
|
$term_icon_url = get_tax_meta($post->default_category, 'ct_cat_icon', false, $post->post_type);
|
|
2129
|
1 |
|
$marker_icon = isset($term_icon_url['src']) ? $term_icon_url['src'] : get_option('geodir_default_marker_icon');
|
|
2130
|
|
|
?>
|
|
2131
|
|
|
<span class="geodir-pinpoint"
|
|
2132
|
|
|
style=" background:url('<?php if (isset($marker_icon)) {
|
|
2133
|
1 |
|
echo $marker_icon;
|
|
2134
|
|
|
} ?>') no-repeat scroll left top transparent; background-size:auto 100%; -webkit-background-size:auto 100%; -moz-background-size:auto 100%; height:9px; width:14px; ">
|
|
2135
|
|
|
<?php echo apply_filters('geodir_listing_listview_pinpoint_inner_content', '', 'listing'); ?>
|
|
2136
|
|
|
</span>
|
|
2137
|
|
|
<a class="geodir-pinpoint-link" href="javascript:void(0)"
|
|
2138
|
|
|
onclick="openMarker('listing_map_canvas' ,'<?php echo $post->ID; ?>')"
|
|
2139
|
|
|
onmouseover="animate_marker('listing_map_canvas' ,'<?php echo $post->ID; ?>')"
|
|
2140
|
|
|
onmouseout="stop_marker_animation('listing_map_canvas' ,'<?php echo $post->ID; ?>')"><?php _e('Pinpoint', 'geodirectory'); ?></a>
|
|
2141
|
|
|
<?php }
|
|
2142
|
|
|
} |
Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.
The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.
This check looks for comments that seem to be mostly valid code and reports them.