PluginProbe
WP Directory Kit / trunk
WP Directory Kit vtrunk
1.5.9 1.5.7 1.5.6 1.5.5 1.5.4 1.5.3 trunk 1.1.0 1.1.6 1.1.8 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.8 All 37 releases
wpdirectorykit / shortcodes / shortcode-wdk-listing-field-value-text.php

shortcode-wdk-listing-field-value-text.php in WP Directory Kit trunk, at shortcodes/shortcode-wdk-listing-field-value-text.php

168 lines 6.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 if ( ! defined( 'ABSPATH' ) ) {
4 exit; // Exit if accessed directly.
5 }
6
7 /*
8 * Widget [wdk-listing-field-value-text], show latest listings in list view
9 * atts list:
10 *
11 * field_id (int) - field id
12 * post_id (int) - post_id
13 *
14 * Layout path :
15 * get_template_directory().'/wpdirectorykit/shortcodes/views/shortcode-latest-listings-list.php'
16 * WPDIRECTORYKIT_PATH.'shortcodes/views/shortcode-latest-listings-list.php'
17 */
18
19 add_shortcode('wdk-listing-field-value-text', 'shortcode_wdk_listing_field_value_text');
20 function shortcode_wdk_listing_field_value_text($atts, $content){
21 $atts = shortcode_atts(array(
22 'id'=>NULL,
23 'field_id'=>'',
24 'post_id'=>'',
25 'enable_html'=>'',
26 'norender'=>'',
27 ), $atts);
28 $data = array();
29
30 /* settings from atts */
31 $data['settings'] = $atts;
32 $data['id_element'] = '';
33
34 /* load css/js */
35
36 $WMVC = &wdk_get_instance();
37 $WMVC->model('listingfield_m');
38 $WMVC->model('listing_m');
39 $WMVC->load_helper('listing');
40 global $wdk_listing_id;
41 $post_id = $wdk_listing_id;
42 if (!empty($data['settings']['post_id'])) {
43 $post_id = (int)$data['settings']['post_id'];
44 }
45
46 $data['field_value'] = '';
47 $data['field_prefix'] = '';
48 $data['field_suffix'] = '';
49
50 /* Allow only public built-in fields. */
51 $allowed_fields = array(
52 'post_title', 'category_id', 'location_id', 'post_content'
53 );
54
55 $field_id = (string) $data['settings']['field_id'];
56 if (
57 !is_numeric($field_id) &&
58 !in_array($field_id, $allowed_fields, true)
59 ) {
60 return '';
61 }
62
63 $post_data = get_post($post_id);
64 if (
65 !$post_data ||
66 $post_data->post_type !== 'wdk-listing' ||
67 $post_data->post_status !== 'publish' ||
68 post_password_required($post_data)
69 ) {
70 return '';
71 }
72
73 if ( is_numeric($data['settings']['field_id']) && wdk_field_option($data['settings']['field_id'], 'is_visible_frontend') != 1 ) {
74 return '';
75 }
76
77 if (
78 !wdk_field_value('is_activated', $post_id, false) || !wdk_field_value('is_approved', $post_id,false)
79 ) {
80 return __( 'Listing is not public', 'wpdirectorykit' );
81 }
82
83 if(!empty($data['settings']['field_id'])){
84 if(strpos($data['settings']['field_id'],'__') !== FALSE){
85 $data['settings']['field_id'] = substr($data['settings']['field_id'], strpos($data['settings']['field_id'],'__')+2);
86 }
87
88 if($data['settings']['norender'] == 1) {
89 $data['field_value'] = wdk_field_value ($data['settings']['field_id'], $post_id);
90 } elseif(wdk_field_option($data['settings']['field_id'], 'field_type') == "CHECKBOX") {
91 if(wdk_field_value ($data['settings']['field_id'], $post_id) == 1){
92 $data['field_value'] = '<span class="field_checkbox_success"><span class="label label-success"><span class="dashicons dashicons-saved"></span></span></span>';
93 } else {
94 $data['field_value'] = '<span class="field_checkbox_unsuccess"><span class="label label-success"><span class="dashicons dashicons-unsaved"></span></span></span>';
95 }
96 } else if(wdk_field_option($data['settings']['field_id'],'field_type') == "INPUTBOX") {
97 $data['field_value'] = wdk_field_value ($data['settings']['field_id'], $post_id);
98
99 if(strpos($data['field_value'], 'vimeo.com') !== FALSE)
100 {
101 $data['field_value'] = wp_oembed_get($data['field_value'], array("width"=>"800", "height"=>"450"));
102 }
103 elseif(strpos($data['field_value'], 'watch?v=') !== FALSE)
104 {
105 $embed_code = substr($data['field_value'], strpos($data['field_value'], 'watch?v=')+8);
106 $data['field_value'] = wp_oembed_get('https://www.youtube.com/watch?v='.$embed_code, array("width"=>"800", "height"=>"455"));
107 }
108 elseif(strpos($data['field_value'], 'youtu.be/') !== FALSE)
109 {
110 $embed_code = substr($data['field_value'], strpos($data['field_value'], 'youtu.be/')+9);
111 $data['field_value'] = wp_oembed_get('https://www.youtube.com/watch?v='.$embed_code, array("width"=>"800", "height"=>"455"));
112 }
113 elseif(filter_var($data['field_value'], FILTER_VALIDATE_URL) !== FALSE && preg_match('/\.(mp4|flv|wmw|ogv|webm|ogg)$/i', $data['field_value']))
114 {
115 $data['field_value'] = '<video src="'.$data['field_value'].'" controls></video> ';
116 }
117 elseif(filter_var($data['field_value'] , FILTER_VALIDATE_URL) !== FALSE) {
118 $data['field_value'] = '<a href="'.$data['field_value'] .'">'.wdk_field_label($data['settings']['field_id']).'</a>';
119 }
120 }
121 elseif($data['settings']['field_id'] == 'category_id') {
122 if(wdk_field_value ($data['settings']['field_id'], $post_id)){
123 $WMVC->model('category_m');
124 $tree_data = $WMVC->category_m->get(wdk_field_value ($data['settings']['field_id'], $post_id), TRUE);
125 $data['field_value'] = wmvc_show_data('category_title', $tree_data);
126 }
127 }
128 elseif($data['settings']['field_id'] == 'location_id') {
129 if(wdk_field_value ($data['settings']['field_id'], $post_id)){
130 $WMVC->model('location_m');
131 $tree_data = $WMVC->location_m->get(wdk_field_value ($data['settings']['field_id'], $post_id), TRUE);
132 $data['field_value'] = wmvc_show_data('location_title', $tree_data);
133 }
134 }
135 else {
136 $data['field_value'] = wdk_field_value ($data['settings']['field_id'], $post_id);
137 }
138
139 $data['field_prefix'] = wdk_field_option ($data['settings']['field_id'], 'prefix');
140 $data['field_suffix'] = wdk_field_option ($data['settings']['field_id'], 'suffix');
141 }
142
143 $data['is_edit_mode']= false;
144
145 /* return false if no content */
146 if(wdk_field_value($data['settings']['field_id'], $post_id) == '')
147 return false;
148
149 $data['field_value'] = apply_filters( 'wpdirectorykit/listing/field/value', (wmvc_show_data('value', $data['field_value'])), $data['settings']['field_id']);
150
151 if($data['settings']['norender'] == 1) {
152 return $data['field_value'];
153 } else {
154 return wdk_shortcodes_view('shortcode-wdk-listing-field-value-text', $data);
155 }
156 }
157
158
159 function link_shortcode( $atts, $content = null ) {
160 extract( shortcode_atts( array(
161 'url' => '#',
162 'text' => 'Click Here'
163 ), $atts ) );
164 return '<a href="' . esc_url( $url ) . '">' . esc_attr( $text ) . '</a>';
165 }
166 add_shortcode( 'link', 'link_shortcode' );
167
168 ?>