Version Description
Download this release
Release Info
| Developer | barrykooij |
| Plugin | |
| Version | 1.9.0 |
| Comparing to | |
| See all releases | |
Code changes from version 1.8.1 to 1.9.0
- assets/css/admin.css +1 -1
- assets/css/admin.less +19 -2
- download-monitor.php +4 -6
- includes/admin/class-dlm-admin-cpt.php +92 -0
- includes/admin/class-dlm-admin.php +38 -6
- includes/admin/class-dlm-logging-list-table.php +96 -3
- includes/admin/uaparser/resources/regexes.json +16 -4
- includes/class-dlm-download-handler.php +29 -4
- includes/class-dlm-download-no-access-page-endpoint.php +41 -0
- includes/class-dlm-file-manager.php +1 -1
- includes/class-dlm-installer.php +44 -0
- includes/class-dlm-logging.php +14 -1
- includes/class-dlm-shortcodes.php +42 -0
- includes/class-dlm-upgrade-manager.php +22 -0
- includes/class-wp-dlm.php +5 -1
- includes/product/class-dlm-product.php +3 -3
- installer-functions.php +1 -2
- readme.txt +14 -1
- templates/no-access.php +17 -0
assets/css/admin.css
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
#dlm_logs td{padding:7px;vertical-align:middle}#dlm_logs .column-status{width:4em}#dlm_logs td.column-status{font-size:10px;vertical-align:middle;text-align:center}#dlm_logs td.column-status span{color:#fff;font-weight:400;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%;height:18px;line-height:18px;width:18px;display:inline-block;background:url(../images/log-status-icons.png) top left no-repeat}#dlm_logs td.column-status .completed{background-color:#6cc644}#dlm_logs td.column-status .failed{background-color:#bd2c00;background-position-y:-18px}#dlm_logs td.column-status .redirected{background-color:#1c769b;background-position-y:-36px}#dlm_logs td.column-user_agent,#dlm_logs td.column-user_ip{font-family:monospace;font-weight:400}#dlm_logs span.dlm-description{font-weight:400}#dlm_logs .column-download,#dlm_logs .column-file,#dlm_logs .column-user,#dlm_logs .column-user_ua{width:16%!important}#dlm_logs .column-date,#dlm_logs .column-user_ip{width:6%!important}ul.download_monitor_file_browser{list-style:none outside;margin:0;border:1px solid #ddd;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background:#f9f9f9;padding:5px;-moz-box-shadow:inset 0 0 0 1px #fff;-webkit-box-shadow:inset 0 0 0 1px #fff;box-shadow:inset 0 0 0 1px #fff}ul.download_monitor_file_browser li{padding:0;margin:0}ul.download_monitor_file_browser li a{color:#21759B;display:block;padding:4px 0 4px 4px;text-decoration:none}ul.download_monitor_file_browser li a:hover{background-color:#eaf2fa}ul.download_monitor_file_browser li a:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f123";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.folder:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f318";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.filetype-3g2:before,ul.download_monitor_file_browser li a.filetype-3gp:before,ul.download_monitor_file_browser li a.filetype-asf:before,ul.download_monitor_file_browser li a.filetype-asx:before,ul.download_monitor_file_browser li a.filetype-avi:before,ul.download_monitor_file_browser li a.filetype-mov:before,ul.download_monitor_file_browser li a.filetype-mp4:before,ul.download_monitor_file_browser li a.filetype-mpg:before,ul.download_monitor_file_browser li a.filetype-rm:before,ul.download_monitor_file_browser li a.filetype-srt:before,ul.download_monitor_file_browser li a.filetype-vob:before,ul.download_monitor_file_browser li a.filetype-wmv:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f126";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.filetype-aif:before,ul.download_monitor_file_browser li a.filetype-iff:before,ul.download_monitor_file_browser li a.filetype-m3u:before,ul.download_monitor_file_browser li a.filetype-m4a:before,ul.download_monitor_file_browser li a.filetype-mid:before,ul.download_monitor_file_browser li a.filetype-midi:before,ul.download_monitor_file_browser li a.filetype-mp3:before,ul.download_monitor_file_browser li a.filetype-mpa:before,ul.download_monitor_file_browser li a.filetype-ra:before,ul.download_monitor_file_browser li a.filetype-wav:before,ul.download_monitor_file_browser li a.filetype-wma:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f127";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.filetype-ai:before,ul.download_monitor_file_browser li a.filetype-bmp:before,ul.download_monitor_file_browser li a.filetype-dds:before,ul.download_monitor_file_browser li a.filetype-eps:before,ul.download_monitor_file_browser li a.filetype-gif:before,ul.download_monitor_file_browser li a.filetype-ico:before,ul.download_monitor_file_browser li a.filetype-jpeg:before,ul.download_monitor_file_browser li a.filetype-jpg:before,ul.download_monitor_file_browser li a.filetype-png:before,ul.download_monitor_file_browser li a.filetype-ps:before,ul.download_monitor_file_browser li a.filetype-psd:before,ul.download_monitor_file_browser li a.filetype-pspimage:before,ul.download_monitor_file_browser li a.filetype-svg:before,ul.download_monitor_file_browser li a.filetype-tga:before,ul.download_monitor_file_browser li a.filetype-thm:before,ul.download_monitor_file_browser li a.filetype-tif:before,ul.download_monitor_file_browser li a.filetype-yuv:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f128";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li.nofiles{color:#999;font-style:italic;padding:4px 0}ul.download_monitor_file_browser li ul{list-style:none outside;margin:0;padding:0 0 0 28px}ul.download_monitor_file_browser li ul.loading{background:url(../images/ajax-loader.gif) no-repeat 24px 0;height:32px}table.wp-list-table .column-thumb{width:44px;text-align:center;white-space:nowrap}table.wp-list-table .column-dlm_download_cat,table.wp-list-table .column-dlm_download_tag,table.wp-list-table .column-file{width:11%!important}table.wp-list-table .column-file,table.wp-list-table .column-title{width:17%!important}table.wp-list-table .column-download_id,table.wp-list-table .column-version{width:5em}table.wp-list-table th.column-download_count span:first-child,table.wp-list-table th.column-featured span:first-child,table.wp-list-table th.column-members_only span:first-child,table.wp-list-table th.column-redirect_only span:first-child,table.wp-list-table th.column-thumb span:first-child{float:none;display:inline-block;width:1em;height:1em;line-height:1em;padding:2px 0 0;overflow:hidden}table.wp-list-table th.column-download_count .sorting-indicator,table.wp-list-table th.column-featured .sorting-indicator,table.wp-list-table th.column-members_only .sorting-indicator,table.wp-list-table th.column-redirect_only .sorting-indicator,table.wp-list-table th.column-thumb .sorting-indicator{float:right}table.wp-list-table th.column-thumb{width:52px;text-align:center}table.wp-list-table th.column-thumb span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f128";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-download_count{width:5em}table.wp-list-table th.column-download_count span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f346";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-members_only{width:3.5em}table.wp-list-table th.column-members_only span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f338";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-redirect_only{width:3.5em}table.wp-list-table th.column-redirect_only span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f103";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-featured{width:3.5em}table.wp-list-table th.column-featured span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f155";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table td.column-download_count,table.wp-list-table td.column-featured,table.wp-list-table td.column-members_only,table.wp-list-table td.column-redirect_only{text-align:left;padding-left:11px}table.wp-list-table td.column-download_count span.na,table.wp-list-table td.column-featured span.na,table.wp-list-table td.column-members_only span.na,table.wp-list-table td.column-redirect_only span.na{color:#999;width:1em;height:1em;line-height:1em;display:inline-block;overflow:hidden;vertical-align:middle}table.wp-list-table td.column-download_count span.na:before,table.wp-list-table td.column-featured span.na:before,table.wp-list-table td.column-members_only span.na:before,table.wp-list-table td.column-redirect_only span.na:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f460";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table td.column-download_count span.yes,table.wp-list-table td.column-featured span.yes,table.wp-list-table td.column-members_only span.yes,table.wp-list-table td.column-redirect_only span.yes{width:1em;height:1em;line-height:1em;display:inline-block;overflow:hidden;vertical-align:middle}table.wp-list-table td.column-download_count span.yes:before,table.wp-list-table td.column-featured span.yes:before,table.wp-list-table td.column-members_only span.yes:before,table.wp-list-table td.column-redirect_only span.yes:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f147";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table .column-thumb img{padding:2px;margin:0;border:1px solid #dfdfdf;vertical-align:middle;width:32px;height:32px}#download-monitor-file .inside{padding:0;margin:0}#download-monitor-file .dlm-metaboxes-wrapper .close_all,#download-monitor-file .dlm-metaboxes-wrapper .expand_all{float:right;margin-left:1em;line-height:22px;text-decoration:none}#download-monitor-file .dlm-metaboxes-wrapper .expand_all:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f168";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .close_all:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f460";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper p.toolbar{margin:0!important;border-top:1px solid #fff;border-bottom:1px solid #DFDFDF;padding:7px 12px!important;overflow:hidden;zoom:1}#download-monitor-file .dlm-metaboxes-wrapper p.toolbar a.button{float:left;margin:0}#download-monitor-file .dlm-metaboxes-wrapper .fr,#download-monitor-file .dlm-metaboxes-wrapper button.add_attribute,#download-monitor-file .dlm-metaboxes-wrapper button.add_variable_attribute,#download-monitor-file .dlm-metaboxes-wrapper select.attribute_taxonomy{float:right;margin:0 0 0 6px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metaboxes{padding:0 12px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox-sortable-placeholder{border-color:#bbb;background-color:#f5f5f5;margin:9px 0;border-width:1px;border-style:dashed}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox{background:#ececec;border:1px solid #ececec;margin:9px 0!important}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3{margin:0!important;padding:6px!important;font-size:1em!important;overflow:hidden;zoom:1;cursor:move}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 button{float:right}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 strong{font-weight:400;line-height:24px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 select{font-family:sans-serif}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 .handlediv{background-position:6px 5px!important;display:none;height:24px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox:hover h3 .handlediv{display:block}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table{width:100%;position:relative;background:#fff;padding:3px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td{text-align:left;padding:6px;vertical-align:top;border:0;line-height:26px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td label{text-align:left;display:block;line-height:21px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input{float:left;min-width:200px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input,#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td textarea{width:100%;margin:0;display:block;font-size:14px;padding:4px;color:#555}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td textarea{height:7.5em}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td select{width:100%}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.short{width:200px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.checkbox{width:auto;min-width:inherit;vertical-align:middle;display:inline;float:none}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.date-picker-field{width:50%;min-width:inherit;float:none;display:inline}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.hour,#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.minute{width:2em;min-width:inherit;float:none;display:inline}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td.attribute_name{width:200px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .minus,#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .plus{margin-top:6px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .fl{float:left}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .fr{float:right}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox:first-child h3{background:#EAF2FA;background-image:linear-gradient(bottom,#dae6f2 0,#eaf2fa 100%);background-image:-o-linear-gradient(bottom,#dae6f2 0,#eaf2fa 100%);background-image:-moz-linear-gradient(bottom,#dae6f2 0,#eaf2fa 100%);background-image:-webkit-linear-gradient(bottom,#dae6f2 0,#eaf2fa 100%);background-image:-ms-linear-gradient(bottom,#dae6f2 0,#eaf2fa 100%);background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0,#dae6f2),color-stop(1,#eaf2fa));border-color:#d3deea;color:#21759B}#download-monitor-file .dlm-metaboxes-wrapper .plus:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f132";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .minus:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f460";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .dlm_upload_file:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f317";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .dlm_browse_for_file:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f322";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-information p{overflow:hidden}#download-monitor-information p label{width:100%;font-weight:700;box-sizing:border-box;line-height:28px;float:left}#download-monitor-information p label input{width:65%;padding:5px;font-size:11px;font-weight:400;background:#eaeaea;border:0;box-shadow:none;box-sizing:border-box;float:right}#download-monitor-options .inside{padding:0;margin:0}#download-monitor-options .form-field-checkbox label{display:inline;padding:0 0 4px}#download-monitor-options .form-field-checkbox input{display:inline-block;width:auto;vertical-align:middle}#download-monitor-options .form-field-checkbox .dlm-description{padding:4px 0 0;display:block}#download-monitor-options .access_permissions{margin:0!important;border-top:1px solid #fff;border-bottom:1px solid #DFDFDF;padding:7px 12px!important;overflow:hidden;zoom:1}#download-monitor-options .access_permissions h4{margin:0 0 .5em}#download-monitor-options .access_permissions ul{background:#fff;border:1px solid #dfdfdf;height:110px;overflow:auto;padding:.5em .9em;margin:0}#download-monitor-options p{margin:0!important;border-top:1px solid #fff;border-bottom:1px solid #DFDFDF;padding:7px 12px!important;overflow:hidden;zoom:1}#insert-download{padding:20px}#insert-download .error,#insert-download .updated{margin-left:0;margin-right:0}#insert-download h2{margin-top:0}#insert-download label{margin:0 0 .25em;display:block;font-size:1.1em}#insert-download span.description{display:block}#insert-download input.input{margin:0 0 .25em;display:block;width:100%;font-size:1.1em}#insert-download .add_link{float:right}#insert-download ul.page-numbers{overflow:hidden;zoom:1;margin:0 auto;padding:0;text-align:center}#insert-download ul.page-numbers li{display:inline-block;margin:0;list-style:none outside;line-height:1em}#insert-download ul.page-numbers li a,#insert-download ul.page-numbers li span{text-decoration:none;border:1px solid #ddd;-webkit-border-radius:4px;border-radius:4px;padding:8px;display:block}#insert-download ul.page-numbers li span{border-color:#eee}#insert-download legend{font-weight:700;display:block;margin:0 0 1em}#insert-download fieldset label{display:block;margin:0 0 .5em}.dlm_extensions_wrap h2 a.dlm-reload-button{float:right}.dlm_extensions_wrap .dlm_extensions{padding:15px 0;overflow:hidden}.dlm_extensions_wrap .dlm_extensions div.dlm_extension{cursor:auto!important}.dlm_extensions_wrap .dlm_extensions div.dlm_extension a{color:#444;text-decoration:none}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .dlm_extension_img_wrapper{width:100%;background:#419CCB;text-align:center}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .dlm_extension_img_wrapper img{max-width:100%;margin:0 auto}.dlm_extensions_wrap .dlm_extensions div.dlm_extension h3{padding:0 20px}.dlm_extensions_wrap .dlm_extensions div.dlm_extension p.extension-desc{min-height:85px;padding:0 20px}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .product_footer{padding:0 20px 15px}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .product_footer .loop_price{font-weight:700}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .product_footer .loop_price.sale{color:green}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .product_footer .loop_price.sale strike{color:#444}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .product_footer .loop_more{color:#459ac9;text-decoration:none;font-weight:700;float:right}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .extension_license{padding:0 20px 20px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .extension_license p.license-status{padding:5px 0;margin:5px 0;background:red;font-weight:700;font-size:1.2em;color:#fff;text-align:center}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .extension_license p.license-status.active{background:green}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .extension_license input{width:100%;margin:7px 0;padding:7px}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .extension_license a.button-primary{width:100%;margin:5px auto 0;color:#fff;text-align:center}
|
| 1 |
+
#dlm_logs td{padding:7px;vertical-align:middle}#dlm_logs .check-column{width:1.5em;padding:0;vertical-align:middle}#dlm_logs .column-status{width:2em}#dlm_logs td.column-status{font-size:10px;vertical-align:middle;text-align:center}#dlm_logs td.column-status span{color:#fff;font-weight:400;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%;height:18px;line-height:18px;width:18px;display:inline-block;background:url(../images/log-status-icons.png) top left no-repeat}#dlm_logs td.column-status .completed{background-color:#6cc644}#dlm_logs td.column-status .failed{background-color:#bd2c00;background-position-y:-18px}#dlm_logs td.column-status .redirected{background-color:#1c769b;background-position-y:-36px}#dlm_logs td.column-user_agent,#dlm_logs td.column-user_ip{font-family:monospace;font-weight:400}#dlm_logs span.dlm-description{font-weight:400}#dlm_logs .column-download,#dlm_logs .column-file,#dlm_logs .column-user,#dlm_logs .column-user_ua{width:16%!important}#dlm_logs .column-date,#dlm_logs .column-user_ip{width:6%!important}.post-type-dlm_download .inline-edit-row .inline-edit-col-dlm .inline-edit-col-dlm-inner{margin-top:10px}ul.download_monitor_file_browser{list-style:none outside;margin:0;border:1px solid #ddd;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background:#f9f9f9;padding:5px;-moz-box-shadow:inset 0 0 0 1px #fff;-webkit-box-shadow:inset 0 0 0 1px #fff;box-shadow:inset 0 0 0 1px #fff}ul.download_monitor_file_browser li{padding:0;margin:0}ul.download_monitor_file_browser li a{color:#21759B;display:block;padding:4px 0 4px 4px;text-decoration:none}ul.download_monitor_file_browser li a:hover{background-color:#eaf2fa}ul.download_monitor_file_browser li a:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f123";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.folder:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f318";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.filetype-3g2:before,ul.download_monitor_file_browser li a.filetype-3gp:before,ul.download_monitor_file_browser li a.filetype-asf:before,ul.download_monitor_file_browser li a.filetype-asx:before,ul.download_monitor_file_browser li a.filetype-avi:before,ul.download_monitor_file_browser li a.filetype-mov:before,ul.download_monitor_file_browser li a.filetype-mp4:before,ul.download_monitor_file_browser li a.filetype-mpg:before,ul.download_monitor_file_browser li a.filetype-rm:before,ul.download_monitor_file_browser li a.filetype-srt:before,ul.download_monitor_file_browser li a.filetype-vob:before,ul.download_monitor_file_browser li a.filetype-wmv:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f126";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.filetype-aif:before,ul.download_monitor_file_browser li a.filetype-iff:before,ul.download_monitor_file_browser li a.filetype-m3u:before,ul.download_monitor_file_browser li a.filetype-m4a:before,ul.download_monitor_file_browser li a.filetype-mid:before,ul.download_monitor_file_browser li a.filetype-midi:before,ul.download_monitor_file_browser li a.filetype-mp3:before,ul.download_monitor_file_browser li a.filetype-mpa:before,ul.download_monitor_file_browser li a.filetype-ra:before,ul.download_monitor_file_browser li a.filetype-wav:before,ul.download_monitor_file_browser li a.filetype-wma:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f127";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.filetype-ai:before,ul.download_monitor_file_browser li a.filetype-bmp:before,ul.download_monitor_file_browser li a.filetype-dds:before,ul.download_monitor_file_browser li a.filetype-eps:before,ul.download_monitor_file_browser li a.filetype-gif:before,ul.download_monitor_file_browser li a.filetype-ico:before,ul.download_monitor_file_browser li a.filetype-jpeg:before,ul.download_monitor_file_browser li a.filetype-jpg:before,ul.download_monitor_file_browser li a.filetype-png:before,ul.download_monitor_file_browser li a.filetype-ps:before,ul.download_monitor_file_browser li a.filetype-psd:before,ul.download_monitor_file_browser li a.filetype-pspimage:before,ul.download_monitor_file_browser li a.filetype-svg:before,ul.download_monitor_file_browser li a.filetype-tga:before,ul.download_monitor_file_browser li a.filetype-thm:before,ul.download_monitor_file_browser li a.filetype-tif:before,ul.download_monitor_file_browser li a.filetype-yuv:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f128";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li.nofiles{color:#999;font-style:italic;padding:4px 0}ul.download_monitor_file_browser li ul{list-style:none outside;margin:0;padding:0 0 0 28px}ul.download_monitor_file_browser li ul.loading{background:url(../images/ajax-loader.gif) no-repeat 24px 0;height:32px}table.wp-list-table .column-thumb{width:44px;text-align:center;white-space:nowrap}table.wp-list-table .column-dlm_download_cat,table.wp-list-table .column-dlm_download_tag,table.wp-list-table .column-file{width:11%!important}table.wp-list-table .column-file,table.wp-list-table .column-title{width:17%!important}table.wp-list-table .column-download_id,table.wp-list-table .column-version{width:5em}table.wp-list-table th.column-download_count span:first-child,table.wp-list-table th.column-featured span:first-child,table.wp-list-table th.column-members_only span:first-child,table.wp-list-table th.column-redirect_only span:first-child,table.wp-list-table th.column-thumb span:first-child{float:none;display:inline-block;width:1em;height:1em;line-height:1em;padding:2px 0 0;overflow:hidden}table.wp-list-table th.column-download_count .sorting-indicator,table.wp-list-table th.column-featured .sorting-indicator,table.wp-list-table th.column-members_only .sorting-indicator,table.wp-list-table th.column-redirect_only .sorting-indicator,table.wp-list-table th.column-thumb .sorting-indicator{float:right}table.wp-list-table th.column-thumb{width:52px;text-align:center}table.wp-list-table th.column-thumb span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f128";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-download_count{width:5em}table.wp-list-table th.column-download_count span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f346";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-members_only{width:3.5em}table.wp-list-table th.column-members_only span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f338";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-redirect_only{width:3.5em}table.wp-list-table th.column-redirect_only span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f103";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-featured{width:3.5em}table.wp-list-table th.column-featured span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f155";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table td.column-download_count,table.wp-list-table td.column-featured,table.wp-list-table td.column-members_only,table.wp-list-table td.column-redirect_only{text-align:left;padding-left:11px}table.wp-list-table td.column-download_count span.na,table.wp-list-table td.column-featured span.na,table.wp-list-table td.column-members_only span.na,table.wp-list-table td.column-redirect_only span.na{color:#999;width:1em;height:1em;line-height:1em;display:inline-block;overflow:hidden;vertical-align:middle}table.wp-list-table td.column-download_count span.na:before,table.wp-list-table td.column-featured span.na:before,table.wp-list-table td.column-members_only span.na:before,table.wp-list-table td.column-redirect_only span.na:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f460";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table td.column-download_count span.yes,table.wp-list-table td.column-featured span.yes,table.wp-list-table td.column-members_only span.yes,table.wp-list-table td.column-redirect_only span.yes{width:1em;height:1em;line-height:1em;display:inline-block;overflow:hidden;vertical-align:middle}table.wp-list-table td.column-download_count span.yes:before,table.wp-list-table td.column-featured span.yes:before,table.wp-list-table td.column-members_only span.yes:before,table.wp-list-table td.column-redirect_only span.yes:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f147";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table .column-thumb img{padding:2px;margin:0;border:1px solid #dfdfdf;vertical-align:middle;width:32px;height:32px}#download-monitor-file .inside{padding:0;margin:0}#download-monitor-file .dlm-metaboxes-wrapper .close_all,#download-monitor-file .dlm-metaboxes-wrapper .expand_all{float:right;margin-left:1em;line-height:22px;text-decoration:none}#download-monitor-file .dlm-metaboxes-wrapper .expand_all:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f168";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .close_all:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f460";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper p.toolbar{margin:0!important;border-top:1px solid #fff;border-bottom:1px solid #DFDFDF;padding:7px 12px!important;overflow:hidden;zoom:1}#download-monitor-file .dlm-metaboxes-wrapper p.toolbar a.button{float:left;margin:0}#download-monitor-file .dlm-metaboxes-wrapper .fr,#download-monitor-file .dlm-metaboxes-wrapper button.add_attribute,#download-monitor-file .dlm-metaboxes-wrapper button.add_variable_attribute,#download-monitor-file .dlm-metaboxes-wrapper select.attribute_taxonomy{float:right;margin:0 0 0 6px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metaboxes{padding:0 12px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox-sortable-placeholder{border-color:#bbb;background-color:#f5f5f5;margin:9px 0;border-width:1px;border-style:dashed}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox{background:#ececec;border:1px solid #ececec;margin:9px 0!important}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3{margin:0!important;padding:6px!important;font-size:1em!important;overflow:hidden;zoom:1;cursor:move}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 button{float:right}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 strong{font-weight:400;line-height:24px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 select{font-family:sans-serif}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 .handlediv{background-position:6px 5px!important;display:none;height:24px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox:hover h3 .handlediv{display:block}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table{width:100%;position:relative;background:#fff;padding:3px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td{text-align:left;padding:6px;vertical-align:top;border:0;line-height:26px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td label{text-align:left;display:block;line-height:21px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input{float:left;min-width:200px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input,#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td textarea{width:100%;margin:0;display:block;font-size:14px;padding:4px;color:#555}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td textarea{height:7.5em}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td select{width:100%}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.short{width:200px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.checkbox{width:auto;min-width:inherit;vertical-align:middle;display:inline;float:none}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.date-picker-field{width:50%;min-width:inherit;float:none;display:inline}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.hour,#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.minute{width:2em;min-width:inherit;float:none;display:inline}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td.attribute_name{width:200px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .minus,#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .plus{margin-top:6px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .fl{float:left}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .fr{float:right}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox:first-child h3{background:#EAF2FA;background-image:linear-gradient(bottom,#dae6f2 0,#eaf2fa 100%);background-image:-o-linear-gradient(bottom,#dae6f2 0,#eaf2fa 100%);background-image:-moz-linear-gradient(bottom,#dae6f2 0,#eaf2fa 100%);background-image:-webkit-linear-gradient(bottom,#dae6f2 0,#eaf2fa 100%);background-image:-ms-linear-gradient(bottom,#dae6f2 0,#eaf2fa 100%);background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0,#dae6f2),color-stop(1,#eaf2fa));border-color:#d3deea;color:#21759B}#download-monitor-file .dlm-metaboxes-wrapper .plus:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f132";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .minus:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f460";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .dlm_upload_file:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f317";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .dlm_browse_for_file:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f322";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-information p{overflow:hidden}#download-monitor-information p label{width:100%;font-weight:700;box-sizing:border-box;line-height:28px;float:left}#download-monitor-information p label input{width:65%;padding:5px;font-size:11px;font-weight:400;background:#eaeaea;border:0;box-shadow:none;box-sizing:border-box;float:right}#download-monitor-options .inside{padding:0;margin:0}#download-monitor-options .form-field-checkbox label{display:inline;padding:0 0 4px}#download-monitor-options .form-field-checkbox input{display:inline-block;width:auto;vertical-align:middle}#download-monitor-options .form-field-checkbox .dlm-description{padding:4px 0 0;display:block}#download-monitor-options .access_permissions{margin:0!important;border-top:1px solid #fff;border-bottom:1px solid #DFDFDF;padding:7px 12px!important;overflow:hidden;zoom:1}#download-monitor-options .access_permissions h4{margin:0 0 .5em}#download-monitor-options .access_permissions ul{background:#fff;border:1px solid #dfdfdf;height:110px;overflow:auto;padding:.5em .9em;margin:0}#download-monitor-options p{margin:0!important;border-top:1px solid #fff;border-bottom:1px solid #DFDFDF;padding:7px 12px!important;overflow:hidden;zoom:1}#insert-download{padding:20px}#insert-download .error,#insert-download .updated{margin-left:0;margin-right:0}#insert-download h2{margin-top:0}#insert-download label{margin:0 0 .25em;display:block;font-size:1.1em}#insert-download span.description{display:block}#insert-download input.input{margin:0 0 .25em;display:block;width:100%;font-size:1.1em}#insert-download .add_link{float:right}#insert-download ul.page-numbers{overflow:hidden;zoom:1;margin:0 auto;padding:0;text-align:center}#insert-download ul.page-numbers li{display:inline-block;margin:0;list-style:none outside;line-height:1em}#insert-download ul.page-numbers li a,#insert-download ul.page-numbers li span{text-decoration:none;border:1px solid #ddd;-webkit-border-radius:4px;border-radius:4px;padding:8px;display:block}#insert-download ul.page-numbers li span{border-color:#eee}#insert-download legend{font-weight:700;display:block;margin:0 0 1em}#insert-download fieldset label{display:block;margin:0 0 .5em}.dlm_extensions_wrap h2 a.dlm-reload-button{float:right}.dlm_extensions_wrap .dlm_extensions{padding:15px 0;overflow:hidden}.dlm_extensions_wrap .dlm_extensions div.dlm_extension{cursor:auto!important}.dlm_extensions_wrap .dlm_extensions div.dlm_extension a{color:#444;text-decoration:none}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .dlm_extension_img_wrapper{width:100%;background:#419CCB;text-align:center}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .dlm_extension_img_wrapper img{max-width:100%;margin:0 auto}.dlm_extensions_wrap .dlm_extensions div.dlm_extension h3{padding:0 20px}.dlm_extensions_wrap .dlm_extensions div.dlm_extension p.extension-desc{min-height:85px;padding:0 20px}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .product_footer{padding:0 20px 15px}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .product_footer .loop_price{font-weight:700}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .product_footer .loop_price.sale{color:green}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .product_footer .loop_price.sale strike{color:#444}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .product_footer .loop_more{color:#459ac9;text-decoration:none;font-weight:700;float:right}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .extension_license{padding:0 20px 20px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .extension_license p.license-status{padding:5px 0;margin:5px 0;background:red;font-weight:700;font-size:1.2em;color:#fff;text-align:center}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .extension_license p.license-status.active{background:green}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .extension_license input{width:100%;margin:7px 0;padding:7px}.dlm_extensions_wrap .dlm_extensions div.dlm_extension .extension_license a.button-primary{width:100%;margin:5px auto 0;color:#fff;text-align:center}
|
assets/css/admin.less
CHANGED
|
@@ -22,8 +22,14 @@
|
|
| 22 |
padding: 7px 7px;
|
| 23 |
vertical-align: middle;
|
| 24 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
.column-status {
|
| 26 |
-
width:
|
| 27 |
}
|
| 28 |
td.column-status {
|
| 29 |
font-size: 10px;
|
|
@@ -68,6 +74,16 @@
|
|
| 68 |
}
|
| 69 |
}
|
| 70 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 71 |
/* File lists */
|
| 72 |
ul.download_monitor_file_browser {
|
| 73 |
list-style: none outside;
|
|
@@ -443,7 +459,7 @@ table.wp-list-table {
|
|
| 443 |
overflow: hidden;
|
| 444 |
label {
|
| 445 |
width: 100%;
|
| 446 |
-
// font-size: 11px;
|
| 447 |
font-weight: bold;
|
| 448 |
box-sizing: border-box;
|
| 449 |
line-height: 28px;
|
|
@@ -578,6 +594,7 @@ table.wp-list-table {
|
|
| 578 |
}
|
| 579 |
}
|
| 580 |
|
|
|
|
| 581 |
.dlm_extensions_wrap {
|
| 582 |
h2 {
|
| 583 |
a.dlm-reload-button {
|
| 22 |
padding: 7px 7px;
|
| 23 |
vertical-align: middle;
|
| 24 |
}
|
| 25 |
+
.check-column {
|
| 26 |
+
width: 1.5em;
|
| 27 |
+
padding: 0;
|
| 28 |
+
vertical-align: middle;
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
.column-status {
|
| 32 |
+
width: 2em;
|
| 33 |
}
|
| 34 |
td.column-status {
|
| 35 |
font-size: 10px;
|
| 74 |
}
|
| 75 |
}
|
| 76 |
|
| 77 |
+
.post-type-dlm_download {
|
| 78 |
+
.inline-edit-row {
|
| 79 |
+
.inline-edit-col-dlm {
|
| 80 |
+
.inline-edit-col-dlm-inner {
|
| 81 |
+
margin-top: 10px;
|
| 82 |
+
}
|
| 83 |
+
}
|
| 84 |
+
}
|
| 85 |
+
}
|
| 86 |
+
|
| 87 |
/* File lists */
|
| 88 |
ul.download_monitor_file_browser {
|
| 89 |
list-style: none outside;
|
| 459 |
overflow: hidden;
|
| 460 |
label {
|
| 461 |
width: 100%;
|
| 462 |
+
// font-size: 11px;
|
| 463 |
font-weight: bold;
|
| 464 |
box-sizing: border-box;
|
| 465 |
line-height: 28px;
|
| 594 |
}
|
| 595 |
}
|
| 596 |
|
| 597 |
+
/* Extensions */
|
| 598 |
.dlm_extensions_wrap {
|
| 599 |
h2 {
|
| 600 |
a.dlm-reload-button {
|
download-monitor.php
CHANGED
|
@@ -3,11 +3,12 @@
|
|
| 3 |
Plugin Name: Download Monitor
|
| 4 |
Plugin URI: https://www.download-monitor.com
|
| 5 |
Description: A full solution for managing downloadable files, monitoring downloads and outputting download links and file information on your WordPress powered site.
|
| 6 |
-
Version: 1.
|
| 7 |
Author: Never5
|
| 8 |
Author URI: https://www.never5.com
|
| 9 |
Requires at least: 3.8
|
| 10 |
Tested up to: 4.3
|
|
|
|
| 11 |
|
| 12 |
License: GPL v3
|
| 13 |
|
|
@@ -32,7 +33,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
| 32 |
} // Exit if accessed directly
|
| 33 |
|
| 34 |
// Define DLM Version
|
| 35 |
-
define( 'DLM_VERSION', '1.
|
| 36 |
|
| 37 |
function __download_monitor_main() {
|
| 38 |
|
|
@@ -63,12 +64,9 @@ if ( is_admin() && ( false === defined( 'DOING_AJAX' ) || false === DOING_AJAX )
|
|
| 63 |
// Activation hook
|
| 64 |
register_activation_hook( DLM_PLUGIN_FILE_INSTALLER, '__download_monitor_install' );
|
| 65 |
|
| 66 |
-
// Flush Rewrites on Activation
|
| 67 |
-
register_activation_hook( DLM_PLUGIN_FILE_INSTALLER, 'flush_rewrite_rules', 11 );
|
| 68 |
-
|
| 69 |
// Multisite new blog hook
|
| 70 |
add_action( 'wpmu_new_blog', '__download_monitor_mu_new_blog', 10, 6 );
|
| 71 |
|
| 72 |
// Multisite blog delete
|
| 73 |
add_filter( 'wpmu_drop_tables', '__download_monitor_mu_delete_blog' );
|
| 74 |
-
}
|
| 3 |
Plugin Name: Download Monitor
|
| 4 |
Plugin URI: https://www.download-monitor.com
|
| 5 |
Description: A full solution for managing downloadable files, monitoring downloads and outputting download links and file information on your WordPress powered site.
|
| 6 |
+
Version: 1.9.0
|
| 7 |
Author: Never5
|
| 8 |
Author URI: https://www.never5.com
|
| 9 |
Requires at least: 3.8
|
| 10 |
Tested up to: 4.3
|
| 11 |
+
Text Domain: download-monitor
|
| 12 |
|
| 13 |
License: GPL v3
|
| 14 |
|
| 33 |
} // Exit if accessed directly
|
| 34 |
|
| 35 |
// Define DLM Version
|
| 36 |
+
define( 'DLM_VERSION', '1.9.0' );
|
| 37 |
|
| 38 |
function __download_monitor_main() {
|
| 39 |
|
| 64 |
// Activation hook
|
| 65 |
register_activation_hook( DLM_PLUGIN_FILE_INSTALLER, '__download_monitor_install' );
|
| 66 |
|
|
|
|
|
|
|
|
|
|
| 67 |
// Multisite new blog hook
|
| 68 |
add_action( 'wpmu_new_blog', '__download_monitor_mu_new_blog', 10, 6 );
|
| 69 |
|
| 70 |
// Multisite blog delete
|
| 71 |
add_filter( 'wpmu_drop_tables', '__download_monitor_mu_delete_blog' );
|
| 72 |
+
}
|
includes/admin/class-dlm-admin-cpt.php
CHANGED
|
@@ -26,6 +26,11 @@ class DLM_Admin_CPT {
|
|
| 26 |
add_filter( 'post_updated_messages', array( $this, 'post_updated_messages' ) );
|
| 27 |
add_filter( 'manage_edit-dlm_download_sortable_columns', array( $this, 'sortable_columns' ) );
|
| 28 |
add_filter( 'request', array( $this, 'sort_columns' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
}
|
| 30 |
|
| 31 |
/**
|
|
@@ -357,4 +362,91 @@ class DLM_Admin_CPT {
|
|
| 357 |
return $vars;
|
| 358 |
}
|
| 359 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 360 |
}
|
| 26 |
add_filter( 'post_updated_messages', array( $this, 'post_updated_messages' ) );
|
| 27 |
add_filter( 'manage_edit-dlm_download_sortable_columns', array( $this, 'sortable_columns' ) );
|
| 28 |
add_filter( 'request', array( $this, 'sort_columns' ) );
|
| 29 |
+
|
| 30 |
+
// bulk and quick edit
|
| 31 |
+
add_action( 'bulk_edit_custom_box', array( $this, 'bulk_quick_edit' ), 10, 2 );
|
| 32 |
+
add_action( 'quick_edit_custom_box', array( $this, 'bulk_quick_edit' ), 10, 2 );
|
| 33 |
+
add_action( 'save_post', array( $this, 'bulk_and_quick_edit_save_post' ), 10, 2 );
|
| 34 |
}
|
| 35 |
|
| 36 |
/**
|
| 362 |
return $vars;
|
| 363 |
}
|
| 364 |
|
| 365 |
+
/**
|
| 366 |
+
* Custom bulk edit - form
|
| 367 |
+
*
|
| 368 |
+
* @param mixed $column_name
|
| 369 |
+
* @param mixed $post_type
|
| 370 |
+
*/
|
| 371 |
+
public function bulk_quick_edit( $column_name, $post_type ) {
|
| 372 |
+
|
| 373 |
+
// only on our PT
|
| 374 |
+
if ( 'dlm_download' != $post_type || 'featured' != $column_name ) {
|
| 375 |
+
return;
|
| 376 |
+
}
|
| 377 |
+
|
| 378 |
+
// nonce field
|
| 379 |
+
wp_nonce_field( 'dlm_bulk_quick_edit_nonce', 'dlm_bulk_quick_edit_nonce' );
|
| 380 |
+
|
| 381 |
+
?>
|
| 382 |
+
<fieldset class="inline-edit-col-right inline-edit-col-dlm">
|
| 383 |
+
<div class="inline-edit-col inline-edit-col-dlm-inner">
|
| 384 |
+
<span class="title"><?php _e( 'Download Monitor Data', 'download-monitor' ); ?></span><br/>
|
| 385 |
+
<label for="_featured"><input type="checkbox" name="_featured" id="_featured"
|
| 386 |
+
value="1"/><?php _e( 'Featured download', 'download-monitor' ); ?></label>
|
| 387 |
+
<label for="_members_only"><input type="checkbox" name="_members_only" id="_members_only"
|
| 388 |
+
value="1"/><?php _e( 'Members only', 'download-monitor' ); ?></label>
|
| 389 |
+
<label for="_redirect_only"><input type="checkbox" name="_redirect_only" id="_redirect_only"
|
| 390 |
+
value="1"/><?php _e( 'Redirect to file', 'download-monitor' ); ?>
|
| 391 |
+
</label>
|
| 392 |
+
</div>
|
| 393 |
+
</fieldset>
|
| 394 |
+
<?php
|
| 395 |
+
}
|
| 396 |
+
|
| 397 |
+
/**
|
| 398 |
+
* Quick and bulk edit saving
|
| 399 |
+
*
|
| 400 |
+
* @param int $post_id
|
| 401 |
+
* @param WP_Post $post
|
| 402 |
+
*
|
| 403 |
+
* @return int
|
| 404 |
+
*/
|
| 405 |
+
public function bulk_and_quick_edit_save_post( $post_id, $post ) {
|
| 406 |
+
|
| 407 |
+
// If this is an autosave, our form has not been submitted, so we don't want to do anything.
|
| 408 |
+
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
|
| 409 |
+
return $post_id;
|
| 410 |
+
}
|
| 411 |
+
|
| 412 |
+
// Don't save revisions and autosaves
|
| 413 |
+
if ( wp_is_post_revision( $post_id ) || wp_is_post_autosave( $post_id ) ) {
|
| 414 |
+
return $post_id;
|
| 415 |
+
}
|
| 416 |
+
|
| 417 |
+
// Check post type is product
|
| 418 |
+
if ( 'dlm_download' != $post->post_type ) {
|
| 419 |
+
return $post_id;
|
| 420 |
+
}
|
| 421 |
+
|
| 422 |
+
// Check user permission
|
| 423 |
+
if ( ! current_user_can( 'manage_downloads', $post_id ) ) {
|
| 424 |
+
return $post_id;
|
| 425 |
+
}
|
| 426 |
+
|
| 427 |
+
// Check nonces
|
| 428 |
+
if ( ! isset( $_REQUEST['dlm_bulk_quick_edit_nonce'] ) ) {
|
| 429 |
+
return $post_id;
|
| 430 |
+
}
|
| 431 |
+
if ( ! wp_verify_nonce( $_REQUEST['dlm_bulk_quick_edit_nonce'], 'dlm_bulk_quick_edit_nonce' ) ) {
|
| 432 |
+
return $post_id;
|
| 433 |
+
}
|
| 434 |
+
|
| 435 |
+
// set featured
|
| 436 |
+
if ( isset( $_REQUEST['_featured'] ) ) {
|
| 437 |
+
update_post_meta( $post_id, '_featured', 'yes' );
|
| 438 |
+
}
|
| 439 |
+
|
| 440 |
+
// set members only
|
| 441 |
+
if ( isset( $_REQUEST['_members_only'] ) ) {
|
| 442 |
+
update_post_meta( $post_id, '_members_only', 'yes' );
|
| 443 |
+
}
|
| 444 |
+
|
| 445 |
+
// set redirect only
|
| 446 |
+
if ( isset( $_REQUEST['_redirect_only'] ) ) {
|
| 447 |
+
update_post_meta( $post_id, '_redirect_only', 'yes' );
|
| 448 |
+
}
|
| 449 |
+
|
| 450 |
+
return $post_id;
|
| 451 |
+
}
|
| 452 |
}
|
includes/admin/class-dlm-admin.php
CHANGED
|
@@ -94,6 +94,29 @@ class DLM_Admin {
|
|
| 94 |
return $pathdata;
|
| 95 |
}
|
| 96 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 97 |
/**
|
| 98 |
* init_settings function.
|
| 99 |
*
|
|
@@ -101,6 +124,7 @@ class DLM_Admin {
|
|
| 101 |
* @return void
|
| 102 |
*/
|
| 103 |
private function init_settings() {
|
|
|
|
| 104 |
$this->settings = apply_filters( 'download_monitor_settings',
|
| 105 |
array(
|
| 106 |
'general' => array(
|
|
@@ -219,9 +243,17 @@ class DLM_Admin {
|
|
| 219 |
),
|
| 220 |
)
|
| 221 |
),
|
| 222 |
-
'access'
|
| 223 |
__( 'Access', 'download-monitor' ),
|
| 224 |
array(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 225 |
array(
|
| 226 |
'name' => 'dlm_no_access_error',
|
| 227 |
'std' => sprintf( __( 'You do not have permission to access this download. %sGo to homepage%s', 'download-monitor' ), '<a href="' . home_url() . '">', '</a>' ),
|
|
@@ -363,7 +395,7 @@ class DLM_Admin {
|
|
| 363 |
* Print global notices
|
| 364 |
*/
|
| 365 |
private function print_global_notices() {
|
| 366 |
-
|
| 367 |
// check for nginx
|
| 368 |
if ( isset( $_SERVER['SERVER_SOFTWARE'] ) && stristr( $_SERVER['SERVER_SOFTWARE'], 'nginx' ) !== false && 1 != get_option( 'dlm_hide_notice-nginx_rules', 0 ) ) {
|
| 369 |
|
|
@@ -503,7 +535,7 @@ class DLM_Admin {
|
|
| 503 |
</p>
|
| 504 |
</form>
|
| 505 |
</div>
|
| 506 |
-
|
| 507 |
}
|
| 508 |
|
| 509 |
/**
|
|
@@ -531,11 +563,11 @@ class DLM_Admin {
|
|
| 531 |
href="<?php echo wp_nonce_url( add_query_arg( 'dlm_delete_logs', 'true', admin_url( 'edit.php?post_type=dlm_download&page=download-monitor-logs' ) ), 'delete_logs' ); ?>"
|
| 532 |
class="add-new-h2"><?php _e( 'Delete Logs', 'download-monitor' ); ?></a></h2><br/>
|
| 533 |
|
| 534 |
-
<form id="dlm_logs">
|
| 535 |
<?php $DLM_Logging_List_Table->display() ?>
|
| 536 |
</form>
|
| 537 |
</div>
|
| 538 |
-
|
| 539 |
}
|
| 540 |
|
| 541 |
/**
|
|
@@ -673,7 +705,7 @@ class DLM_Admin {
|
|
| 673 |
'dlm_download_page_dlm-extensions'
|
| 674 |
);
|
| 675 |
|
| 676 |
-
// Check to make sure we're on a
|
| 677 |
if ( isset( $current_screen->id ) && apply_filters( 'dlm_display_admin_footer_text', in_array( $current_screen->id, $dlm_page_ids ) ) ) {
|
| 678 |
// Change the footer text
|
| 679 |
$footer_text = sprintf( __( 'If you like %sDownload Monitor%s please leave us a %s★★★★★%s rating. A huge thank you from us in advance!', 'download-monitor' ), '<strong>', '</strong>', '<a href="https://wordpress.org/support/view/plugin-reviews/download-monitor?filter=5#postform" target="_blank">', '</a>' );
|
| 94 |
return $pathdata;
|
| 95 |
}
|
| 96 |
|
| 97 |
+
/**
|
| 98 |
+
* Return pages with ID => Page title format
|
| 99 |
+
*
|
| 100 |
+
* @return array
|
| 101 |
+
*/
|
| 102 |
+
private function get_pages() {
|
| 103 |
+
// pages
|
| 104 |
+
$pages = array( 0 => __( 'Select Page', 'download-monitor' ) );
|
| 105 |
+
|
| 106 |
+
// get pages from db
|
| 107 |
+
$db_pages = get_pages();
|
| 108 |
+
|
| 109 |
+
// check and loop
|
| 110 |
+
if ( count( $db_pages ) > 0 ) {
|
| 111 |
+
foreach ( $db_pages as $db_page ) {
|
| 112 |
+
$pages[ $db_page->ID ] = $db_page->post_title;
|
| 113 |
+
}
|
| 114 |
+
}
|
| 115 |
+
|
| 116 |
+
// return pages
|
| 117 |
+
return $pages;
|
| 118 |
+
}
|
| 119 |
+
|
| 120 |
/**
|
| 121 |
* init_settings function.
|
| 122 |
*
|
| 124 |
* @return void
|
| 125 |
*/
|
| 126 |
private function init_settings() {
|
| 127 |
+
|
| 128 |
$this->settings = apply_filters( 'download_monitor_settings',
|
| 129 |
array(
|
| 130 |
'general' => array(
|
| 243 |
),
|
| 244 |
)
|
| 245 |
),
|
| 246 |
+
'access' => array(
|
| 247 |
__( 'Access', 'download-monitor' ),
|
| 248 |
array(
|
| 249 |
+
array(
|
| 250 |
+
'name' => 'dlm_no_access_page',
|
| 251 |
+
'std' => '',
|
| 252 |
+
'label' => __( 'No Access Page', 'download-monitor' ),
|
| 253 |
+
'desc' => __( "Choose what page is displayed when the user has no access to a file. Don't forget to add the <code>[dlm_no_access]</code> shortcode to the page.", 'download-monitor' ),
|
| 254 |
+
'type' => 'select',
|
| 255 |
+
'options' => $this->get_pages()
|
| 256 |
+
),
|
| 257 |
array(
|
| 258 |
'name' => 'dlm_no_access_error',
|
| 259 |
'std' => sprintf( __( 'You do not have permission to access this download. %sGo to homepage%s', 'download-monitor' ), '<a href="' . home_url() . '">', '</a>' ),
|
| 395 |
* Print global notices
|
| 396 |
*/
|
| 397 |
private function print_global_notices() {
|
| 398 |
+
|
| 399 |
// check for nginx
|
| 400 |
if ( isset( $_SERVER['SERVER_SOFTWARE'] ) && stristr( $_SERVER['SERVER_SOFTWARE'], 'nginx' ) !== false && 1 != get_option( 'dlm_hide_notice-nginx_rules', 0 ) ) {
|
| 401 |
|
| 535 |
</p>
|
| 536 |
</form>
|
| 537 |
</div>
|
| 538 |
+
<?php
|
| 539 |
}
|
| 540 |
|
| 541 |
/**
|
| 563 |
href="<?php echo wp_nonce_url( add_query_arg( 'dlm_delete_logs', 'true', admin_url( 'edit.php?post_type=dlm_download&page=download-monitor-logs' ) ), 'delete_logs' ); ?>"
|
| 564 |
class="add-new-h2"><?php _e( 'Delete Logs', 'download-monitor' ); ?></a></h2><br/>
|
| 565 |
|
| 566 |
+
<form id="dlm_logs" method="post">
|
| 567 |
<?php $DLM_Logging_List_Table->display() ?>
|
| 568 |
</form>
|
| 569 |
</div>
|
| 570 |
+
<?php
|
| 571 |
}
|
| 572 |
|
| 573 |
/**
|
| 705 |
'dlm_download_page_dlm-extensions'
|
| 706 |
);
|
| 707 |
|
| 708 |
+
// Check to make sure we're on a Download Monitor admin page
|
| 709 |
if ( isset( $current_screen->id ) && apply_filters( 'dlm_display_admin_footer_text', in_array( $current_screen->id, $dlm_page_ids ) ) ) {
|
| 710 |
// Change the footer text
|
| 711 |
$footer_text = sprintf( __( 'If you like %sDownload Monitor%s please leave us a %s★★★★★%s rating. A huge thank you from us in advance!', 'download-monitor' ), '<strong>', '</strong>', '<a href="https://wordpress.org/support/view/plugin-reviews/download-monitor?filter=5#postform" target="_blank">', '</a>' );
|
includes/admin/class-dlm-logging-list-table.php
CHANGED
|
@@ -14,12 +14,15 @@ class DLM_Logging_List_Table extends WP_List_Table {
|
|
| 14 |
/** @var UAParser */
|
| 15 |
private $uaparser = null;
|
| 16 |
|
|
|
|
|
|
|
|
|
|
| 17 |
/**
|
| 18 |
* __construct function.
|
| 19 |
*
|
| 20 |
* @access public
|
| 21 |
*/
|
| 22 |
-
function __construct() {
|
| 23 |
global $status, $page, $wpdb;
|
| 24 |
|
| 25 |
parent::__construct( array(
|
|
@@ -37,6 +40,32 @@ class DLM_Logging_List_Table extends WP_List_Table {
|
|
| 37 |
}
|
| 38 |
}
|
| 39 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 40 |
/**
|
| 41 |
* column_default function.
|
| 42 |
*
|
|
@@ -47,7 +76,7 @@ class DLM_Logging_List_Table extends WP_List_Table {
|
|
| 47 |
*
|
| 48 |
* @return void
|
| 49 |
*/
|
| 50 |
-
function column_default( $log, $column_name ) {
|
| 51 |
switch ( $column_name ) {
|
| 52 |
case 'status' :
|
| 53 |
switch ( $log->download_status ) {
|
|
@@ -133,6 +162,7 @@ class DLM_Logging_List_Table extends WP_List_Table {
|
|
| 133 |
*/
|
| 134 |
public function get_columns() {
|
| 135 |
$columns = array(
|
|
|
|
| 136 |
'status' => '',
|
| 137 |
'download' => __( 'Download', 'download-monitor' ),
|
| 138 |
'file' => __( 'File', 'download-monitor' ),
|
|
@@ -149,10 +179,32 @@ class DLM_Logging_List_Table extends WP_List_Table {
|
|
| 149 |
* Generate the table navigation above or below the table
|
| 150 |
*/
|
| 151 |
public function display_tablenav( $which ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 152 |
?>
|
| 153 |
<div class="tablenav <?php echo esc_attr( $which ); ?>">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 154 |
<?php if ( 'top' == $which ) : ?>
|
|
|
|
| 155 |
<div class="alignleft actions">
|
|
|
|
| 156 |
<select name="filter_status">
|
| 157 |
<option value=""><?php _e( 'Any status', 'download-monitor' ); ?></option>
|
| 158 |
<option
|
|
@@ -230,9 +282,12 @@ class DLM_Logging_List_Table extends WP_List_Table {
|
|
| 230 |
* @access public
|
| 231 |
* @return void
|
| 232 |
*/
|
| 233 |
-
function prepare_items() {
|
| 234 |
global $wpdb;
|
| 235 |
|
|
|
|
|
|
|
|
|
|
| 236 |
$per_page = absint( $this->logs_per_page );
|
| 237 |
$current_page = absint( $this->get_pagenum() );
|
| 238 |
$filter_status = $this->filter_status;
|
|
@@ -282,4 +337,42 @@ class DLM_Logging_List_Table extends WP_List_Table {
|
|
| 282 |
|
| 283 |
$this->uaparser = new UAParser();
|
| 284 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 285 |
}
|
| 14 |
/** @var UAParser */
|
| 15 |
private $uaparser = null;
|
| 16 |
|
| 17 |
+
/** @var bool $display_delete_message */
|
| 18 |
+
private $display_delete_message = false;
|
| 19 |
+
|
| 20 |
/**
|
| 21 |
* __construct function.
|
| 22 |
*
|
| 23 |
* @access public
|
| 24 |
*/
|
| 25 |
+
public function __construct() {
|
| 26 |
global $status, $page, $wpdb;
|
| 27 |
|
| 28 |
parent::__construct( array(
|
| 40 |
}
|
| 41 |
}
|
| 42 |
|
| 43 |
+
/**
|
| 44 |
+
* The checkbox column
|
| 45 |
+
*
|
| 46 |
+
* @param object $item
|
| 47 |
+
*
|
| 48 |
+
* @return string
|
| 49 |
+
*/
|
| 50 |
+
public function column_cb( $item ) {
|
| 51 |
+
return sprintf(
|
| 52 |
+
'<input type="checkbox" name="log[]" value="%s" />', $item->ID
|
| 53 |
+
);
|
| 54 |
+
}
|
| 55 |
+
|
| 56 |
+
/**
|
| 57 |
+
* Add bulk actions
|
| 58 |
+
*
|
| 59 |
+
* @return array
|
| 60 |
+
*/
|
| 61 |
+
protected function get_bulk_actions() {
|
| 62 |
+
$actions = array(
|
| 63 |
+
'delete' => __( 'Delete', 'download-monitor' )
|
| 64 |
+
);
|
| 65 |
+
|
| 66 |
+
return $actions;
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
/**
|
| 70 |
* column_default function.
|
| 71 |
*
|
| 76 |
*
|
| 77 |
* @return void
|
| 78 |
*/
|
| 79 |
+
public function column_default( $log, $column_name ) {
|
| 80 |
switch ( $column_name ) {
|
| 81 |
case 'status' :
|
| 82 |
switch ( $log->download_status ) {
|
| 162 |
*/
|
| 163 |
public function get_columns() {
|
| 164 |
$columns = array(
|
| 165 |
+
'cb' => '',
|
| 166 |
'status' => '',
|
| 167 |
'download' => __( 'Download', 'download-monitor' ),
|
| 168 |
'file' => __( 'File', 'download-monitor' ),
|
| 179 |
* Generate the table navigation above or below the table
|
| 180 |
*/
|
| 181 |
public function display_tablenav( $which ) {
|
| 182 |
+
|
| 183 |
+
// output nonce
|
| 184 |
+
if ( 'top' == $which ) {
|
| 185 |
+
wp_nonce_field( 'bulk-' . $this->_args['plural'] );
|
| 186 |
+
}
|
| 187 |
+
|
| 188 |
+
// display 'delete' success message
|
| 189 |
+
if ( 'top' == $which && true === $this->display_delete_message ) {
|
| 190 |
+
?>
|
| 191 |
+
<div id="message" class="updated notice notice-success">
|
| 192 |
+
<p><?php _e( 'Log entries deleted', 'download-monitor' ); ?></p>
|
| 193 |
+
</div>
|
| 194 |
+
<?php
|
| 195 |
+
}
|
| 196 |
+
|
| 197 |
?>
|
| 198 |
<div class="tablenav <?php echo esc_attr( $which ); ?>">
|
| 199 |
+
|
| 200 |
+
<div class="alignleft actions bulkactions">
|
| 201 |
+
<?php $this->bulk_actions( $which ); ?>
|
| 202 |
+
</div>
|
| 203 |
+
|
| 204 |
<?php if ( 'top' == $which ) : ?>
|
| 205 |
+
|
| 206 |
<div class="alignleft actions">
|
| 207 |
+
|
| 208 |
<select name="filter_status">
|
| 209 |
<option value=""><?php _e( 'Any status', 'download-monitor' ); ?></option>
|
| 210 |
<option
|
| 282 |
* @access public
|
| 283 |
* @return void
|
| 284 |
*/
|
| 285 |
+
public function prepare_items() {
|
| 286 |
global $wpdb;
|
| 287 |
|
| 288 |
+
// process bulk action
|
| 289 |
+
$this->process_bulk_action();
|
| 290 |
+
|
| 291 |
$per_page = absint( $this->logs_per_page );
|
| 292 |
$current_page = absint( $this->get_pagenum() );
|
| 293 |
$filter_status = $this->filter_status;
|
| 337 |
|
| 338 |
$this->uaparser = new UAParser();
|
| 339 |
}
|
| 340 |
+
|
| 341 |
+
/**
|
| 342 |
+
* Process bulk actions
|
| 343 |
+
*/
|
| 344 |
+
public function process_bulk_action() {
|
| 345 |
+
|
| 346 |
+
if ( 'delete' === $this->current_action() ) {
|
| 347 |
+
|
| 348 |
+
// check nonce
|
| 349 |
+
if ( empty( $_POST['_wpnonce'] ) || ! wp_verify_nonce( $_POST['_wpnonce'], 'bulk-' . $this->_args['plural'] ) ) {
|
| 350 |
+
wp_die( 'process_bulk_action() nonce check failed' );
|
| 351 |
+
}
|
| 352 |
+
|
| 353 |
+
// check capability
|
| 354 |
+
if ( ! current_user_can( 'dlm_manage_logs' ) ) {
|
| 355 |
+
wp_die( "You're not allowed to delete logs!" );
|
| 356 |
+
}
|
| 357 |
+
|
| 358 |
+
// logging object
|
| 359 |
+
$logging = new DLM_Logging();
|
| 360 |
+
|
| 361 |
+
// check
|
| 362 |
+
if ( count( $_POST['log'] ) > 0 ) {
|
| 363 |
+
|
| 364 |
+
// delete the posted logs
|
| 365 |
+
foreach ( $_POST['log'] as $log_id ) {
|
| 366 |
+
$logging->delete_log( absint( $log_id ) );
|
| 367 |
+
}
|
| 368 |
+
|
| 369 |
+
// display delete message
|
| 370 |
+
$this->display_delete_message = true;
|
| 371 |
+
|
| 372 |
+
}
|
| 373 |
+
|
| 374 |
+
}
|
| 375 |
+
|
| 376 |
+
}
|
| 377 |
+
|
| 378 |
}
|
includes/admin/uaparser/resources/regexes.json
CHANGED
|
@@ -512,6 +512,10 @@
|
|
| 512 |
"regex": "(Phantom)/V(\\d+)\\.(\\d+)",
|
| 513 |
"family_replacement": "Phantom Browser"
|
| 514 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
| 515 |
{
|
| 516 |
"regex": "([MS]?IE) (\\d+)\\.(\\d+)",
|
| 517 |
"family_replacement": "IE"
|
|
@@ -564,6 +568,18 @@
|
|
| 564 |
"regex": "(XBLWP7)",
|
| 565 |
"os_replacement": "Windows Phone"
|
| 566 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 567 |
{
|
| 568 |
"regex": "(Windows NT 6\\.1)",
|
| 569 |
"os_replacement": "Windows 7"
|
|
@@ -583,10 +599,6 @@
|
|
| 583 |
"regex": "(Windows NT 6\\.2; ARM;)",
|
| 584 |
"os_replacement": "Windows RT"
|
| 585 |
},
|
| 586 |
-
{
|
| 587 |
-
"regex": "(Windows NT 6\\.2)",
|
| 588 |
-
"os_replacement": "Windows 8"
|
| 589 |
-
},
|
| 590 |
{
|
| 591 |
"regex": "(Windows NT 5\\.0)",
|
| 592 |
"os_replacement": "Windows 2000"
|
| 512 |
"regex": "(Phantom)/V(\\d+)\\.(\\d+)",
|
| 513 |
"family_replacement": "Phantom Browser"
|
| 514 |
},
|
| 515 |
+
{
|
| 516 |
+
"regex": "Trident(.*)rv.(\\d+)\\.(\\d+)",
|
| 517 |
+
"family_replacement": "IE"
|
| 518 |
+
},
|
| 519 |
{
|
| 520 |
"regex": "([MS]?IE) (\\d+)\\.(\\d+)",
|
| 521 |
"family_replacement": "IE"
|
| 568 |
"regex": "(XBLWP7)",
|
| 569 |
"os_replacement": "Windows Phone"
|
| 570 |
},
|
| 571 |
+
{
|
| 572 |
+
"regex": "(Windows NT 6\\.4)",
|
| 573 |
+
"os_replacement": "Windows 10"
|
| 574 |
+
},
|
| 575 |
+
{
|
| 576 |
+
"regex": "(Windows NT 6\\.3)",
|
| 577 |
+
"os_replacement": "Windows 8.1"
|
| 578 |
+
},
|
| 579 |
+
{
|
| 580 |
+
"regex": "(Windows NT 6\\.2)",
|
| 581 |
+
"os_replacement": "Windows 8"
|
| 582 |
+
},
|
| 583 |
{
|
| 584 |
"regex": "(Windows NT 6\\.1)",
|
| 585 |
"os_replacement": "Windows 7"
|
| 599 |
"regex": "(Windows NT 6\\.2; ARM;)",
|
| 600 |
"os_replacement": "Windows RT"
|
| 601 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
| 602 |
{
|
| 603 |
"regex": "(Windows NT 5\\.0)",
|
| 604 |
"os_replacement": "Windows 2000"
|
includes/class-dlm-download-handler.php
CHANGED
|
@@ -79,7 +79,7 @@ class DLM_Download_Handler {
|
|
| 79 |
if ( false !== $can_download ) {
|
| 80 |
|
| 81 |
$visitor_ip = DLM_Utils::get_visitor_ip();
|
| 82 |
-
$ip_type
|
| 83 |
|
| 84 |
if ( filter_var( $visitor_ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 ) ) {
|
| 85 |
$ip_type = 4;
|
|
@@ -344,8 +344,33 @@ class DLM_Download_Handler {
|
|
| 344 |
wp_redirect( $redirect );
|
| 345 |
exit;
|
| 346 |
} else {
|
| 347 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 348 |
wp_die( wp_kses_post( get_option( 'dlm_no_access_error', '' ) ), __( 'Download Error', 'download-monitor' ), array( 'response' => 200 ) );
|
|
|
|
| 349 |
}
|
| 350 |
|
| 351 |
exit;
|
|
@@ -550,8 +575,8 @@ class DLM_Download_Handler {
|
|
| 550 |
*
|
| 551 |
* @access public
|
| 552 |
*
|
| 553 |
-
* @param string
|
| 554 |
-
* @param boolean
|
| 555 |
* @param boolean $range if HTTP RANGE to seek
|
| 556 |
*
|
| 557 |
* @return mixed
|
| 79 |
if ( false !== $can_download ) {
|
| 80 |
|
| 81 |
$visitor_ip = DLM_Utils::get_visitor_ip();
|
| 82 |
+
$ip_type = 0;
|
| 83 |
|
| 84 |
if ( filter_var( $visitor_ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 ) ) {
|
| 85 |
$ip_type = 4;
|
| 344 |
wp_redirect( $redirect );
|
| 345 |
exit;
|
| 346 |
} else {
|
| 347 |
+
|
| 348 |
+
// get 'no access' page id
|
| 349 |
+
$no_access_page_id = get_option( 'dlm_no_access_page', 0 );
|
| 350 |
+
|
| 351 |
+
// check if a no access page is set
|
| 352 |
+
if ( $no_access_page_id > 0 ) {
|
| 353 |
+
|
| 354 |
+
// get permalink of no access page
|
| 355 |
+
$no_access_permalink = get_permalink( $no_access_page_id );
|
| 356 |
+
|
| 357 |
+
// check if we can find a permalink
|
| 358 |
+
if ( false !== $no_access_permalink ) {
|
| 359 |
+
|
| 360 |
+
// append download id to no access URL
|
| 361 |
+
$no_access_permalink = untrailingslashit( $no_access_permalink ) . '/download-id/' . $download->id . '/';
|
| 362 |
+
|
| 363 |
+
// redirect to no access page
|
| 364 |
+
wp_redirect( $no_access_permalink );
|
| 365 |
+
|
| 366 |
+
exit; // out
|
| 367 |
+
}
|
| 368 |
+
|
| 369 |
+
}
|
| 370 |
+
|
| 371 |
+
// if we get to this point, we have no proper 'no access' page. Fallback to default wp_die
|
| 372 |
wp_die( wp_kses_post( get_option( 'dlm_no_access_error', '' ) ), __( 'Download Error', 'download-monitor' ), array( 'response' => 200 ) );
|
| 373 |
+
|
| 374 |
}
|
| 375 |
|
| 376 |
exit;
|
| 575 |
*
|
| 576 |
* @access public
|
| 577 |
*
|
| 578 |
+
* @param string $file
|
| 579 |
+
* @param boolean $retbytes return bytes of file
|
| 580 |
* @param boolean $range if HTTP RANGE to seek
|
| 581 |
*
|
| 582 |
* @return mixed
|
includes/class-dlm-download-no-access-page-endpoint.php
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class DLM_Download_No_Access_Page_Endpoint {
|
| 4 |
+
|
| 5 |
+
private $endpoint = 'download-id';
|
| 6 |
+
|
| 7 |
+
/**
|
| 8 |
+
* Setup no access page
|
| 9 |
+
*/
|
| 10 |
+
public function setup() {
|
| 11 |
+
// add query var and enpoint
|
| 12 |
+
add_filter( 'query_vars', array( $this, 'add_query_vars' ), 0 );
|
| 13 |
+
add_action( 'init', array( $this, 'add_endpoint' ), 0 );
|
| 14 |
+
}
|
| 15 |
+
|
| 16 |
+
/**
|
| 17 |
+
* add_query_vars function.
|
| 18 |
+
*
|
| 19 |
+
* @access public
|
| 20 |
+
*
|
| 21 |
+
* @param array $vars
|
| 22 |
+
*
|
| 23 |
+
* @return array
|
| 24 |
+
*/
|
| 25 |
+
public function add_query_vars( $vars ) {
|
| 26 |
+
$vars[] = $this->endpoint;
|
| 27 |
+
|
| 28 |
+
return $vars;
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
/**
|
| 32 |
+
* add_endpoint function.
|
| 33 |
+
*
|
| 34 |
+
* @access public
|
| 35 |
+
* @return void
|
| 36 |
+
*/
|
| 37 |
+
public function add_endpoint() {
|
| 38 |
+
add_rewrite_endpoint( $this->endpoint, EP_ALL );
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
}
|
includes/class-dlm-file-manager.php
CHANGED
|
@@ -70,7 +70,7 @@ class DLM_File_Manager {
|
|
| 70 |
$file_path = trim( str_replace( $wp_uploads_url, $wp_uploads_dir, $file_path ) );
|
| 71 |
$file_path = realpath( $file_path );
|
| 72 |
|
| 73 |
-
} elseif (
|
| 74 |
|
| 75 |
/** This is a local file outside of wp-content so figure out the path */
|
| 76 |
$remote_file = false;
|
| 70 |
$file_path = trim( str_replace( $wp_uploads_url, $wp_uploads_dir, $file_path ) );
|
| 71 |
$file_path = realpath( $file_path );
|
| 72 |
|
| 73 |
+
} elseif ( is_multisite() && ( ( strpos( $file_path, network_site_url( '/', 'http' ) ) !== false ) || ( strpos( $file_path, network_site_url( '/', 'https' ) ) !== false ) ) ) {
|
| 74 |
|
| 75 |
/** This is a local file outside of wp-content so figure out the path */
|
| 76 |
$remote_file = false;
|
includes/class-dlm-installer.php
CHANGED
|
@@ -41,12 +41,26 @@ class DLM_Installer {
|
|
| 41 |
update_option( 'dlm_no_access_error', sprintf( __( 'You do not have permission to access this download. %sGo to homepage%s', 'download-monitor' ), '<a href="' . home_url() . '">', '</a>' ) );
|
| 42 |
}
|
| 43 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
// Set the current version
|
| 45 |
require_once( 'class-dlm-constants.php' );
|
| 46 |
update_option( DLM_Constants::OPTION_CURRENT_VERSION, DLM_VERSION );
|
| 47 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 48 |
}
|
| 49 |
|
|
|
|
| 50 |
/**
|
| 51 |
* Init user roles
|
| 52 |
*
|
|
@@ -142,4 +156,34 @@ class DLM_Installer {
|
|
| 142 |
}
|
| 143 |
}
|
| 144 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 145 |
}
|
| 41 |
update_option( 'dlm_no_access_error', sprintf( __( 'You do not have permission to access this download. %sGo to homepage%s', 'download-monitor' ), '<a href="' . home_url() . '">', '</a>' ) );
|
| 42 |
}
|
| 43 |
|
| 44 |
+
// create no access page
|
| 45 |
+
$this->create_no_access_page();
|
| 46 |
+
|
| 47 |
+
// setup no access page endpoints
|
| 48 |
+
require_once( 'class-dlm-download-no-access-page-endpoint.php' );
|
| 49 |
+
$no_access_page_endpoint = new DLM_Download_No_Access_Page_Endpoint();
|
| 50 |
+
$no_access_page_endpoint->setup();
|
| 51 |
+
|
| 52 |
// Set the current version
|
| 53 |
require_once( 'class-dlm-constants.php' );
|
| 54 |
update_option( DLM_Constants::OPTION_CURRENT_VERSION, DLM_VERSION );
|
| 55 |
|
| 56 |
+
// add rewrite rules
|
| 57 |
+
add_rewrite_endpoint( 'download-id', EP_ALL );
|
| 58 |
+
|
| 59 |
+
// flush rewrite rules
|
| 60 |
+
flush_rewrite_rules();
|
| 61 |
}
|
| 62 |
|
| 63 |
+
|
| 64 |
/**
|
| 65 |
* Init user roles
|
| 66 |
*
|
| 156 |
}
|
| 157 |
}
|
| 158 |
|
| 159 |
+
/**
|
| 160 |
+
* Create no access page
|
| 161 |
+
*/
|
| 162 |
+
public function create_no_access_page() {
|
| 163 |
+
|
| 164 |
+
// create cars listing page if not exists
|
| 165 |
+
$listings_slug = sanitize_title( __( 'No Access', 'download-monitor' ) );
|
| 166 |
+
$listings_page = get_page_by_path( $listings_slug );
|
| 167 |
+
|
| 168 |
+
// check if listings page exists
|
| 169 |
+
if ( null == $listings_page ) {
|
| 170 |
+
|
| 171 |
+
// create page
|
| 172 |
+
$page_id = wp_insert_post( array(
|
| 173 |
+
'post_type' => 'page',
|
| 174 |
+
'post_title' => __( 'No Access', 'download-monitor' ),
|
| 175 |
+
'post_content' => '[dlm_no_access]',
|
| 176 |
+
'post_status' => 'publish'
|
| 177 |
+
) );
|
| 178 |
+
|
| 179 |
+
if ( ! is_wp_error( $page_id ) ) {
|
| 180 |
+
// set page id as dlm_no_access_page
|
| 181 |
+
update_option( 'dlm_no_access_page', absint( $page_id ) );
|
| 182 |
+
}
|
| 183 |
+
|
| 184 |
+
|
| 185 |
+
}
|
| 186 |
+
|
| 187 |
+
}
|
| 188 |
+
|
| 189 |
}
|
includes/class-dlm-logging.php
CHANGED
|
@@ -15,7 +15,7 @@ class DLM_Logging {
|
|
| 15 |
* @return bool
|
| 16 |
*/
|
| 17 |
public function is_logging_enabled() {
|
| 18 |
-
return (1 == get_option( 'dlm_enable_logging', 0 ));
|
| 19 |
}
|
| 20 |
|
| 21 |
/**
|
|
@@ -59,5 +59,18 @@ class DLM_Logging {
|
|
| 59 |
return $wpdb->insert_id;
|
| 60 |
}
|
| 61 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
}
|
| 63 |
|
| 15 |
* @return bool
|
| 16 |
*/
|
| 17 |
public function is_logging_enabled() {
|
| 18 |
+
return ( 1 == get_option( 'dlm_enable_logging', 0 ) );
|
| 19 |
}
|
| 20 |
|
| 21 |
/**
|
| 59 |
return $wpdb->insert_id;
|
| 60 |
}
|
| 61 |
|
| 62 |
+
/**
|
| 63 |
+
* Delete a log entry
|
| 64 |
+
*
|
| 65 |
+
* @param $log_id
|
| 66 |
+
*
|
| 67 |
+
* @return bool
|
| 68 |
+
*/
|
| 69 |
+
public function delete_log( $log_id ) {
|
| 70 |
+
global $wpdb;
|
| 71 |
+
|
| 72 |
+
return ( false !== $wpdb->delete( $wpdb->download_log, array( 'ID' => $log_id ), array( '%d' ) ) );
|
| 73 |
+
}
|
| 74 |
+
|
| 75 |
}
|
| 76 |
|
includes/class-dlm-shortcodes.php
CHANGED
|
@@ -18,6 +18,7 @@ class DLM_Shortcodes {
|
|
| 18 |
add_shortcode( 'download', array( $this, 'download' ) );
|
| 19 |
add_shortcode( 'download_data', array( $this, 'download_data' ) );
|
| 20 |
add_shortcode( 'downloads', array( $this, 'downloads' ) );
|
|
|
|
| 21 |
}
|
| 22 |
|
| 23 |
/**
|
|
@@ -426,4 +427,45 @@ class DLM_Shortcodes {
|
|
| 426 |
|
| 427 |
return ob_get_clean();
|
| 428 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 429 |
}
|
| 18 |
add_shortcode( 'download', array( $this, 'download' ) );
|
| 19 |
add_shortcode( 'download_data', array( $this, 'download_data' ) );
|
| 20 |
add_shortcode( 'downloads', array( $this, 'downloads' ) );
|
| 21 |
+
add_shortcode( 'dlm_no_access', array( $this, 'no_access_page' ) );
|
| 22 |
}
|
| 23 |
|
| 24 |
/**
|
| 427 |
|
| 428 |
return ob_get_clean();
|
| 429 |
}
|
| 430 |
+
|
| 431 |
+
/**
|
| 432 |
+
* The dlm_no_access shortcode callback
|
| 433 |
+
*
|
| 434 |
+
* @param array $atts
|
| 435 |
+
*
|
| 436 |
+
* @return string
|
| 437 |
+
*/
|
| 438 |
+
public function no_access_page( $atts ) {
|
| 439 |
+
global $wp;
|
| 440 |
+
|
| 441 |
+
// atts
|
| 442 |
+
$atts = shortcode_atts( array(
|
| 443 |
+
'show_message' => 'true',
|
| 444 |
+
), $atts );
|
| 445 |
+
|
| 446 |
+
// start buffer
|
| 447 |
+
ob_start();
|
| 448 |
+
|
| 449 |
+
// show_message must be a bool
|
| 450 |
+
$atts['show_message'] = ( 'true' === $atts['show_message'] );
|
| 451 |
+
|
| 452 |
+
// return empty string if download-id is not set
|
| 453 |
+
if ( ! isset( $wp->query_vars['download-id'] ) ) {
|
| 454 |
+
return '';
|
| 455 |
+
}
|
| 456 |
+
|
| 457 |
+
// template handler
|
| 458 |
+
$template_handler = new DLM_Template_Handler();
|
| 459 |
+
|
| 460 |
+
// load no access template
|
| 461 |
+
$template_handler->get_template_part( 'no-access', '', '', array(
|
| 462 |
+
'download' => new DLM_Download( $wp->query_vars['download-id'] ),
|
| 463 |
+
'no_access_message' => ( ( $atts['show_message'] ) ? wp_kses_post( get_option( 'dlm_no_access_error', '' ) ) : '' )
|
| 464 |
+
) );
|
| 465 |
+
|
| 466 |
+
// set new content
|
| 467 |
+
$content = ob_get_clean();
|
| 468 |
+
|
| 469 |
+
return $content;
|
| 470 |
+
}
|
| 471 |
}
|
includes/class-dlm-upgrade-manager.php
CHANGED
|
@@ -6,6 +6,13 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
| 6 |
|
| 7 |
class DLM_Upgrade_Manager {
|
| 8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 9 |
/**
|
| 10 |
* Check if there's a plugin update
|
| 11 |
*/
|
|
@@ -49,6 +56,21 @@ class DLM_Upgrade_Manager {
|
|
| 49 |
|
| 50 |
}
|
| 51 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 52 |
}
|
| 53 |
|
| 54 |
/**
|
| 6 |
|
| 7 |
class DLM_Upgrade_Manager {
|
| 8 |
|
| 9 |
+
/**
|
| 10 |
+
* Setup to run updater on wp_loaded
|
| 11 |
+
*/
|
| 12 |
+
public function setup() {
|
| 13 |
+
add_action( 'wp_loaded', array( $this, 'check' ) );
|
| 14 |
+
}
|
| 15 |
+
|
| 16 |
/**
|
| 17 |
* Check if there's a plugin update
|
| 18 |
*/
|
| 56 |
|
| 57 |
}
|
| 58 |
|
| 59 |
+
// Upgrade to version 1.9.0
|
| 60 |
+
if ( version_compare( $current_version, '1.9.0', '<' ) ) {
|
| 61 |
+
|
| 62 |
+
// Adding new capabilities
|
| 63 |
+
$installer = new DLM_Installer();
|
| 64 |
+
$installer->create_no_access_page();
|
| 65 |
+
|
| 66 |
+
// setup no access page endpoints
|
| 67 |
+
$no_access_page_endpoint = new DLM_Download_No_Access_Page_Endpoint();
|
| 68 |
+
$no_access_page_endpoint->setup();
|
| 69 |
+
|
| 70 |
+
// flush rules after page creation
|
| 71 |
+
flush_rewrite_rules();
|
| 72 |
+
}
|
| 73 |
+
|
| 74 |
}
|
| 75 |
|
| 76 |
/**
|
includes/class-wp-dlm.php
CHANGED
|
@@ -98,7 +98,7 @@ class WP_DLM {
|
|
| 98 |
|
| 99 |
// Upgrade Manager
|
| 100 |
$upgrade_manager = new DLM_Upgrade_Manager();
|
| 101 |
-
$upgrade_manager->
|
| 102 |
}
|
| 103 |
|
| 104 |
// Setup AJAX handler if doing AJAX
|
|
@@ -116,6 +116,10 @@ class WP_DLM {
|
|
| 116 |
$download_handler = new DLM_Download_Handler();
|
| 117 |
$download_handler->setup();
|
| 118 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 119 |
// Setup shortcodes
|
| 120 |
$dlm_shortcodes = new DLM_Shortcodes();
|
| 121 |
$dlm_shortcodes->setup();
|
| 98 |
|
| 99 |
// Upgrade Manager
|
| 100 |
$upgrade_manager = new DLM_Upgrade_Manager();
|
| 101 |
+
$upgrade_manager->setup();
|
| 102 |
}
|
| 103 |
|
| 104 |
// Setup AJAX handler if doing AJAX
|
| 116 |
$download_handler = new DLM_Download_Handler();
|
| 117 |
$download_handler->setup();
|
| 118 |
|
| 119 |
+
// setup no access page endpoints
|
| 120 |
+
$no_access_page_endpoint = new DLM_Download_No_Access_Page_Endpoint();
|
| 121 |
+
$no_access_page_endpoint->setup();
|
| 122 |
+
|
| 123 |
// Setup shortcodes
|
| 124 |
$dlm_shortcodes = new DLM_Shortcodes();
|
| 125 |
$dlm_shortcodes->setup();
|
includes/product/class-dlm-product.php
CHANGED
|
@@ -132,7 +132,7 @@ class DLM_Product {
|
|
| 132 |
|
| 133 |
// Check request
|
| 134 |
if ( is_wp_error( $request ) || wp_remote_retrieve_response_code( $request ) != 200 ) {
|
| 135 |
-
throw new Exception( 'Connection failed to the
|
| 136 |
}
|
| 137 |
|
| 138 |
// Get activation result
|
|
@@ -149,7 +149,7 @@ class DLM_Product {
|
|
| 149 |
return array( 'result' => 'success', 'message' => __( 'License successfully activated.', 'download-monitor' ) );
|
| 150 |
|
| 151 |
} elseif ( $activate_results === false ) {
|
| 152 |
-
throw new Exception( 'Connection failed to the
|
| 153 |
} elseif ( isset( $activate_results['error_code'] ) ) {
|
| 154 |
throw new Exception( $activate_results['error'] );
|
| 155 |
}
|
|
@@ -191,7 +191,7 @@ class DLM_Product {
|
|
| 191 |
|
| 192 |
// Check request
|
| 193 |
if ( is_wp_error( $request ) || wp_remote_retrieve_response_code( $request ) != 200 ) {
|
| 194 |
-
throw new Exception( 'Connection failed to the
|
| 195 |
}
|
| 196 |
|
| 197 |
// Get result
|
| 132 |
|
| 133 |
// Check request
|
| 134 |
if ( is_wp_error( $request ) || wp_remote_retrieve_response_code( $request ) != 200 ) {
|
| 135 |
+
throw new Exception( 'Connection failed to the License Key API server. Try again later.' );
|
| 136 |
}
|
| 137 |
|
| 138 |
// Get activation result
|
| 149 |
return array( 'result' => 'success', 'message' => __( 'License successfully activated.', 'download-monitor' ) );
|
| 150 |
|
| 151 |
} elseif ( $activate_results === false ) {
|
| 152 |
+
throw new Exception( 'Connection failed to the License Key API server. Try again later.' );
|
| 153 |
} elseif ( isset( $activate_results['error_code'] ) ) {
|
| 154 |
throw new Exception( $activate_results['error'] );
|
| 155 |
}
|
| 191 |
|
| 192 |
// Check request
|
| 193 |
if ( is_wp_error( $request ) || wp_remote_retrieve_response_code( $request ) != 200 ) {
|
| 194 |
+
throw new Exception( 'Connection failed to the License Key API server. Try again later.' );
|
| 195 |
}
|
| 196 |
|
| 197 |
// Get result
|
installer-functions.php
CHANGED
|
@@ -76,8 +76,7 @@ function __download_monitor_mu_new_blog( $blog_id, $user_id, $domain, $path, $si
|
|
| 76 |
// run installer on blog
|
| 77 |
$installer->install();
|
| 78 |
|
| 79 |
-
|
| 80 |
-
// restore current bloh
|
| 81 |
restore_current_blog();
|
| 82 |
}
|
| 83 |
}
|
| 76 |
// run installer on blog
|
| 77 |
$installer->install();
|
| 78 |
|
| 79 |
+
// restore current blog
|
|
|
|
| 80 |
restore_current_blog();
|
| 81 |
}
|
| 82 |
}
|
readme.txt
CHANGED
|
@@ -4,7 +4,7 @@ Donate link: http://www.barrykooij.com/donate/
|
|
| 4 |
Tags: download, downloads, monitor, hits, download monitor, tracking, admin, count, counter, files, versions, download count, logging, AJAX, digital, documents, download category, download manager, download template, downloadmanager, file manager, file tree, grid, hits, ip-address, manager, media, monitor, password, protect downloads, tracker
|
| 5 |
Requires at least: 3.8
|
| 6 |
Tested up to: 4.3
|
| 7 |
-
Stable tag: 1.
|
| 8 |
License: GPLv3
|
| 9 |
|
| 10 |
Download Monitor is a plugin for uploading and managing downloads, tracking downloads, and displaying links.
|
|
@@ -107,6 +107,19 @@ More documentation can be found in our [Knowledge Base](https://www.download-mon
|
|
| 107 |
|
| 108 |
== Changelog ==
|
| 109 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 110 |
= 1.8.1: August 21, 2015 =
|
| 111 |
* Tweak: Small tweak to make download count fit better in box template.
|
| 112 |
* Tweak: Fixed a zero file size bug.
|
| 4 |
Tags: download, downloads, monitor, hits, download monitor, tracking, admin, count, counter, files, versions, download count, logging, AJAX, digital, documents, download category, download manager, download template, downloadmanager, file manager, file tree, grid, hits, ip-address, manager, media, monitor, password, protect downloads, tracker
|
| 5 |
Requires at least: 3.8
|
| 6 |
Tested up to: 4.3
|
| 7 |
+
Stable tag: 1.9.0
|
| 8 |
License: GPLv3
|
| 9 |
|
| 10 |
Download Monitor is a plugin for uploading and managing downloads, tracking downloads, and displaying links.
|
| 107 |
|
| 108 |
== Changelog ==
|
| 109 |
|
| 110 |
+
= 1.9.0: September 15, 2015 =
|
| 111 |
+
* Feature: We added a separate 'No Access' page that includes the following features:
|
| 112 |
+
* No Access Page : Added [dlm_no_access] shortcode that displays the no access content.
|
| 113 |
+
* No Access Page : Added new option in Access settings tab to set No Access Page.
|
| 114 |
+
* No Access Page : Added new template file for no access page.
|
| 115 |
+
* No Access Page : We now redirect to set No Access page (if set) when user has no access to download.
|
| 116 |
+
* Feature: Added ability to remove log entries.
|
| 117 |
+
* Feature: Added browser detection for IE 11 and up.
|
| 118 |
+
* Feature: Added OS detection for Windows 8.1
|
| 119 |
+
* Feature: Added OS detection for Windows 10
|
| 120 |
+
* Feature: Added Featured download, Members only and Redirect to file to bulk edit options.
|
| 121 |
+
* Feature: Added Featured download, Members only and Redirect to file to quick edit options.
|
| 122 |
+
|
| 123 |
= 1.8.1: August 21, 2015 =
|
| 124 |
* Tweak: Small tweak to make download count fit better in box template.
|
| 125 |
* Tweak: Fixed a zero file size bug.
|
templates/no-access.php
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* Download No Access
|
| 4 |
+
*/
|
| 5 |
+
|
| 6 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
| 7 |
+
exit;
|
| 8 |
+
} // Exit if accessed directly
|
| 9 |
+
?>
|
| 10 |
+
|
| 11 |
+
<?php do_action( 'dlm_no_access_before_message', $download ); ?>
|
| 12 |
+
|
| 13 |
+
<?php if ( ! empty( $no_access_message ) ) : ?>
|
| 14 |
+
<p><?php echo $no_access_message; ?></p>
|
| 15 |
+
<?php endif; ?>
|
| 16 |
+
|
| 17 |
+
<?php do_action( 'dlm_no_access_after_message', $download ); ?>
|
