PluginProbe ʕ •ᴥ•ʔ
Download Manager / trunk
Download Manager vtrunk
3.3.62 3.3.61 3.3.60 3.3.59 3.3.58 3.3.57 3.3.56 trunk 2.1.3 2.3.0 2.5.96 2.5.97 2.6.2 2.6.96 2.8.3 2.9.99 3.0.4 3.1.05 3.1.07 3.1.08 3.1.11 3.1.12 3.1.14 3.1.17 3.1.18 3.1.22 3.1.23 3.1.24 3.1.25 3.1.26 3.1.27 3.1.28 3.2.04 3.2.13 3.2.14 3.2.16 3.2.18 3.2.19 3.2.21 3.2.22 3.2.23 3.2.24 3.2.25 3.2.27 3.2.28 3.2.29 3.2.30 3.2.31 3.2.32 3.2.33 3.2.34 3.2.35 3.2.37 3.2.38 3.2.39 3.2.40 3.2.41 3.2.42 3.2.43 3.2.44 3.2.45 3.2.46 3.2.47 3.2.48 3.2.49 3.2.50 3.2.51 3.2.52 3.2.53 3.2.54 3.2.55 3.2.56 3.2.57 3.2.58 3.2.59 3.2.60 3.2.61 3.2.63 3.2.64 3.2.65 3.2.66 3.2.67 3.2.68 3.2.69 3.2.70 3.2.71 3.2.72 3.2.73 3.2.74 3.2.75 3.2.76 3.2.77 3.2.78 3.2.79 3.2.80 3.2.81 3.2.82 3.2.83 3.2.84 3.2.85 3.2.86 3.2.87 3.2.88 3.2.89 3.2.90 3.2.91 3.2.92 3.2.93 3.2.94 3.2.95 3.2.96 3.2.97 3.2.98 3.2.99 3.3.00 3.3.01 3.3.02 3.3.03 3.3.04 3.3.05 3.3.06 3.3.07 3.3.08 3.3.09 3.3.10 3.3.11 3.3.12 3.3.13 3.3.14 3.3.15 3.3.16 3.3.17 3.3.18 3.3.19 3.3.20 3.3.21 3.3.22 3.3.23 3.3.24 3.3.25 3.3.26 3.3.27 3.3.28 3.3.29 3.3.30 3.3.31 3.3.32 3.3.33 3.3.34 3.3.35 3.3.36 3.3.37 3.3.38 3.3.39 3.3.40 3.3.41 3.3.42 3.3.43 3.3.44 3.3.45 3.3.46 3.3.47 3.3.48 3.3.49 3.3.50 3.3.51 3.3.52 3.3.53 3.3.54 3.3.55
download-manager / src / Package / views / all-packages-shortcode.php
download-manager / src / Package / views Last commit date
link-templates 5 months ago lock-options 6 months ago page-templates 4 months ago all-packages-shortcode.php 1 week ago category-shortcode-toolbar.php 1 year ago file-list.php 5 years ago lock-options-iframe.php 5 months ago packages-shortcode-toolbar.php 1 year ago packages-shortcode.php 2 years ago search-result.php 5 years ago shortcode-iframe.php 5 months ago
all-packages-shortcode.php
415 lines
1 <?php
2
3 use WPDM\__\__;
4
5 if (!defined('ABSPATH')) die();
6 global $btnclass;
7
8 if(!is_array($params)) $params = array();
9 $p = serialize($params);
10 $tid = md5($p);
11 if(!isset($params['items_per_page'])) $params['items_per_page'] = 20;
12 $cols = isset($params['cols'])?esc_attr($params['cols']):'page_link,file_count,download_count|categories|update_date|download_link';
13 $colheads = isset($params['colheads'])?esc_attr($params['colheads']):'Title|Categories|Update Date|Download';
14 $cols = explode("|", $cols);
15 $colheads = explode("|", $colheads);
16 foreach ($cols as $index => &$col){
17 $col = explode(",", $col);
18 $colheads[$index] = !isset($colheads[$index])?esc_attr($col[0]):esc_attr($colheads[$index]);
19 }
20
21 $column_positions = array();
22
23 //$coltemplate['title'] = $coltemplate['post_title'] = "%the_title%";
24 $coltemplate['page_link'] = "<a class=\"package-title\" href=\"%s\">%s</a>";
25
26 if(isset($params['jstable']) && $params['jstable']==1):
27 $_cols = explode("|", wpdm_valueof($params, 'cols', ['default' => '']));
28 $datatable_col = ( isset($params['order_by']) && $params['order_by'] == 'title' ) ? '0' : array_search(wpdm_valueof($params, 'order_by'), $_cols);
29 if(!$datatable_col || $datatable_col < 0) $datatable_col = 0;
30 $datatable_order = ( isset($params['order']) && $params['order'] == 'DESC' ) ? 'desc' : 'asc';
31
32 ?>
33
34 <script>
35 jQuery(function($){
36
37 var __dt = $('#wpdmmydls-<?php echo esc_attr($tid); ?>').dataTable({
38 "dom": '<"wpdmdt-toolbar"lfrB>t<"wpdmdt-toolbarb"ip>',
39 responsive: true,
40 "order": [[ <?php echo esc_attr($datatable_col); ?>, "<?php echo esc_attr($datatable_order); ?>" ]],
41 "language": {
42 "lengthMenu": "<?php _e("Display _MENU_ downloads per page",'download-manager')?>",
43 "zeroRecords": "<?php _e("Nothing _START_ to - sorry",'download-manager')?>",
44 "info": "<?php _e("Showing _START_ to _END_ of _TOTAL_ downloads",'download-manager')?>",
45 "infoEmpty": "<?php _e("No downloads available",'download-manager')?>",
46 "infoFiltered": "<?php _e("(filtered from _MAX_ total downloads)",'download-manager');?>",
47 "emptyTable": "<?php _e("No data available in table",'download-manager');?>",
48 "infoPostFix": "",
49 "thousands": ",",
50 "loadingRecords": "<?php _e("Loading...",'download-manager'); ?>",
51 "processing": "<?php _e("Processing...",'download-manager'); ?>",
52 "search": "<?php _e("Search:",'download-manager'); ?>",
53 "paginate": {
54 "first": "<?php _e("First",'download-manager'); ?>",
55 "last": "<?php _e("Last",'download-manager'); ?>",
56 "next": "<?php _e("Next",'download-manager'); ?>",
57 "previous": "<?php _e("Previous",'download-manager'); ?>"
58 },
59 "aria": {
60 "sortAscending": " : <?php _e("activate to sort column ascending",'download-manager'); ?>",
61 "sortDescending": ": <?php _e("activate to sort column descending",'download-manager'); ?>"
62 }
63 },
64 "iDisplayLength": <?php echo (int)$params['items_per_page'] ?>,
65 "aLengthMenu": [[<?php echo (int)$params['items_per_page']; ?>, 10, 25, 50, -1], [<?php echo (int)$params['items_per_page']; ?>, 10, 25, 50, "<?php _e("All",'download-manager'); ?>"]]
66 });
67
68 <?php if(count($_GET) > 0){ ?>
69 $("div.wpdmdt-toolbar .dataTables_filter").append('<a href="<?php the_permalink(); ?>" class="btn btn-secondary ml-3" style="margin-top: -5px;border: 0;"><?php echo esc_attr__( 'Reset Filter', "download-manager" ); ?></a>');
70 <?php } ?>
71 });
72 </script>
73 <?php endif; ?>
74 <style>
75 .wpdmdt-toolbar {
76 padding: 10px;
77 }
78 .wpdmdt-toolbarb {
79 padding: 5px 10px 10px;
80 }
81 .wpdmdt-toolbar > div {
82 display: inline-block;
83 }
84 table,td,th{
85 border: 0;
86 }
87 #wpdm-all-packages .card{
88 overflow: hidden;
89 }
90 .dataTables_wrapper .table{
91 margin: 0;
92 }
93 #wpdmmydls-<?php echo $tid; ?>{
94 border-bottom: 1px solid #dddddd;
95 border-top: 1px solid #dddddd;
96 font-size: 10pt;
97 min-width: 100%;
98 }
99 #wpdmmydls-<?php echo $tid; ?> .wpdm-download-link img{
100 box-shadow: none !important;
101 max-width: 100%;
102 }
103 .w3eden .pagination{
104 margin: 0 !important;
105 }
106 #wpdmmydls-<?php echo $tid; ?> td:not(:first-child){
107 vertical-align: middle !important;
108 }
109 #wpdmmydls-<?php echo $tid; ?> td.__dt_col_download_link .btn{
110 display: flex;
111 width: 100%;
112 }
113 #wpdmmydls-<?php echo $tid; ?> td.__dt_col_download_link,
114 #wpdmmydls-<?php echo $tid; ?> th#download_link{
115 max-width: 155px !important;
116 width: 155px;
117
118 }
119 #wpdmmydls-<?php echo $tid; ?> th{
120 background-color: rgba(0,0,0,0.04);
121 border-bottom: 1px solid rgba(0,0,0,0.025);
122 }
123 #wpdmmydls-<?php echo $tid; ?>_length label,
124 #wpdmmydls-<?php echo $tid; ?>_filter label{
125 font-weight: 400;
126 }
127 #wpdmmydls-<?php echo $tid; ?>_filter input[type=search]{
128 display: inline-block;
129 width: 200px;
130 }
131 #wpdmmydls-<?php echo $tid; ?>_length select{
132 display: inline-block;
133 width: 60px;
134 }
135
136 #wpdmmydls-<?php echo $tid; ?> .package-title{
137 color:#36597C;
138 font-size: 11pt;
139 font-weight: 700;
140 }
141 #wpdmmydls-<?php echo $tid; ?> .small-txt{
142 margin-right: 7px;
143 }
144 #wpdmmydls-<?php echo $tid; ?> td{
145 min-width: 150px;
146 }
147
148 #wpdmmydls-<?php echo $tid; ?> td.__dt_col_categories{
149 max-width: 300px;
150 }
151
152 #wpdmmydls-<?php echo $tid; ?> .small-txt,
153 #wpdmmydls-<?php echo $tid; ?> small{
154 font-size: 9pt;
155 }
156 .w3eden .table-striped tbody tr:nth-of-type(2n+1) {
157 background-color: rgba(0,0,0,0.015);
158 }
159 .dataTables_wrapper .dataTables_paginate .paginate_button:active,
160 .dataTables_wrapper .dataTables_paginate .paginate_button:focus,
161 .dataTables_wrapper .dataTables_paginate .paginate_button:hover,
162 .dataTables_wrapper .dataTables_paginate .paginate_button{
163 margin: 0 !important;
164 padding: 0 !important;
165 border: 0 !important;
166 background: transparent !important;
167 }
168
169
170 @media (max-width: 799px) {
171 #wpdmmydls-<?php echo $tid; ?> tr {
172 display: block;
173 border: 3px solid rgba(0,0,0,0.3) !important;
174 margin-bottom: 10px !important;
175 position: relative;
176 }
177 #wpdmmydls-<?php echo $tid; ?> thead{
178 display: none;
179 }
180 #wpdmmydls-<?php echo $tid; ?>,
181 #wpdmmydls-<?php echo $tid; ?> td:first-child {
182 border: 0 !important;
183 }
184 #wpdmmydls-<?php echo $tid; ?> td {
185 display: block;
186 }
187 #wpdmmydls-<?php echo $tid; ?> td.__dt_col_download_link {
188 display: block;
189 max-width: 100% !important;
190 width: auto !important;
191
192 }
193 }
194
195
196 </style>
197 <div class="w3eden">
198 <div id="wpdm-all-packages">
199 <table id="wpdmmydls-<?php echo $tid; ?>" class="table table-striped wpdm-all-packages-table">
200 <thead>
201 <tr>
202 <?php foreach ($colheads as $ix => $colhead){
203 $_colhead = explode("::", $colhead);
204 $width = (isset($_colhead[1]))?"width: {$_colhead[1]} !important;max-width: {$_colhead[1]} !important;":"";
205 ?>
206 <th style="<?php echo esc_attr($width); ?>" id="<?php echo esc_attr(wpdm_valueof($cols, "{$ix}/0", [], 'alphanum')); ?>" class="<?php if($ix > 0) echo 'hidden-sm hidden-xs'; ?>"><?php esc_attr_e($_colhead[0],'download-manager'); ?></th>
207 <?php } ?>
208
209 </tr>
210 </thead>
211 <tbody>
212 <?php
213
214
215 $cfurl = get_permalink();
216 $query_params = array("post_type"=>"wpdmpro","posts_per_page"=>$items,"offset"=>$offset);
217 if(isset($tax_query)) $query_params['tax_query'] = $tax_query;
218 $query_params['orderby'] = (isset($params['order_by']))?$params['order_by']:'date';
219
220 $order_field = isset($params['order_by']) ? $params['order_by'] : 'date';
221 $order = isset($params['order']) ? $params['order'] : 'DESC';
222
223 $order_fields = array('__wpdm_download_count','__wpdm_view_count','__wpdm_package_size_b');
224 if(!in_array( "__wpdm_".$order_field, $order_fields)) {
225 $query_params['orderby'] = $order_field;
226 $query_params['order'] = $order;
227 } else {
228 $query_params['orderby'] = 'meta_value_num';
229 $query_params['meta_key'] = "__wpdm_".$order_field;
230 $query_params['order'] = $order;
231 }
232
233 if(is_array(wpdm_query_var('tax'))){
234 foreach (wpdm_query_var('tax') as $tax => $term) {
235 $query_params['tax_query'][] = [
236 'taxonomy' => __::sanitize_var($tax, 'safetxt'),
237 'field' => 'slug',
238 'terms' => [__::sanitize_var($term, 'safetxt')]
239 ];
240 $query_params['tax_query']['relation'] = 'AND';
241 }
242 }
243
244 $taxonomies = get_object_taxonomies( 'wpdmpro' );
245
246 $query_params = apply_filters('wpdm_all_packages_query_params', $query_params);
247
248 $q = new WP_Query($query_params);
249 $total_files = $q->found_posts;
250 while ($q->have_posts()): $q->the_post();
251
252 $ext = "unknown";
253 $data = WPDM()->package->prepare(get_the_ID())->packageData;
254 //wpdmdd($data);
255 global $post;
256 $data += (array)$post;
257 $data['id'] = $data['ID'];
258 $data['files'] = WPDM()->package->getFiles(get_the_ID());
259 //$author = get_user_by('id', $post->post_author);
260 $data['author'] = $data['author_name'];
261
262 $data = apply_filters('wpdm_all_packages_tags', $data);
263
264 if(isset($data['files'])&&count($data['files'])){
265 if(count($data['files']) == 1) {
266 $tmpavar = $data['files'];
267 $ffile = $tmpvar = array_shift($tmpavar);
268 $tmpvar = explode(".", $tmpvar);
269 $ext = count($tmpvar) > 1 ? end($tmpvar) : $ext;
270 } else
271 $ext = 'zip';
272 } else $data['files'] = array();
273
274 foreach ($taxonomies as $taxonomy) {
275 $terms = wp_get_post_terms(get_the_ID(), $taxonomy);
276 $_terms = array();
277 foreach ($terms as $term) {
278 $lurl = add_query_arg(['tax' => [$taxonomy => $term->slug]], $cfurl);
279 $_terms[] = "<a class='sbyc' href='{$lurl}'>{$term->name}</a>";
280 }
281 $_terms = @implode(", ", $_terms);
282 $data[$taxonomy] = $_terms;
283 }
284
285 if($ext=='') $ext = 'unknown';
286
287 $ext = \WPDM\__\FileSystem::fileTypeIcon($ext);
288
289 if(isset($data['icon']) && $data['icon'] !== '') $ext = $data['icon'];
290
291 if(isset($params['thumb']) && (int)$params['thumb'] == 1) $ext = wpdm_thumb($post, array(96,104), 'url');
292
293 $data['download_url'] = '';
294 $data['download_link'] = WPDM()->package->downloadLink($data['ID'], 0, array('template_type' => 'link'));
295 $data = apply_filters("wpdm_after_prepare_package_data", $data);
296 $download_link = $data['download_link'];
297 if (function_exists('wpdmpp_effective_price') && wpdmpp_effective_price($data['ID']) > 0)
298 $download_link = wpdmpp_waytocart($data, 'btn-primary');
299
300 if(WPDM()->package->userCanAccess($data['ID']) || !get_option("_wpdm_hide_all", 0)){
301 ?>
302
303 <tr class="__dt_row">
304 <?php
305 $tcols = $cols;
306 array_shift($tcols);
307 foreach ($cols as $colx => $cold){
308 $dor = array('publish_date' => strtotime(get_the_date('Y-m-d')), 'create_date' => strtotime(get_the_date('Y-m-d')), 'update_date' => strtotime(get_the_modified_date('Y-m-d', get_the_ID())), 'package_size' => __::convertToBytes($data['package_size']));
309 ?>
310 <td <?php if(in_array($cold[0], array('publish_date', 'update_date','create_date', 'package_size'))) { ?> data-order="<?php echo esc_attr($dor[$cold[0]]); ?>" <?php } ?> class="__dt_col_<?php echo esc_attr($colx); ?> __dt_col __dt_col_<?php echo esc_attr($cold[0]); ?>" <?php if($colx == 0) { ?>style="background-image: url('<?php echo esc_attr($ext) ; ?>');background-size: 36px;background-position: 5px 8px;background-repeat: no-repeat;padding-left: 52px;line-height: normal;"<?php } ?>>
311 <?php
312
313 foreach ($cold as $cx => $c){
314 $cxc = ($cx > 0)?'small-txt':'';
315 switch ($c) {
316 case 'title':
317 echo "<strong>".get_the_title()."</strong><br/>";
318 break;
319 case 'page_link':
320 echo "<a class=\"package-title\" href='".get_the_permalink(get_the_ID())."'>".get_the_title()."</a><br/>";
321 break;
322 case 'excerpt':
323 case (preg_match('/excerpt_.+/', $c) ? true : false) :
324 $xcol = explode("_", $c);
325 $len = isset($xcol[1])?$xcol[1]:false;
326 $cont = strip_tags($data['post_content']);
327
328 if(!$len)
329 echo "<div class='__dt_excerpt {$cxc}'>".get_the_excerpt()."</div>";
330 else {
331 $excerpt = strlen($cont) > $len?substr($cont, 0, strpos($cont, ' ', $len)):$cont;
332 echo "<div class='__dt_excerpt {$cxc}'>" . $excerpt . "</div>";
333 }
334 break;
335 case 'download_count':
336 if($cx > 0)
337 echo "<span class='__dt_download_count {$cxc}'><i class=\"far fa-arrow-alt-circle-down\"></i> ". (isset($data['download_count'])?$data['download_count']:0)." ".(isset($data['download_count']) && $data['download_count'] > 1 ? __('downloads','download-manager') : __('download','download-manager'))."</span>";
338 else
339 echo "<span class=\"hidden-md hidden-lg td-mobile\">{$colheads[$colx]}: </span><span class='__dt_download_count {$cxc}'>{$data['download_count']}</span>";
340 break;
341 case 'view_count':
342 if($cx > 0)
343 echo "<span class='__dt_view_count {$cxc}'><i class=\"fa fa-eye\"></i> ". (isset($data['view_count'])?$data['view_count']:0)." ".(isset($data['view_count']) && $data['view_count'] > 1 ? __('views','download-manager') : __('view','download-manager'))."</span>";
344 else
345 echo "<span class=\"hidden-md hidden-lg td-mobile\">{$colheads[$colx]}: </span><span class='__dt_view_count'>{$data['view_count']}</span>";
346 break;
347 case 'categories':
348 echo "<span class='__dt_categories {$cxc}'>".$data['wpdmcategory']."</span>";
349 break;
350 case 'tags':
351 echo "<span class='__dt_categories {$cxc}'>".$data['wpdmtag']."</span>";
352 break;
353 case 'update_date':
354 echo "<span class='__dt_update_date {$cxc}'>".get_the_modified_date('', get_the_ID())."</span>";
355 break;
356 case 'publish_date':
357 echo "<span class='__dt_publish_date {$cxc}'>".get_the_date()."</span>";
358 break;
359 case 'download_link':
360 echo $download_link ? $download_link : '<button type="button" disabled="disabled" class="btn btn-danger btn-block">'.__( "Download", "download-manager" ).'</button>';
361 break;
362 case 'audio_player':
363 $data['files'] = WPDM()->package->getFiles($data['ID']);
364 echo WPDM()->package->audioPlayer($data, true, 'success');
365 break;
366 case (preg_match('/^acf_(.+)/', $c) && function_exists('\WPDM\AddOn\wpdm_acf') ? true : false) :
367 $value = \WPDM\AddOn\wpdm_acf($data['ID'], str_replace("acf_", "", $c), true);
368 $value = maybe_unserialize($value);
369 if (is_array($value)) $value = implode(", ", $value);
370 echo "<span class='__dt_acf {$c}'>" . $value . "</span>";
371 break;
372 default:
373 if(isset($data[$c])) {
374 if ($cx > 0)
375 echo "<span class='__dt_{$c} {$cxc}'>" . $data[$c] . "</span>";
376 else
377 echo $data[$c];
378 }
379 break;
380
381
382 }}
383 if($colx == 0) echo '<div class="hidden-md hidden-lg td-mobile"></div>';
384 ?>
385
386
387 </td>
388 <?php } ?>
389
390 </tr>
391 <?php } endwhile; ?>
392 <?php if((!isset($params['jstable']) || $params['jstable']==0) && $total_files==0): ?>
393 <tr>
394 <td colspan="4" class="text-center">
395
396 <?php echo isset($params['no_data_msg']) && $params['no_data_msg']!='' ? esc_html($params['no_data_msg']) : __('No Packages Found','download-manager'); ?>
397
398 </td>
399 </tr>
400 <?php endif; ?>
401 </tbody>
402 </table>
403
404 <?php
405 global $wp_rewrite,$wp_query;
406
407 isset($wp_query->query_vars['paged']) && $wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1;
408
409 echo wpdm_paginate_links($total_files, $items, $cp);
410 wp_reset_query();
411 ?>
412
413 </div>
414 </div>
415