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 |