Version Description
Download this release
Release Info
| Developer | barrykooij |
| Plugin | |
| Version | 1.8.0 |
| Comparing to | |
| See all releases | |
Code changes from version 1.7.2 to 1.8.0
- assets/css/admin.css +1 -1
- assets/css/admin.less +12 -9
- assets/css/frontend.css +1 -1
- assets/css/frontend.less +2 -2
- assets/images/log-status-icons.png +0 -0
- assets/js/settings.js +24 -0
- assets/js/settings.min.js +1 -1
- download-monitor.php +17 -19
- includes/admin/class-dlm-admin-cpt.php +11 -8
- includes/admin/class-dlm-admin-writepanels.php +11 -11
- includes/admin/class-dlm-admin.php +59 -15
- includes/admin/class-dlm-logging-list-table.php +3 -3
- includes/admin/uaparser/uaparser.php +1 -1
- includes/class-dlm-ajax-handler.php +24 -0
- includes/class-dlm-download-handler.php +155 -18
- includes/class-dlm-download-version.php +1 -1
- includes/class-dlm-file-manager.php +11 -24
- includes/class-dlm-logging.php +2 -27
- includes/class-dlm-shortcodes.php +52 -13
- includes/class-dlm-utils.php +108 -0
- includes/class-wp-dlm.php +4 -1
- includes/widgets/class-dlm-widget-downloads.php +5 -6
- installer-functions.php +96 -0
- languages/download-monitor-da_DK.mo +0 -0
- languages/download-monitor-da_DK.po +1023 -0
- languages/download-monitor-de_DE.mo +0 -0
- languages/download-monitor-de_DE.po +17 -16
- languages/download-monitor-nl_NL.mo +0 -0
- languages/download-monitor-nl_NL.po +3 -3
- readme.txt +47 -23
- templates/content-download-filename.php +1 -2
- templates/content-download.php +1 -2
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:16px;line-height:16px;width:16px;display:inline-block}#dlm_logs td.column-status .failed{background-color:#df9d1d}#dlm_logs td.column-status .redirected{background-color:#74a721}#dlm_logs td.column-status .completed{background-color:#1c769b}#dlm_logs td.column-user_agent,#dlm_logs td.column-user_ip{font-family:monospace;font-weight:400}#dlm_logs span.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 .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 .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}
|
assets/css/admin.less
CHANGED
|
@@ -35,26 +35,29 @@
|
|
| 35 |
-moz-border-radius: 50%;
|
| 36 |
-webkit-border-radius: 50%;
|
| 37 |
border-radius: 50%;
|
| 38 |
-
height:
|
| 39 |
-
line-height:
|
| 40 |
-
width:
|
| 41 |
display: inline-block;
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
}
|
| 43 |
.failed {
|
| 44 |
-
background-color: #
|
|
|
|
| 45 |
}
|
| 46 |
.redirected {
|
| 47 |
-
background-color: #74a721;
|
| 48 |
-
}
|
| 49 |
-
.completed {
|
| 50 |
background-color: #1c769b;
|
|
|
|
| 51 |
}
|
| 52 |
}
|
| 53 |
td.column-user_ip, td.column-user_agent {
|
| 54 |
font-family: monospace;
|
| 55 |
font-weight: normal;
|
| 56 |
}
|
| 57 |
-
span.description {
|
| 58 |
font-weight: normal;
|
| 59 |
}
|
| 60 |
.column-download, .column-file, .column-user, .column-user_ua {
|
|
@@ -475,7 +478,7 @@ table.wp-list-table {
|
|
| 475 |
width: auto;
|
| 476 |
vertical-align: middle;
|
| 477 |
}
|
| 478 |
-
.description {
|
| 479 |
padding: 4px 0 0 0;
|
| 480 |
display: block;
|
| 481 |
}
|
| 35 |
-moz-border-radius: 50%;
|
| 36 |
-webkit-border-radius: 50%;
|
| 37 |
border-radius: 50%;
|
| 38 |
+
height: 18px;
|
| 39 |
+
line-height: 18px;
|
| 40 |
+
width: 18px;
|
| 41 |
display: inline-block;
|
| 42 |
+
background: url('../images/log-status-icons.png') top left no-repeat;
|
| 43 |
+
}
|
| 44 |
+
.completed {
|
| 45 |
+
background-color: #6cc644;
|
| 46 |
}
|
| 47 |
.failed {
|
| 48 |
+
background-color: #bd2c00;
|
| 49 |
+
background-position-y: -18px;
|
| 50 |
}
|
| 51 |
.redirected {
|
|
|
|
|
|
|
|
|
|
| 52 |
background-color: #1c769b;
|
| 53 |
+
background-position-y: -36px;
|
| 54 |
}
|
| 55 |
}
|
| 56 |
td.column-user_ip, td.column-user_agent {
|
| 57 |
font-family: monospace;
|
| 58 |
font-weight: normal;
|
| 59 |
}
|
| 60 |
+
span.dlm-description {
|
| 61 |
font-weight: normal;
|
| 62 |
}
|
| 63 |
.column-download, .column-file, .column-user, .column-user_ua {
|
| 478 |
width: auto;
|
| 479 |
vertical-align: middle;
|
| 480 |
}
|
| 481 |
+
.dlm-description {
|
| 482 |
padding: 4px 0 0 0;
|
| 483 |
display: block;
|
| 484 |
}
|
assets/css/frontend.css
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
.download-box{width:250px;border:1px solid #ccc;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;text-align:center;position:relative;margin:1em auto;box-shadow:0 2px 4px rgba(0,0,0,.1),inset 0 1px 0 rgba(255,255,255,.4)}.download-box img.wp-post-image{margin:0;padding:0;display:block;width:100%;-moz-border-radius:0;-webkit-border-radius:0;-moz-border-top-left-radius:3px;-moz-border-top-right-radius:3px;-webkit-border-top-left-radius:3px;-webkit-border-top-right-radius:3px;border-radius:0;border-top-left-radius:3px;border-top-right-radius:3px;box-shadow:inset 0 1px 0 rgba(255,255,255,.4)}.download-box .download-box-content{padding:0 1em 1em}.download-box .download-count{-moz-border-radius:1em;-webkit-border-radius:1em;border-radius:1em;color:#777;text-shadow:0 1px 0 rgba(255,255,255,.5);background:#ddd;box-shadow:0 2px 4px rgba(0,0,0,.1),inset 0 1px 0 rgba(255,255,255,.4);position:absolute;top:0;right:0;padding:.5em;height:1em;width:auto;min-width:1em;font-size:1em;text-align:center;vertical-align:middle;line-height:1em;border:1px solid #bbb;margin:-.5em -.5em 0 0}.download-button{text-align:center;text-decoration:none;padding:.75em 1em;color:#fff;display:block;font-size:1.2em;line-height:1.5em;background-color:#09c;background-image:-webkit-linear-gradient(#009fd4,#09c,#0086b2);background-image:-moz-linear-gradient(#009fd4,#09c,#0086b2);-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;text-shadow:0 -1px 0 rgba(0,0,0,.5);box-shadow:0 2px 4px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.4);border:1px solid #0086b2;cursor:pointer}.download-button:hover{color:#fff;background-color:#09c;background-image:-webkit-linear-gradient(#09c,#0086b2);background-image:-moz-linear-gradient(#09c,#0086b2)}.download-button small{font-size:.8em;opacity:.8;display:block}.filetype-icon{padding-left:19px;background-repeat:no-repeat;background-position:left;background-image:url(../images/filetypes/document.png)}.filetype-pdf{background-image:url(../images/filetypes/document-pdf.png)}.filetype-aif,.filetype-aifc,.filetype-aiff,.filetype-au,.filetype-kar,.filetype-m3u,.filetype-m4r,.filetype-mid,.filetype-midi,.filetype-mp2,.filetype-mp3,.filetype-mpga,.filetype-ra,.filetype-ram,.filetype-rm,.filetype-rpm,.filetype-snd,.filetype-wav,.filetype-wave{background-image:url(../images/filetypes/document-music.png)}.filetype-avi,.filetype-divx,.filetype-mov,.filetype-movie,.filetype-mp4,.filetype-mpe,.filetype-mpeg,.filetype-mpg,.filetype-mxu,.filetype-qt{background-image:url(../images/filetypes/document-film.png)}.filetype-7z,.filetype-gz,.filetype-rar,.filetype-sit,.filetype-tar,.filetype-zip{background-image:url(../images/filetypes/document-zipper.png)}.filetype-csv,.filetype-tsv,.filetype-xls{background-image:url(../images/filetypes/document-excel.png)}.filetype-doc,.filetype-docx{background-image:url(../images/filetypes/document-word-text.png)}.filetype-ai{background-image:url(../images/filetypes/document-illustrator.png)}.filetype-swf{background-image:url(../images/filetypes/document-flash-movie.png)}.filetype-bmp,.filetype-djv,.filetype-eps,.filetype-gif,.filetype-ief,.filetype-jpe,.filetype-jpeg,.filetype-jpg,.filetype-pbm,.filetype-pgm,.filetype-png,.filetype-pnm,.filetype-ppm,.filetype-ps,.filetype-ras,.filetype-rgb,.filetype-tif,.filetype-tiff,.filetype-wbmp,.filetype-xbm,.filetype-xpm,.filetype-xwd{background-image:url(../images/filetypes/document-image.png)}.filetype-psd{background-image:url(../images/filetypes/document-photoshop.png)}.filetype-ppt{background-image:url(../images/filetypes/document-powerpoint.png)}.filetype-as,.filetype-css,.filetype-htaccess,.filetype-htm,.filetype-html,.filetype-js,.filetype-php,.filetype-sql,.filetype-xml,.filetype-xsl{background-image:url(../images/filetypes/document-code.png)}.filetype-rtf,.filetype-rtx{background-image:url(../images/filetypes/document-text-image.png)}.filetype-txt{background-image:url(../images/filetypes/document-text.png)}#content nav.download-monitor-pagination,nav.download-monitor-pagination{text-align:center}#content nav.download-monitor-pagination ul,nav.download-monitor-pagination ul{display:inline-block;white-space:nowrap;padding:0;clear:both;border:1px solid #eee;border-right:0;margin:1px}#content nav.download-monitor-pagination ul li,nav.download-monitor-pagination ul li{border-right:1px solid #eee;padding:0;margin:0;float:left;display:inline;overflow:hidden}#content nav.download-monitor-pagination ul li a,#content nav.download-monitor-pagination ul li span,nav.download-monitor-pagination ul li a,nav.download-monitor-pagination ul li span{margin:0;text-decoration:none;line-height:1em;font-size:1em;font-weight:400;padding:.5em;min-width:1em;display:block}#content nav.download-monitor-pagination ul li a:focus,#content nav.download-monitor-pagination ul li a:hover,#content nav.download-monitor-pagination ul li span.current,nav.download-monitor-pagination ul li a:focus,nav.download-monitor-pagination ul li a:hover,nav.download-monitor-pagination ul li span.current{background:#eee;color:#888}
|
| 1 |
+
.download-box{width:250px;border:1px solid #ccc;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;text-align:center;position:relative;margin:1em auto;box-shadow:0 2px 4px rgba(0,0,0,.1),inset 0 1px 0 rgba(255,255,255,.4)}.download-box img.wp-post-image{margin:0;padding:0;display:block;width:100%;-moz-border-radius:0;-webkit-border-radius:0;-moz-border-top-left-radius:3px;-moz-border-top-right-radius:3px;-webkit-border-top-left-radius:3px;-webkit-border-top-right-radius:3px;border-radius:0;border-top-left-radius:3px;border-top-right-radius:3px;box-shadow:inset 0 1px 0 rgba(255,255,255,.4)}.download-box .download-box-content{padding:0 1em 1em}.download-box .download-count{-moz-border-radius:1em;-webkit-border-radius:1em;border-radius:1em;color:#777;text-shadow:0 1px 0 rgba(255,255,255,.5);background:#ddd;box-shadow:0 2px 4px rgba(0,0,0,.1),inset 0 1px 0 rgba(255,255,255,.4);position:absolute;top:0;right:0;padding:.5em;height:1em;width:auto;min-width:1em;font-size:1em;text-align:center;vertical-align:middle;line-height:1em;border:1px solid #bbb;margin:-.5em -.5em 0 0}.download-button{text-align:center;text-decoration:none;padding:.75em 1em;color:#fff;display:block;font-size:1.2em;line-height:1.5em;background-color:#09c;background-image:-webkit-linear-gradient(#009fd4,#09c,#0086b2);background-image:-moz-linear-gradient(#009fd4,#09c,#0086b2);-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;text-shadow:0 -1px 0 rgba(0,0,0,.5);box-shadow:0 2px 4px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.4);border:1px solid #0086b2;cursor:pointer}.download-button:hover{color:#fff;background-color:#09c;background-image:-webkit-linear-gradient(#09c,#0086b2);background-image:-moz-linear-gradient(#09c,#0086b2)}.download-button small{font-size:.8em;opacity:.8;display:block}.filetype-icon{padding-left:19px;background-repeat:no-repeat;background-position:left;background-image:url(../images/filetypes/document.png)}.filetype-pdf{background-image:url(../images/filetypes/document-pdf.png)}.filetype-aif,.filetype-aifc,.filetype-aiff,.filetype-au,.filetype-kar,.filetype-m3u,.filetype-m4r,.filetype-mid,.filetype-midi,.filetype-mp2,.filetype-mp3,.filetype-mpga,.filetype-ra,.filetype-ram,.filetype-rm,.filetype-rpm,.filetype-snd,.filetype-wav,.filetype-wave{background-image:url(../images/filetypes/document-music.png)}.filetype-avi,.filetype-divx,.filetype-mov,.filetype-movie,.filetype-mp4,.filetype-mpe,.filetype-mpeg,.filetype-mpg,.filetype-mxu,.filetype-qt{background-image:url(../images/filetypes/document-film.png)}.filetype-7z,.filetype-gz,.filetype-rar,.filetype-sit,.filetype-tar,.filetype-zip{background-image:url(../images/filetypes/document-zipper.png)}.filetype-csv,.filetype-tsv,.filetype-xls,.filetype-xlsx{background-image:url(../images/filetypes/document-excel.png)}.filetype-doc,.filetype-docx{background-image:url(../images/filetypes/document-word-text.png)}.filetype-ai{background-image:url(../images/filetypes/document-illustrator.png)}.filetype-swf{background-image:url(../images/filetypes/document-flash-movie.png)}.filetype-bmp,.filetype-djv,.filetype-eps,.filetype-gif,.filetype-ief,.filetype-jpe,.filetype-jpeg,.filetype-jpg,.filetype-pbm,.filetype-pgm,.filetype-png,.filetype-pnm,.filetype-ppm,.filetype-ps,.filetype-ras,.filetype-rgb,.filetype-tif,.filetype-tiff,.filetype-wbmp,.filetype-xbm,.filetype-xpm,.filetype-xwd{background-image:url(../images/filetypes/document-image.png)}.filetype-psd{background-image:url(../images/filetypes/document-photoshop.png)}.filetype-ppt,.filetype-pptx{background-image:url(../images/filetypes/document-powerpoint.png)}.filetype-as,.filetype-css,.filetype-htaccess,.filetype-htm,.filetype-html,.filetype-js,.filetype-php,.filetype-sql,.filetype-xml,.filetype-xsl{background-image:url(../images/filetypes/document-code.png)}.filetype-rtf,.filetype-rtx{background-image:url(../images/filetypes/document-text-image.png)}.filetype-txt{background-image:url(../images/filetypes/document-text.png)}#content nav.download-monitor-pagination,nav.download-monitor-pagination{text-align:center}#content nav.download-monitor-pagination ul,nav.download-monitor-pagination ul{display:inline-block;white-space:nowrap;padding:0;clear:both;border:1px solid #eee;border-right:0;margin:1px}#content nav.download-monitor-pagination ul li,nav.download-monitor-pagination ul li{border-right:1px solid #eee;padding:0;margin:0;float:left;display:inline;overflow:hidden}#content nav.download-monitor-pagination ul li a,#content nav.download-monitor-pagination ul li span,nav.download-monitor-pagination ul li a,nav.download-monitor-pagination ul li span{margin:0;text-decoration:none;line-height:1em;font-size:1em;font-weight:400;padding:.5em;min-width:1em;display:block}#content nav.download-monitor-pagination ul li a:focus,#content nav.download-monitor-pagination ul li a:hover,#content nav.download-monitor-pagination ul li span.current,nav.download-monitor-pagination ul li a:focus,nav.download-monitor-pagination ul li a:hover,nav.download-monitor-pagination ul li span.current{background:#eee;color:#888}
|
assets/css/frontend.less
CHANGED
|
@@ -110,7 +110,7 @@
|
|
| 110 |
background-image: url(../images/filetypes/document-zipper.png);
|
| 111 |
}
|
| 112 |
|
| 113 |
-
.filetype-xls, .filetype-tsv, .filetype-csv {
|
| 114 |
background-image: url(../images/filetypes/document-excel.png);
|
| 115 |
}
|
| 116 |
|
|
@@ -134,7 +134,7 @@
|
|
| 134 |
background-image: url(../images/filetypes/document-photoshop.png);
|
| 135 |
}
|
| 136 |
|
| 137 |
-
.filetype-ppt {
|
| 138 |
background-image: url(../images/filetypes/document-powerpoint.png);
|
| 139 |
}
|
| 140 |
|
| 110 |
background-image: url(../images/filetypes/document-zipper.png);
|
| 111 |
}
|
| 112 |
|
| 113 |
+
.filetype-xls, .filetype-tsv, .filetype-csv, .filetype-xlsx {
|
| 114 |
background-image: url(../images/filetypes/document-excel.png);
|
| 115 |
}
|
| 116 |
|
| 134 |
background-image: url(../images/filetypes/document-photoshop.png);
|
| 135 |
}
|
| 136 |
|
| 137 |
+
.filetype-ppt, .filetype-pptx {
|
| 138 |
background-image: url(../images/filetypes/document-powerpoint.png);
|
| 139 |
}
|
| 140 |
|
assets/images/log-status-icons.png
ADDED
|
Binary file
|
assets/js/settings.js
CHANGED
|
@@ -13,6 +13,30 @@ jQuery( function ( $ ) {
|
|
| 13 |
$( '#setting-dlm_custom_template' ).closest( 'tr' ).hide();
|
| 14 |
}
|
| 15 |
} ).change();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
|
| 17 |
$( '.nav-tab-wrapper a:first' ).click();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
} );
|
| 13 |
$( '#setting-dlm_custom_template' ).closest( 'tr' ).hide();
|
| 14 |
}
|
| 15 |
} ).change();
|
| 16 |
+
$( '#setting-dlm_enable_logging' ).change( function () {
|
| 17 |
+
if ( $( this ).is(":checked") === true ) {
|
| 18 |
+
$( '#setting-dlm_count_unique_ips' ).closest( 'tr' ).show();
|
| 19 |
+
} else {
|
| 20 |
+
$( '#setting-dlm_count_unique_ips' ).closest( 'tr' ).hide();
|
| 21 |
+
}
|
| 22 |
+
} ).change();
|
| 23 |
|
| 24 |
$( '.nav-tab-wrapper a:first' ).click();
|
| 25 |
+
|
| 26 |
+
$( '.dlm-notice.is-dismissible' ).on( 'click', '.notice-dismiss', function ( event ) {
|
| 27 |
+
//$( '#dlm-ajax-nonce' ).val()
|
| 28 |
+
var notice_el = $( this ).closest( '.dlm-notice' );
|
| 29 |
+
|
| 30 |
+
var notice = notice_el.attr( 'id' );
|
| 31 |
+
var notice_nonce = notice_el.attr( 'data-nonce' );
|
| 32 |
+
$.post(
|
| 33 |
+
ajaxurl,
|
| 34 |
+
{
|
| 35 |
+
action: 'dlm_dismiss_notice',
|
| 36 |
+
nonce: notice_nonce,
|
| 37 |
+
notice: notice
|
| 38 |
+
},
|
| 39 |
+
function ( response ) {}
|
| 40 |
+
)
|
| 41 |
+
} );
|
| 42 |
} );
|
assets/js/settings.min.js
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
jQuery(function(a){a(".nav-tab-wrapper a").click(function(){return a(".settings_panel").hide(),a(".nav-tab-active").removeClass("nav-tab-active"),a(a(this).attr("href")).show(),a(this).addClass("nav-tab-active"),!1}),a("#setting-dlm_default_template").change(function(){"custom"==a(this).val()?a("#setting-dlm_custom_template").closest("tr").show():a("#setting-dlm_custom_template").closest("tr").hide()}).change(),a(".nav-tab-wrapper a:first").click()});
|
| 1 |
+
jQuery(function(a){a(".nav-tab-wrapper a").click(function(){return a(".settings_panel").hide(),a(".nav-tab-active").removeClass("nav-tab-active"),a(a(this).attr("href")).show(),a(this).addClass("nav-tab-active"),!1}),a("#setting-dlm_default_template").change(function(){"custom"==a(this).val()?a("#setting-dlm_custom_template").closest("tr").show():a("#setting-dlm_custom_template").closest("tr").hide()}).change(),a("#setting-dlm_enable_logging").change(function(){a(this).is(":checked")===!0?a("#setting-dlm_count_unique_ips").closest("tr").show():a("#setting-dlm_count_unique_ips").closest("tr").hide()}).change(),a(".nav-tab-wrapper a:first").click(),a(".dlm-notice.is-dismissible").on("click",".notice-dismiss",function(){var b=a(this).closest(".dlm-notice"),c=b.attr("id"),d=b.attr("data-nonce");a.post(ajaxurl,{action:"dlm_dismiss_notice",nonce:d,notice:c},function(){})})});
|
download-monitor.php
CHANGED
|
@@ -3,11 +3,11 @@
|
|
| 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:
|
| 8 |
-
Author URI: https://www.
|
| 9 |
Requires at least: 3.8
|
| 10 |
-
Tested up to: 4.2.
|
| 11 |
|
| 12 |
License: GPL v3
|
| 13 |
|
|
@@ -23,6 +23,8 @@
|
|
| 23 |
|
| 24 |
You should have received a copy of the GNU General Public License
|
| 25 |
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
| 26 |
*/
|
| 27 |
|
| 28 |
if ( ! defined( 'ABSPATH' ) ) {
|
|
@@ -30,7 +32,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
| 30 |
} // Exit if accessed directly
|
| 31 |
|
| 32 |
// Define DLM Version
|
| 33 |
-
define( 'DLM_VERSION', '1.
|
| 34 |
|
| 35 |
function __download_monitor_main() {
|
| 36 |
|
|
@@ -50,27 +52,23 @@ function __download_monitor_main() {
|
|
| 50 |
// Init plugin
|
| 51 |
add_action( 'plugins_loaded', '__download_monitor_main', 10 );
|
| 52 |
|
| 53 |
-
if ( is_admin() &&
|
| 54 |
|
|
|
|
| 55 |
define( 'DLM_PLUGIN_FILE_INSTALLER', __FILE__ );
|
| 56 |
|
| 57 |
-
//
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
// Load installer functions
|
| 61 |
-
require_once plugin_dir_path( DLM_PLUGIN_FILE_INSTALLER ) . 'includes/class-dlm-installer.php';
|
| 62 |
-
|
| 63 |
-
// DLM Installer
|
| 64 |
-
$installer = new DLM_Installer();
|
| 65 |
-
|
| 66 |
-
// Install DLM
|
| 67 |
-
$installer->install();
|
| 68 |
-
|
| 69 |
-
}
|
| 70 |
|
| 71 |
// Activation hook
|
| 72 |
register_activation_hook( DLM_PLUGIN_FILE_INSTALLER, '__download_monitor_install' );
|
| 73 |
|
| 74 |
// Flush Rewrites on Activation
|
| 75 |
register_activation_hook( DLM_PLUGIN_FILE_INSTALLER, 'flush_rewrite_rules', 11 );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 76 |
}
|
| 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.8.0
|
| 7 |
+
Author: Never5
|
| 8 |
+
Author URI: https://www.never5.com
|
| 9 |
Requires at least: 3.8
|
| 10 |
+
Tested up to: 4.2.2
|
| 11 |
|
| 12 |
License: GPL v3
|
| 13 |
|
| 23 |
|
| 24 |
You should have received a copy of the GNU General Public License
|
| 25 |
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
| 26 |
+
|
| 27 |
+
Original project created by Mike Jolley.
|
| 28 |
*/
|
| 29 |
|
| 30 |
if ( ! defined( 'ABSPATH' ) ) {
|
| 32 |
} // Exit if accessed directly
|
| 33 |
|
| 34 |
// Define DLM Version
|
| 35 |
+
define( 'DLM_VERSION', '1.8.0' );
|
| 36 |
|
| 37 |
function __download_monitor_main() {
|
| 38 |
|
| 52 |
// Init plugin
|
| 53 |
add_action( 'plugins_loaded', '__download_monitor_main', 10 );
|
| 54 |
|
| 55 |
+
if ( is_admin() && ( false === defined( 'DOING_AJAX' ) || false === DOING_AJAX ) ) {
|
| 56 |
|
| 57 |
+
// set installer file constant
|
| 58 |
define( 'DLM_PLUGIN_FILE_INSTALLER', __FILE__ );
|
| 59 |
|
| 60 |
+
// include installer functions
|
| 61 |
+
require_once( 'installer-functions.php' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
|
| 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 |
}
|
includes/admin/class-dlm-admin-cpt.php
CHANGED
|
@@ -102,7 +102,7 @@ class DLM_Admin_CPT {
|
|
| 102 |
*
|
| 103 |
* @access public
|
| 104 |
*
|
| 105 |
-
* @param
|
| 106 |
*
|
| 107 |
* @return void
|
| 108 |
*/
|
|
@@ -133,8 +133,11 @@ class DLM_Admin_CPT {
|
|
| 133 |
/**
|
| 134 |
* enter_title_here function.
|
| 135 |
*
|
|
|
|
|
|
|
|
|
|
| 136 |
* @access public
|
| 137 |
-
* @return
|
| 138 |
*/
|
| 139 |
public function enter_title_here( $text, $post ) {
|
| 140 |
if ( 'dlm_download' == $post->post_type ) {
|
|
@@ -149,9 +152,9 @@ class DLM_Admin_CPT {
|
|
| 149 |
*
|
| 150 |
* @access public
|
| 151 |
*
|
| 152 |
-
* @param
|
| 153 |
*
|
| 154 |
-
* @return
|
| 155 |
*/
|
| 156 |
public function post_updated_messages( $messages ) {
|
| 157 |
global $post;
|
|
@@ -179,7 +182,7 @@ class DLM_Admin_CPT {
|
|
| 179 |
*
|
| 180 |
* @access public
|
| 181 |
*
|
| 182 |
-
* @param
|
| 183 |
*
|
| 184 |
* @return array
|
| 185 |
*/
|
|
@@ -298,7 +301,7 @@ class DLM_Admin_CPT {
|
|
| 298 |
*
|
| 299 |
* @param mixed $columns
|
| 300 |
*
|
| 301 |
-
* @return
|
| 302 |
*/
|
| 303 |
public function sortable_columns( $columns ) {
|
| 304 |
$custom = array(
|
|
@@ -317,9 +320,9 @@ class DLM_Admin_CPT {
|
|
| 317 |
*
|
| 318 |
* @access public
|
| 319 |
*
|
| 320 |
-
* @param
|
| 321 |
*
|
| 322 |
-
* @return
|
| 323 |
*/
|
| 324 |
public function sort_columns( $vars ) {
|
| 325 |
if ( isset( $vars['orderby'] ) ) {
|
| 102 |
*
|
| 103 |
* @access public
|
| 104 |
*
|
| 105 |
+
* @param int $id
|
| 106 |
*
|
| 107 |
* @return void
|
| 108 |
*/
|
| 133 |
/**
|
| 134 |
* enter_title_here function.
|
| 135 |
*
|
| 136 |
+
* @param string $text
|
| 137 |
+
* @param WP_Post $post
|
| 138 |
+
*
|
| 139 |
* @access public
|
| 140 |
+
* @return string
|
| 141 |
*/
|
| 142 |
public function enter_title_here( $text, $post ) {
|
| 143 |
if ( 'dlm_download' == $post->post_type ) {
|
| 152 |
*
|
| 153 |
* @access public
|
| 154 |
*
|
| 155 |
+
* @param array $messages
|
| 156 |
*
|
| 157 |
+
* @return array
|
| 158 |
*/
|
| 159 |
public function post_updated_messages( $messages ) {
|
| 160 |
global $post;
|
| 182 |
*
|
| 183 |
* @access public
|
| 184 |
*
|
| 185 |
+
* @param array $columns
|
| 186 |
*
|
| 187 |
* @return array
|
| 188 |
*/
|
| 301 |
*
|
| 302 |
* @param mixed $columns
|
| 303 |
*
|
| 304 |
+
* @return array
|
| 305 |
*/
|
| 306 |
public function sortable_columns( $columns ) {
|
| 307 |
$custom = array(
|
| 320 |
*
|
| 321 |
* @access public
|
| 322 |
*
|
| 323 |
+
* @param array $vars
|
| 324 |
*
|
| 325 |
+
* @return array
|
| 326 |
*/
|
| 327 |
public function sort_columns( $vars ) {
|
| 328 |
if ( isset( $vars['orderby'] ) ) {
|
includes/admin/class-dlm-admin-writepanels.php
CHANGED
|
@@ -61,7 +61,7 @@ class DLM_Admin_Writepanels {
|
|
| 61 |
*
|
| 62 |
* @access public
|
| 63 |
*
|
| 64 |
-
* @param
|
| 65 |
*
|
| 66 |
* @return void
|
| 67 |
*/
|
|
@@ -100,7 +100,7 @@ class DLM_Admin_Writepanels {
|
|
| 100 |
*
|
| 101 |
* @access public
|
| 102 |
*
|
| 103 |
-
* @param
|
| 104 |
*
|
| 105 |
* @return void
|
| 106 |
*/
|
|
@@ -116,19 +116,19 @@ class DLM_Admin_Writepanels {
|
|
| 116 |
echo '<p class="form-field form-field-checkbox">
|
| 117 |
<input type="checkbox" name="_featured" id="_featured" ' . checked( get_post_meta( $thepostid, '_featured', true ), 'yes', false ) . ' />
|
| 118 |
<label for="_featured">' . __( 'Featured download', 'download-monitor' ) . '</label>
|
| 119 |
-
<span class="description">' . __( 'Mark this download as featured. Used by shortcodes and widgets.', 'download-monitor' ) . '</span>
|
| 120 |
</p>';
|
| 121 |
|
| 122 |
echo '<p class="form-field form-field-checkbox">
|
| 123 |
<input type="checkbox" name="_members_only" id="_members_only" ' . checked( get_post_meta( $thepostid, '_members_only', true ), 'yes', false ) . ' />
|
| 124 |
<label for="_members_only">' . __( 'Members only', 'download-monitor' ) . '</label>
|
| 125 |
-
<span class="description">' . __( 'Only logged in users will be able to access the file via a download link if this is enabled.', 'download-monitor' ) . '</span>
|
| 126 |
</p>';
|
| 127 |
|
| 128 |
echo '<p class="form-field form-field-checkbox">
|
| 129 |
<input type="checkbox" name="_redirect_only" id="_redirect_only" ' . checked( get_post_meta( $thepostid, '_redirect_only', true ), 'yes', false ) . ' />
|
| 130 |
<label for="_redirect_only">' . __( 'Redirect to file', 'download-monitor' ) . '</label>
|
| 131 |
-
<span class="description">' . __( 'Don\'t force download. If the <code>
|
| 132 |
</p>';
|
| 133 |
|
| 134 |
do_action( 'dlm_options_end', $thepostid );
|
|
@@ -202,7 +202,7 @@ class DLM_Admin_Writepanels {
|
|
| 202 |
*
|
| 203 |
* @access public
|
| 204 |
*
|
| 205 |
-
* @param
|
| 206 |
*
|
| 207 |
* @return void
|
| 208 |
*/
|
|
@@ -223,8 +223,8 @@ class DLM_Admin_Writepanels {
|
|
| 223 |
*
|
| 224 |
* @access public
|
| 225 |
*
|
| 226 |
-
* @param
|
| 227 |
-
* @param
|
| 228 |
*
|
| 229 |
* @return void
|
| 230 |
*/
|
|
@@ -259,8 +259,8 @@ class DLM_Admin_Writepanels {
|
|
| 259 |
*
|
| 260 |
* @access public
|
| 261 |
*
|
| 262 |
-
* @param
|
| 263 |
-
* @param
|
| 264 |
*
|
| 265 |
* @return void
|
| 266 |
*/
|
|
@@ -371,4 +371,4 @@ class DLM_Admin_Writepanels {
|
|
| 371 |
|
| 372 |
do_action( 'dlm_save_metabox', $post_id, $post );
|
| 373 |
}
|
| 374 |
-
}
|
| 61 |
*
|
| 62 |
* @access public
|
| 63 |
*
|
| 64 |
+
* @param WP_Post $post
|
| 65 |
*
|
| 66 |
* @return void
|
| 67 |
*/
|
| 100 |
*
|
| 101 |
* @access public
|
| 102 |
*
|
| 103 |
+
* @param WP_Post $post
|
| 104 |
*
|
| 105 |
* @return void
|
| 106 |
*/
|
| 116 |
echo '<p class="form-field form-field-checkbox">
|
| 117 |
<input type="checkbox" name="_featured" id="_featured" ' . checked( get_post_meta( $thepostid, '_featured', true ), 'yes', false ) . ' />
|
| 118 |
<label for="_featured">' . __( 'Featured download', 'download-monitor' ) . '</label>
|
| 119 |
+
<span class="dlm-description">' . __( 'Mark this download as featured. Used by shortcodes and widgets.', 'download-monitor' ) . '</span>
|
| 120 |
</p>';
|
| 121 |
|
| 122 |
echo '<p class="form-field form-field-checkbox">
|
| 123 |
<input type="checkbox" name="_members_only" id="_members_only" ' . checked( get_post_meta( $thepostid, '_members_only', true ), 'yes', false ) . ' />
|
| 124 |
<label for="_members_only">' . __( 'Members only', 'download-monitor' ) . '</label>
|
| 125 |
+
<span class="dlm-description">' . __( 'Only logged in users will be able to access the file via a download link if this is enabled.', 'download-monitor' ) . '</span>
|
| 126 |
</p>';
|
| 127 |
|
| 128 |
echo '<p class="form-field form-field-checkbox">
|
| 129 |
<input type="checkbox" name="_redirect_only" id="_redirect_only" ' . checked( get_post_meta( $thepostid, '_redirect_only', true ), 'yes', false ) . ' />
|
| 130 |
<label for="_redirect_only">' . __( 'Redirect to file', 'download-monitor' ) . '</label>
|
| 131 |
+
<span class="dlm-description">' . __( 'Don\'t force download. If the <code>dlm_uploads</code> folder is protected you may need to move your file.', 'download-monitor' ) . '</span>
|
| 132 |
</p>';
|
| 133 |
|
| 134 |
do_action( 'dlm_options_end', $thepostid );
|
| 202 |
*
|
| 203 |
* @access public
|
| 204 |
*
|
| 205 |
+
* @param WP_Post $post
|
| 206 |
*
|
| 207 |
* @return void
|
| 208 |
*/
|
| 223 |
*
|
| 224 |
* @access public
|
| 225 |
*
|
| 226 |
+
* @param int $post_id
|
| 227 |
+
* @param WP_Post $post
|
| 228 |
*
|
| 229 |
* @return void
|
| 230 |
*/
|
| 259 |
*
|
| 260 |
* @access public
|
| 261 |
*
|
| 262 |
+
* @param int $post_id
|
| 263 |
+
* @param WP_Post $post
|
| 264 |
*
|
| 265 |
* @return void
|
| 266 |
*/
|
| 371 |
|
| 372 |
do_action( 'dlm_save_metabox', $post_id, $post );
|
| 373 |
}
|
| 374 |
+
}
|
includes/admin/class-dlm-admin.php
CHANGED
|
@@ -144,14 +144,6 @@ class DLM_Admin {
|
|
| 144 |
'desc' => __( 'If enabled, the download handler will check the PHP referer to see if it originated from your site and if not, redirect them to the homepage.', 'download-monitor' ),
|
| 145 |
'type' => 'checkbox'
|
| 146 |
),
|
| 147 |
-
array(
|
| 148 |
-
'name' => 'dlm_no_access_error',
|
| 149 |
-
'std' => sprintf( __( 'You do not have permission to access this download. %sGo to homepage%s', 'download-monitor' ), '<a href="' . home_url() . '">', '</a>' ),
|
| 150 |
-
'placeholder' => '',
|
| 151 |
-
'label' => __( 'No access message', 'download-monitor' ),
|
| 152 |
-
'desc' => __( "The message that will be displayed to visitors when they don't have access to a file.", 'download-monitor' ),
|
| 153 |
-
'type' => 'textarea'
|
| 154 |
-
),
|
| 155 |
),
|
| 156 |
),
|
| 157 |
'endpoints' => array(
|
|
@@ -217,11 +209,32 @@ class DLM_Admin {
|
|
| 217 |
'desc' => __( 'Log download attempts, IP addresses and more.', 'download-monitor' ),
|
| 218 |
'type' => 'checkbox'
|
| 219 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 220 |
array(
|
| 221 |
'name' => 'dlm_ip_blacklist',
|
| 222 |
-
'std' => '192.168.0
|
| 223 |
'label' => __( 'Blacklist IPs', 'download-monitor' ),
|
| 224 |
-
'desc' => __( 'List IP Addresses to blacklist, 1 per line. Use <code
|
| 225 |
'placeholder' => '',
|
| 226 |
'type' => 'textarea'
|
| 227 |
),
|
|
@@ -346,6 +359,30 @@ class DLM_Admin {
|
|
| 346 |
$admin_extensions->output();
|
| 347 |
}
|
| 348 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 349 |
/**
|
| 350 |
* settings_page function.
|
| 351 |
*
|
|
@@ -353,7 +390,12 @@ class DLM_Admin {
|
|
| 353 |
* @return void
|
| 354 |
*/
|
| 355 |
public function settings_page() {
|
|
|
|
|
|
|
| 356 |
$this->init_settings();
|
|
|
|
|
|
|
|
|
|
| 357 |
?>
|
| 358 |
<div class="wrap">
|
| 359 |
<form method="post" action="options.php">
|
|
@@ -370,9 +412,11 @@ class DLM_Admin {
|
|
| 370 |
</h2><br/>
|
| 371 |
|
| 372 |
<?php
|
|
|
|
| 373 |
if ( ! empty( $_GET['settings-updated'] ) ) {
|
|
|
|
| 374 |
flush_rewrite_rules();
|
| 375 |
-
echo '<div class="updated
|
| 376 |
}
|
| 377 |
|
| 378 |
foreach ( $this->settings as $key => $section ) {
|
|
@@ -403,7 +447,7 @@ class DLM_Admin {
|
|
| 403 |
</label><?php
|
| 404 |
|
| 405 |
if ( $option['desc'] ) {
|
| 406 |
-
echo ' <p class="description">' . $option['desc'] . '</p>';
|
| 407 |
}
|
| 408 |
|
| 409 |
break;
|
|
@@ -414,7 +458,7 @@ class DLM_Admin {
|
|
| 414 |
name="<?php echo $option['name']; ?>" <?php echo $placeholder; ?>><?php echo esc_textarea( $value ); ?></textarea><?php
|
| 415 |
|
| 416 |
if ( $option['desc'] ) {
|
| 417 |
-
echo ' <p class="description">' . $option['desc'] . '</p>';
|
| 418 |
}
|
| 419 |
|
| 420 |
break;
|
|
@@ -428,7 +472,7 @@ class DLM_Admin {
|
|
| 428 |
?></select><?php
|
| 429 |
|
| 430 |
if ( $option['desc'] ) {
|
| 431 |
-
echo ' <p class="description">' . $option['desc'] . '</p>';
|
| 432 |
}
|
| 433 |
|
| 434 |
break;
|
|
@@ -439,7 +483,7 @@ class DLM_Admin {
|
|
| 439 |
value="<?php esc_attr_e( $value ); ?>" <?php echo $placeholder; ?> /><?php
|
| 440 |
|
| 441 |
if ( $option['desc'] ) {
|
| 442 |
-
echo ' <p class="description">' . $option['desc'] . '</p>';
|
| 443 |
}
|
| 444 |
|
| 445 |
break;
|
| 144 |
'desc' => __( 'If enabled, the download handler will check the PHP referer to see if it originated from your site and if not, redirect them to the homepage.', 'download-monitor' ),
|
| 145 |
'type' => 'checkbox'
|
| 146 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 147 |
),
|
| 148 |
),
|
| 149 |
'endpoints' => array(
|
| 209 |
'desc' => __( 'Log download attempts, IP addresses and more.', 'download-monitor' ),
|
| 210 |
'type' => 'checkbox'
|
| 211 |
),
|
| 212 |
+
array(
|
| 213 |
+
'name' => 'dlm_count_unique_ips',
|
| 214 |
+
'std' => '',
|
| 215 |
+
'label' => __( 'Count unique IPs only', 'download-monitor' ),
|
| 216 |
+
'cb_label' => __( 'Enable', 'download-monitor' ),
|
| 217 |
+
'desc' => __( 'If enabled, the counter for each download will only increment and create a log entry once per IP address.', 'download-monitor' ),
|
| 218 |
+
'type' => 'checkbox'
|
| 219 |
+
),
|
| 220 |
+
)
|
| 221 |
+
),
|
| 222 |
+
'access' => array(
|
| 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>' ),
|
| 228 |
+
'placeholder' => '',
|
| 229 |
+
'label' => __( 'No access message', 'download-monitor' ),
|
| 230 |
+
'desc' => __( "The message that will be displayed to visitors when they don't have access to a file.", 'download-monitor' ),
|
| 231 |
+
'type' => 'textarea'
|
| 232 |
+
),
|
| 233 |
array(
|
| 234 |
'name' => 'dlm_ip_blacklist',
|
| 235 |
+
'std' => '192.168.0.0/24',
|
| 236 |
'label' => __( 'Blacklist IPs', 'download-monitor' ),
|
| 237 |
+
'desc' => __( 'List IP Addresses to blacklist, 1 per line. Use IP/CIDR netmask format for ranges. IPv4 examples: <code>198.51.100.1</code> or <code>198.51.100.0/24</code>. IPv6 examples: <code>2001:db8::1</code> or <code>2001:db8::/32</code>.', 'download-monitor' ),
|
| 238 |
'placeholder' => '',
|
| 239 |
'type' => 'textarea'
|
| 240 |
),
|
| 359 |
$admin_extensions->output();
|
| 360 |
}
|
| 361 |
|
| 362 |
+
/**
|
| 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 |
+
|
| 370 |
+
// get upload dir
|
| 371 |
+
$upload_dir = wp_upload_dir();
|
| 372 |
+
|
| 373 |
+
// replace document root because nginx uses path from document root
|
| 374 |
+
$upload_path = str_replace( $_SERVER['DOCUMENT_ROOT'], '', $upload_dir['basedir'] );
|
| 375 |
+
|
| 376 |
+
// form nginx rules
|
| 377 |
+
$nginx_rules = "location " . $upload_path . "/dlm_uploads {<br/>deny all;<br/>return 403;<br/>}";
|
| 378 |
+
echo '<div class="error notice is-dismissible dlm-notice" id="nginx_rules" data-nonce="' . wp_create_nonce( 'dlm_hide_notice-nginx_rules' ) . '">';
|
| 379 |
+
echo '<p>' . __( "Because your server is running on nginx, our .htaccess file can't protect your downloads.", 'download-monitor' );
|
| 380 |
+
echo '<br/>' . sprintf( __( "Please add the following rules to your nginx config to disable direct file access: %s", 'download-monitor' ), '<br/><br/><code>' . $nginx_rules . '</code>' ) . '</p>';
|
| 381 |
+
echo '</div>';
|
| 382 |
+
}
|
| 383 |
+
|
| 384 |
+
}
|
| 385 |
+
|
| 386 |
/**
|
| 387 |
* settings_page function.
|
| 388 |
*
|
| 390 |
* @return void
|
| 391 |
*/
|
| 392 |
public function settings_page() {
|
| 393 |
+
|
| 394 |
+
// initialize settings
|
| 395 |
$this->init_settings();
|
| 396 |
+
|
| 397 |
+
// print global notices
|
| 398 |
+
$this->print_global_notices();
|
| 399 |
?>
|
| 400 |
<div class="wrap">
|
| 401 |
<form method="post" action="options.php">
|
| 412 |
</h2><br/>
|
| 413 |
|
| 414 |
<?php
|
| 415 |
+
|
| 416 |
if ( ! empty( $_GET['settings-updated'] ) ) {
|
| 417 |
+
|
| 418 |
flush_rewrite_rules();
|
| 419 |
+
echo '<div class="updated notice is-dismissible"><p>' . __( 'Settings successfully saved', 'download-monitor' ) . '</p></div>';
|
| 420 |
}
|
| 421 |
|
| 422 |
foreach ( $this->settings as $key => $section ) {
|
| 447 |
</label><?php
|
| 448 |
|
| 449 |
if ( $option['desc'] ) {
|
| 450 |
+
echo ' <p class="dlm-description">' . $option['desc'] . '</p>';
|
| 451 |
}
|
| 452 |
|
| 453 |
break;
|
| 458 |
name="<?php echo $option['name']; ?>" <?php echo $placeholder; ?>><?php echo esc_textarea( $value ); ?></textarea><?php
|
| 459 |
|
| 460 |
if ( $option['desc'] ) {
|
| 461 |
+
echo ' <p class="dlm-description">' . $option['desc'] . '</p>';
|
| 462 |
}
|
| 463 |
|
| 464 |
break;
|
| 472 |
?></select><?php
|
| 473 |
|
| 474 |
if ( $option['desc'] ) {
|
| 475 |
+
echo ' <p class="dlm-description">' . $option['desc'] . '</p>';
|
| 476 |
}
|
| 477 |
|
| 478 |
break;
|
| 483 |
value="<?php esc_attr_e( $value ); ?>" <?php echo $placeholder; ?> /><?php
|
| 484 |
|
| 485 |
if ( $option['desc'] ) {
|
| 486 |
+
echo ' <p class="dlm-description">' . $option['desc'] . '</p>';
|
| 487 |
}
|
| 488 |
|
| 489 |
break;
|
includes/admin/class-dlm-logging-list-table.php
CHANGED
|
@@ -52,13 +52,13 @@ class DLM_Logging_List_Table extends WP_List_Table {
|
|
| 52 |
case 'status' :
|
| 53 |
switch ( $log->download_status ) {
|
| 54 |
case 'failed' :
|
| 55 |
-
$download_status = '<span class="failed" title="' . esc_attr( $log->download_status_message ) . '"
|
| 56 |
break;
|
| 57 |
case 'redirected' :
|
| 58 |
-
$download_status = '<span class="redirected" title="' . esc_attr( $log->download_status_message ) . '"
|
| 59 |
break;
|
| 60 |
default :
|
| 61 |
-
$download_status = '<span class="completed" title="' . __( 'Download Complete', 'download-monitor' ) . '"
|
| 62 |
break;
|
| 63 |
}
|
| 64 |
|
| 52 |
case 'status' :
|
| 53 |
switch ( $log->download_status ) {
|
| 54 |
case 'failed' :
|
| 55 |
+
$download_status = '<span class="failed" title="' . esc_attr( $log->download_status_message ) . '"> </span>';
|
| 56 |
break;
|
| 57 |
case 'redirected' :
|
| 58 |
+
$download_status = '<span class="redirected" title="' . esc_attr( $log->download_status_message ) . '"> </span>';
|
| 59 |
break;
|
| 60 |
default :
|
| 61 |
+
$download_status = '<span class="completed" title="' . __( 'Download Complete', 'download-monitor' ) . '"> </span>';
|
| 62 |
break;
|
| 63 |
}
|
| 64 |
|
includes/admin/uaparser/uaparser.php
CHANGED
|
@@ -44,7 +44,7 @@ class UAParser {
|
|
| 44 |
|
| 45 |
$regexesFile = ($customRegexesFile !== null) ? $customRegexesFile : dirname(__FILE__).DIRECTORY_SEPARATOR.'resources/regexes.json';
|
| 46 |
if (file_exists($regexesFile)) {
|
| 47 |
-
|
| 48 |
} else {
|
| 49 |
$title = 'Error loading ua-parser';
|
| 50 |
if ($customRegexesFile !== null) {
|
| 44 |
|
| 45 |
$regexesFile = ($customRegexesFile !== null) ? $customRegexesFile : dirname(__FILE__).DIRECTORY_SEPARATOR.'resources/regexes.json';
|
| 46 |
if (file_exists($regexesFile)) {
|
| 47 |
+
$this->regexes = apply_filters( 'dlm_ua_parser_regexes', json_decode( file_get_contents( $regexesFile ) ) );
|
| 48 |
} else {
|
| 49 |
$title = 'Error loading ua-parser';
|
| 50 |
if ($customRegexesFile !== null) {
|
includes/class-dlm-ajax-handler.php
CHANGED
|
@@ -20,6 +20,7 @@ class DLM_Ajax_Handler {
|
|
| 20 |
add_action( 'wp_ajax_download_monitor_list_files', array( $this, 'list_files' ) );
|
| 21 |
add_action( 'wp_ajax_download_monitor_insert_panel_upload', array( $this, 'insert_panel_upload' ) );
|
| 22 |
add_action( 'wp_ajax_dlm_extension', array( $this, 'handle_extensions' ) );
|
|
|
|
| 23 |
}
|
| 24 |
|
| 25 |
/**
|
|
@@ -152,6 +153,29 @@ class DLM_Ajax_Handler {
|
|
| 152 |
die();
|
| 153 |
}
|
| 154 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 155 |
/**
|
| 156 |
* Handle extensions AJAX
|
| 157 |
*/
|
| 20 |
add_action( 'wp_ajax_download_monitor_list_files', array( $this, 'list_files' ) );
|
| 21 |
add_action( 'wp_ajax_download_monitor_insert_panel_upload', array( $this, 'insert_panel_upload' ) );
|
| 22 |
add_action( 'wp_ajax_dlm_extension', array( $this, 'handle_extensions' ) );
|
| 23 |
+
add_action( 'wp_ajax_dlm_dismiss_notice', array( $this, 'dismiss_notice' ) );
|
| 24 |
}
|
| 25 |
|
| 26 |
/**
|
| 153 |
die();
|
| 154 |
}
|
| 155 |
|
| 156 |
+
/**
|
| 157 |
+
* Handle notice dismissal
|
| 158 |
+
*/
|
| 159 |
+
public function dismiss_notice() {
|
| 160 |
+
|
| 161 |
+
// check notice
|
| 162 |
+
if ( ! isset( $_POST['notice'] ) || empty( $_POST['notice'] ) ) {
|
| 163 |
+
exit;
|
| 164 |
+
}
|
| 165 |
+
|
| 166 |
+
// the notice
|
| 167 |
+
$notice = $_POST['notice'];
|
| 168 |
+
|
| 169 |
+
// check nonce
|
| 170 |
+
check_ajax_referer( 'dlm_hide_notice-' . $notice, 'nonce' );
|
| 171 |
+
|
| 172 |
+
// update option
|
| 173 |
+
update_option( 'dlm_hide_notice-' . $notice, 1 );
|
| 174 |
+
|
| 175 |
+
// send JSON
|
| 176 |
+
wp_send_json( array( 'response' => 'success' ) );
|
| 177 |
+
}
|
| 178 |
+
|
| 179 |
/**
|
| 180 |
* Handle extensions AJAX
|
| 181 |
*/
|
includes/class-dlm-download-handler.php
CHANGED
|
@@ -27,12 +27,12 @@ class DLM_Download_Handler {
|
|
| 27 |
add_filter( 'query_vars', array( $this, 'add_query_vars' ), 0 );
|
| 28 |
add_action( 'init', array( $this, 'add_endpoint' ), 0 );
|
| 29 |
add_action( 'parse_request', array( $this, 'handler' ), 0 );
|
| 30 |
-
add_filter( 'dlm_can_download', array( $this, '
|
|
|
|
| 31 |
}
|
| 32 |
|
| 33 |
-
|
| 34 |
/**
|
| 35 |
-
* Check
|
| 36 |
*
|
| 37 |
* Other plugins can use the 'dlm_can_download' filter directly to change access rights.
|
| 38 |
*
|
|
@@ -43,10 +43,10 @@ class DLM_Download_Handler {
|
|
| 43 |
*
|
| 44 |
* @return boolean
|
| 45 |
*/
|
| 46 |
-
public function
|
| 47 |
|
| 48 |
// Check if download is a 'members only' download
|
| 49 |
-
if ( $download->is_members_only() ) {
|
| 50 |
|
| 51 |
// Check if user is logged in
|
| 52 |
if ( ! is_user_logged_in() ) {
|
|
@@ -61,6 +61,99 @@ class DLM_Download_Handler {
|
|
| 61 |
return $can_download;
|
| 62 |
}
|
| 63 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 64 |
/**
|
| 65 |
* add_query_vars function.
|
| 66 |
*
|
|
@@ -170,7 +263,7 @@ class DLM_Download_Handler {
|
|
| 170 |
if ( post_password_required( $download_id ) ) {
|
| 171 |
wp_die( get_the_password_form( $download_id ), __( 'Password Required', 'download-monitor' ) );
|
| 172 |
}
|
| 173 |
-
$this->trigger( $download
|
| 174 |
} elseif ( $redirect = apply_filters( 'dlm_404_redirect', false ) ) {
|
| 175 |
wp_redirect( $redirect );
|
| 176 |
} else {
|
|
@@ -183,17 +276,34 @@ class DLM_Download_Handler {
|
|
| 183 |
|
| 184 |
/**
|
| 185 |
* Create a log if logging is enabled
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 186 |
*/
|
| 187 |
private function log( $type = '', $status = '', $message = '', $download, $version ) {
|
| 188 |
|
| 189 |
// Logging object
|
| 190 |
$logging = new DLM_Logging();
|
| 191 |
|
| 192 |
-
// Check if logging is enabled
|
| 193 |
if ( $logging->is_logging_enabled() ) {
|
| 194 |
|
| 195 |
-
//
|
| 196 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 197 |
|
| 198 |
}
|
| 199 |
|
|
@@ -241,15 +351,29 @@ class DLM_Download_Handler {
|
|
| 241 |
exit;
|
| 242 |
}
|
| 243 |
|
| 244 |
-
|
| 245 |
-
|
| 246 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 247 |
|
| 248 |
// Trigger Download Action
|
| 249 |
do_action( 'dlm_downloading', $download, $version, $file_path );
|
| 250 |
|
| 251 |
// Set cookie to prevent double logging
|
| 252 |
-
setcookie( 'wp_dlm_downloading', $download->
|
| 253 |
}
|
| 254 |
|
| 255 |
// Redirect to the file...
|
|
@@ -358,7 +482,7 @@ class DLM_Download_Handler {
|
|
| 358 |
}
|
| 359 |
|
| 360 |
// Get file name
|
| 361 |
-
$file_name = urldecode( basename( $file_path ) );
|
| 362 |
|
| 363 |
if ( strstr( $file_name, '?' ) ) {
|
| 364 |
$file_name = current( explode( '?', $file_name ) );
|
|
@@ -425,11 +549,11 @@ class DLM_Download_Handler {
|
|
| 425 |
*
|
| 426 |
* @access public
|
| 427 |
*
|
| 428 |
-
* @param string file
|
| 429 |
-
* @param boolean return bytes of file
|
| 430 |
-
* @param range if HTTP RANGE to seek
|
| 431 |
*
|
| 432 |
-
* @return
|
| 433 |
*/
|
| 434 |
public function readfile_chunked( $file, $retbytes = true, $range = false ) {
|
| 435 |
$chunksize = 1 * ( 1024 * 1024 );
|
|
@@ -462,4 +586,17 @@ class DLM_Download_Handler {
|
|
| 462 |
|
| 463 |
return $status;
|
| 464 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 465 |
}
|
| 27 |
add_filter( 'query_vars', array( $this, 'add_query_vars' ), 0 );
|
| 28 |
add_action( 'init', array( $this, 'add_endpoint' ), 0 );
|
| 29 |
add_action( 'parse_request', array( $this, 'handler' ), 0 );
|
| 30 |
+
add_filter( 'dlm_can_download', array( $this, 'check_members_only' ), 10, 2 );
|
| 31 |
+
add_filter( 'dlm_can_download', array( $this, 'check_blacklist' ), 10, 2 );
|
| 32 |
}
|
| 33 |
|
|
|
|
| 34 |
/**
|
| 35 |
+
* Check members only (hooked into dlm_can_download) checks if the download is members only and enfoces log in.
|
| 36 |
*
|
| 37 |
* Other plugins can use the 'dlm_can_download' filter directly to change access rights.
|
| 38 |
*
|
| 43 |
*
|
| 44 |
* @return boolean
|
| 45 |
*/
|
| 46 |
+
public function check_members_only( $can_download, $download ) {
|
| 47 |
|
| 48 |
// Check if download is a 'members only' download
|
| 49 |
+
if ( false !== $can_download && $download->is_members_only() ) {
|
| 50 |
|
| 51 |
// Check if user is logged in
|
| 52 |
if ( ! is_user_logged_in() ) {
|
| 61 |
return $can_download;
|
| 62 |
}
|
| 63 |
|
| 64 |
+
/**
|
| 65 |
+
* Check blacklist (hooked into dlm_can_download) checks if the download request comes from blacklisted IP address or user agent
|
| 66 |
+
*
|
| 67 |
+
* Other plugins can use the 'dlm_can_download' filter directly to change access rights.
|
| 68 |
+
*
|
| 69 |
+
* @access public
|
| 70 |
+
*
|
| 71 |
+
* @param boolean $can_download
|
| 72 |
+
* @param mixed $download
|
| 73 |
+
*
|
| 74 |
+
* @return boolean
|
| 75 |
+
*/
|
| 76 |
+
public function check_blacklist( $can_download, $download ) {
|
| 77 |
+
|
| 78 |
+
// Check if IP is blacklisted
|
| 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;
|
| 86 |
+
} elseif ( filter_var( $visitor_ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6 ) ) {
|
| 87 |
+
$ip_type = 6;
|
| 88 |
+
}
|
| 89 |
+
|
| 90 |
+
$blacklisted_ips = preg_split( "/\r?\n/", trim( get_option( 'dlm_ip_blacklist', "" ) ) );
|
| 91 |
+
|
| 92 |
+
/**
|
| 93 |
+
* Until IPs are validated at time of save, we need to ensure entries
|
| 94 |
+
* are legitimate before using them. Allow formats:
|
| 95 |
+
* IPv4, e.g. 198.51.100.1
|
| 96 |
+
* IPv4/CIDR netmask, e.g. 198.51.100.0/24
|
| 97 |
+
* IPv6, e.g. 2001:db8::1
|
| 98 |
+
* IPv6/CIDR netmask, e.g. 2001:db8::/32
|
| 99 |
+
*/
|
| 100 |
+
|
| 101 |
+
// IP/CIDR netmask regexes
|
| 102 |
+
// http://blog.markhatton.co.uk/2011/03/15/regular-expressions-for-ip-addresses-cidr-ranges-and-hostnames/
|
| 103 |
+
// http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses
|
| 104 |
+
$ip4_with_mask_pattern = '/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/([0-9]|[1-2][0-9]|3[0-2]))$/';
|
| 105 |
+
$ip6_with_mask_pattern = '/^((([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))(\/[0-9][0-9]?|1([01][0-9]|2[0-8])))$/';
|
| 106 |
+
|
| 107 |
+
if ( 4 === $ip_type ) {
|
| 108 |
+
foreach ( $blacklisted_ips as $blacklisted_ip ) {
|
| 109 |
+
|
| 110 |
+
// Detect unique IPv4 address and ranges of IPv4 addresses in IP/CIDR netmask format
|
| 111 |
+
if ( filter_var( $blacklisted_ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 ) || preg_match( $ip4_with_mask_pattern, $blacklisted_ip ) ) {
|
| 112 |
+
if ( DLM_Utils::ipv4_in_range( $visitor_ip, $blacklisted_ip ) ) {
|
| 113 |
+
$can_download = false;
|
| 114 |
+
break;
|
| 115 |
+
}
|
| 116 |
+
}
|
| 117 |
+
}
|
| 118 |
+
} elseif ( 6 === $ip_type ) {
|
| 119 |
+
foreach ( $blacklisted_ips as $blacklisted_ip ) {
|
| 120 |
+
|
| 121 |
+
// Detect unique IPv6 address and ranges of IPv6 addresses in IP/CIDR netmask format
|
| 122 |
+
if ( filter_var( $blacklisted_ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6 ) || preg_match( $ip6_with_mask_pattern, $blacklisted_ip ) ) {
|
| 123 |
+
if ( DLM_Utils::ipv6_in_range( $visitor_ip, $blacklisted_ip ) ) {
|
| 124 |
+
$can_download = false;
|
| 125 |
+
break;
|
| 126 |
+
}
|
| 127 |
+
}
|
| 128 |
+
}
|
| 129 |
+
}
|
| 130 |
+
|
| 131 |
+
}
|
| 132 |
+
|
| 133 |
+
// Check if user agent is blacklisted
|
| 134 |
+
if ( false !== $can_download ) {
|
| 135 |
+
|
| 136 |
+
// get request user agent
|
| 137 |
+
$visitor_ua = DLM_Utils::get_visitor_ua();
|
| 138 |
+
|
| 139 |
+
// get blacklisted user agents
|
| 140 |
+
$blacklisted_uas = preg_split( "/\r?\n/", trim( get_option( 'dlm_user_agent_blacklist', "" ) ) );
|
| 141 |
+
|
| 142 |
+
// loop through blacklisted user agents
|
| 143 |
+
foreach ( $blacklisted_uas as $blacklisted_ua ) {
|
| 144 |
+
|
| 145 |
+
// check if blacklisted user agent is found in request user agent
|
| 146 |
+
if ( false !== stristr( $visitor_ua, $blacklisted_ua ) ) {
|
| 147 |
+
$can_download = false;
|
| 148 |
+
break;
|
| 149 |
+
}
|
| 150 |
+
}
|
| 151 |
+
|
| 152 |
+
}
|
| 153 |
+
|
| 154 |
+
return $can_download;
|
| 155 |
+
}
|
| 156 |
+
|
| 157 |
/**
|
| 158 |
* add_query_vars function.
|
| 159 |
*
|
| 263 |
if ( post_password_required( $download_id ) ) {
|
| 264 |
wp_die( get_the_password_form( $download_id ), __( 'Password Required', 'download-monitor' ) );
|
| 265 |
}
|
| 266 |
+
$this->trigger( $download );
|
| 267 |
} elseif ( $redirect = apply_filters( 'dlm_404_redirect', false ) ) {
|
| 268 |
wp_redirect( $redirect );
|
| 269 |
} else {
|
| 276 |
|
| 277 |
/**
|
| 278 |
* Create a log if logging is enabled
|
| 279 |
+
*
|
| 280 |
+
* @param string $type
|
| 281 |
+
* @param string $status
|
| 282 |
+
* @param string $message
|
| 283 |
+
* @param DLM_Download $download
|
| 284 |
+
* @param DLM_Download_Version $version
|
| 285 |
*/
|
| 286 |
private function log( $type = '', $status = '', $message = '', $download, $version ) {
|
| 287 |
|
| 288 |
// Logging object
|
| 289 |
$logging = new DLM_Logging();
|
| 290 |
|
| 291 |
+
// Check if logging is enabled and if unique ips is enabled
|
| 292 |
if ( $logging->is_logging_enabled() ) {
|
| 293 |
|
| 294 |
+
// set create_log to true
|
| 295 |
+
$create_log = true;
|
| 296 |
+
|
| 297 |
+
// check if requester downloaded this version before
|
| 298 |
+
if ( '1' == get_option( 'dlm_count_unique_ips', '0' ) && true === $this->has_ip_downloaded_version( $version ) ) {
|
| 299 |
+
$create_log = false;
|
| 300 |
+
}
|
| 301 |
+
|
| 302 |
+
// check if we need to create the log
|
| 303 |
+
if ( $create_log ) {
|
| 304 |
+
// Create log
|
| 305 |
+
$logging->create_log( $type, $status, $message, $download, $version );
|
| 306 |
+
}
|
| 307 |
|
| 308 |
}
|
| 309 |
|
| 351 |
exit;
|
| 352 |
}
|
| 353 |
|
| 354 |
+
// check if user downloaded this version in the past minute
|
| 355 |
+
if ( empty( $_COOKIE['wp_dlm_downloading'] ) || $download->get_the_version_number() != $_COOKIE['wp_dlm_downloading'] ) {
|
| 356 |
+
|
| 357 |
+
|
| 358 |
+
// bool if we need to increment download count
|
| 359 |
+
$increment_download_count = true;
|
| 360 |
+
|
| 361 |
+
// check if unique ips option is enabled and if so, if visitor already downloaded this file version
|
| 362 |
+
if ( '1' == get_option( 'dlm_enable_logging' ) && '1' == get_option( 'dlm_count_unique_ips' ) && true === $this->has_ip_downloaded_version( $version ) ) {
|
| 363 |
+
$increment_download_count = false;
|
| 364 |
+
}
|
| 365 |
+
|
| 366 |
+
// check if we need to increment the download count
|
| 367 |
+
if ( true === $increment_download_count ) {
|
| 368 |
+
// Increase download count
|
| 369 |
+
$version->increase_download_count();
|
| 370 |
+
}
|
| 371 |
|
| 372 |
// Trigger Download Action
|
| 373 |
do_action( 'dlm_downloading', $download, $version, $file_path );
|
| 374 |
|
| 375 |
// Set cookie to prevent double logging
|
| 376 |
+
setcookie( 'wp_dlm_downloading', $download->get_the_version_number(), time() + 60, COOKIEPATH, COOKIE_DOMAIN, false, true );
|
| 377 |
}
|
| 378 |
|
| 379 |
// Redirect to the file...
|
| 482 |
}
|
| 483 |
|
| 484 |
// Get file name
|
| 485 |
+
$file_name = urldecode( DLM_Utils::basename( $file_path ) );
|
| 486 |
|
| 487 |
if ( strstr( $file_name, '?' ) ) {
|
| 488 |
$file_name = current( explode( '?', $file_name ) );
|
| 549 |
*
|
| 550 |
* @access public
|
| 551 |
*
|
| 552 |
+
* @param string $file
|
| 553 |
+
* @param boolean $retbytes return bytes of file
|
| 554 |
+
* @param boolean $range if HTTP RANGE to seek
|
| 555 |
*
|
| 556 |
+
* @return mixed
|
| 557 |
*/
|
| 558 |
public function readfile_chunked( $file, $retbytes = true, $range = false ) {
|
| 559 |
$chunksize = 1 * ( 1024 * 1024 );
|
| 586 |
|
| 587 |
return $status;
|
| 588 |
}
|
| 589 |
+
|
| 590 |
+
/**
|
| 591 |
+
* Check if visitor has downloaded version in the past 24 hours
|
| 592 |
+
*
|
| 593 |
+
* @param DLM_Download_Version $version
|
| 594 |
+
*
|
| 595 |
+
* @return bool
|
| 596 |
+
*/
|
| 597 |
+
private function has_ip_downloaded_version( $version ) {
|
| 598 |
+
global $wpdb;
|
| 599 |
+
|
| 600 |
+
return ( absint( $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(ID) FROM {$wpdb->download_log} WHERE type = 'download' AND `version_id` = %d AND `user_ip` = %s", $version->id, DLM_Utils::get_visitor_ip() ) ) ) > 0 );
|
| 601 |
+
}
|
| 602 |
}
|
includes/class-dlm-download-version.php
CHANGED
|
@@ -92,7 +92,7 @@ class DLM_Download_Version {
|
|
| 92 |
}
|
| 93 |
|
| 94 |
$this->url = current( $this->mirrors );
|
| 95 |
-
$this->filename = current( explode( '?', basename( $this->url ) ) );
|
| 96 |
$this->filetype = strtolower( substr( strrchr( $this->filename, "." ), 1 ) );
|
| 97 |
|
| 98 |
// If we don't have a filesize, lets get it now
|
| 92 |
}
|
| 93 |
|
| 94 |
$this->url = current( $this->mirrors );
|
| 95 |
+
$this->filename = current( explode( '?', DLM_Utils::basename( $this->url ) ) );
|
| 96 |
$this->filetype = strtolower( substr( strrchr( $this->filename, "." ), 1 ) );
|
| 97 |
|
| 98 |
// If we don't have a filesize, lets get it now
|
includes/class-dlm-file-manager.php
CHANGED
|
@@ -14,40 +14,27 @@ class DLM_File_Manager {
|
|
| 14 |
*
|
| 15 |
* @param string $folder (default: '')
|
| 16 |
*
|
| 17 |
-
* @return
|
| 18 |
*/
|
| 19 |
public function list_files( $folder = '' ) {
|
| 20 |
if ( empty( $folder ) ) {
|
| 21 |
return false;
|
| 22 |
}
|
| 23 |
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
if ( in_array( $file, array( '.', '..' ) ) ) {
|
| 28 |
-
continue;
|
| 29 |
-
}
|
| 30 |
-
|
| 31 |
-
if ( is_dir( $folder . '/' . $file ) ) {
|
| 32 |
|
| 33 |
-
|
| 34 |
-
'type' => 'folder',
|
| 35 |
-
'path' => $folder . '/' . $file
|
| 36 |
-
);
|
| 37 |
-
|
| 38 |
-
} else {
|
| 39 |
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
}
|
| 46 |
-
}
|
| 47 |
}
|
| 48 |
-
@closedir( $dir );
|
| 49 |
|
| 50 |
-
return $
|
| 51 |
}
|
| 52 |
|
| 53 |
/**
|
| 14 |
*
|
| 15 |
* @param string $folder (default: '')
|
| 16 |
*
|
| 17 |
+
* @return array
|
| 18 |
*/
|
| 19 |
public function list_files( $folder = '' ) {
|
| 20 |
if ( empty( $folder ) ) {
|
| 21 |
return false;
|
| 22 |
}
|
| 23 |
|
| 24 |
+
// A listing of all files and dirs in $folder, excepting . and ..
|
| 25 |
+
// By default, the sorted order is alphabetical in ascending order
|
| 26 |
+
$files = array_diff( scandir( $folder ), array( '..', '.' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 27 |
|
| 28 |
+
$dlm_files = array();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
|
| 30 |
+
foreach ( $files as $file ) {
|
| 31 |
+
$dlm_files[] = array(
|
| 32 |
+
'type' => ( is_dir( $folder . '/' . $file ) ? 'folder' : 'file' ),
|
| 33 |
+
'path' => $folder . '/' . $file
|
| 34 |
+
);
|
|
|
|
|
|
|
| 35 |
}
|
|
|
|
| 36 |
|
| 37 |
+
return $dlm_files;
|
| 38 |
}
|
| 39 |
|
| 40 |
/**
|
includes/class-dlm-logging.php
CHANGED
|
@@ -34,8 +34,8 @@ class DLM_Logging {
|
|
| 34 |
array(
|
| 35 |
'type' => $type,
|
| 36 |
'user_id' => absint( get_current_user_id() ),
|
| 37 |
-
'user_ip' =>
|
| 38 |
-
'user_agent' =>
|
| 39 |
'download_id' => absint( $download->id ),
|
| 40 |
'version_id' => absint( $version->id ),
|
| 41 |
'version' => $version->version,
|
|
@@ -59,30 +59,5 @@ class DLM_Logging {
|
|
| 59 |
return $wpdb->insert_id;
|
| 60 |
}
|
| 61 |
|
| 62 |
-
/**
|
| 63 |
-
* get_user_ip function.
|
| 64 |
-
*
|
| 65 |
-
* @access private
|
| 66 |
-
* @return void
|
| 67 |
-
*/
|
| 68 |
-
private function get_user_ip() {
|
| 69 |
-
return sanitize_text_field( ! empty( $_SERVER['HTTP_X_FORWARD_FOR'] ) ? $_SERVER['HTTP_X_FORWARD_FOR'] : $_SERVER['REMOTE_ADDR'] );
|
| 70 |
-
}
|
| 71 |
-
|
| 72 |
-
/**
|
| 73 |
-
* get_user_ua function.
|
| 74 |
-
*
|
| 75 |
-
* @access private
|
| 76 |
-
* @return void
|
| 77 |
-
*/
|
| 78 |
-
private function get_user_ua() {
|
| 79 |
-
$ua = sanitize_text_field( isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '' );
|
| 80 |
-
|
| 81 |
-
if ( strlen( $ua ) > 200 ) {
|
| 82 |
-
$ua = substr( $ua, 0, 199 );
|
| 83 |
-
}
|
| 84 |
-
|
| 85 |
-
return $ua;
|
| 86 |
-
}
|
| 87 |
}
|
| 88 |
|
| 34 |
array(
|
| 35 |
'type' => $type,
|
| 36 |
'user_id' => absint( get_current_user_id() ),
|
| 37 |
+
'user_ip' => DLM_Utils::get_visitor_ip(),
|
| 38 |
+
'user_agent' => DLM_Utils::get_visitor_ua(),
|
| 39 |
'download_id' => absint( $download->id ),
|
| 40 |
'version_id' => absint( $version->id ),
|
| 41 |
'version' => $version->version,
|
| 59 |
return $wpdb->insert_id;
|
| 60 |
}
|
| 61 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
}
|
| 63 |
|
includes/class-dlm-shortcodes.php
CHANGED
|
@@ -82,7 +82,7 @@ class DLM_Shortcodes {
|
|
| 82 |
$hijacked_content = apply_filters( 'dlm_shortcode_download_content', '', $id, $atts );
|
| 83 |
|
| 84 |
// If there's hijacked content, return it and be done with it
|
| 85 |
-
if( '' !== $hijacked_content ) {
|
| 86 |
return $hijacked_content;
|
| 87 |
}
|
| 88 |
|
|
@@ -93,7 +93,7 @@ class DLM_Shortcodes {
|
|
| 93 |
|
| 94 |
if ( $download->exists() ) {
|
| 95 |
|
| 96 |
-
if (
|
| 97 |
$version_id = $dlm_download->get_version_id( $version );
|
| 98 |
}
|
| 99 |
|
|
@@ -124,7 +124,7 @@ class DLM_Shortcodes {
|
|
| 124 |
while ( $downloads->have_posts() ) {
|
| 125 |
$downloads->the_post();
|
| 126 |
|
| 127 |
-
if (
|
| 128 |
$version_id = $dlm_download->get_version_id( $version );
|
| 129 |
}
|
| 130 |
|
|
@@ -178,7 +178,7 @@ class DLM_Shortcodes {
|
|
| 178 |
|
| 179 |
$download = new DLM_Download( $id );
|
| 180 |
|
| 181 |
-
if (
|
| 182 |
$version_id = $download->get_version_id( $version );
|
| 183 |
}
|
| 184 |
|
|
@@ -315,16 +315,55 @@ class DLM_Shortcodes {
|
|
| 315 |
if ( $category || $tag ) {
|
| 316 |
$args['tax_query'] = array( 'relation' => 'AND' );
|
| 317 |
|
| 318 |
-
$
|
| 319 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 320 |
|
| 321 |
-
if ( ! empty( $categories ) ) {
|
| 322 |
-
$args['tax_query'][] = array(
|
| 323 |
-
'taxonomy' => 'dlm_download_category',
|
| 324 |
-
'field' => 'slug',
|
| 325 |
-
'terms' => $categories,
|
| 326 |
-
'include_children' => ( $category_include_children === 'true' || $category_include_children === true )
|
| 327 |
-
);
|
| 328 |
}
|
| 329 |
|
| 330 |
if ( ! empty( $tags ) ) {
|
| 82 |
$hijacked_content = apply_filters( 'dlm_shortcode_download_content', '', $id, $atts );
|
| 83 |
|
| 84 |
// If there's hijacked content, return it and be done with it
|
| 85 |
+
if ( '' !== $hijacked_content ) {
|
| 86 |
return $hijacked_content;
|
| 87 |
}
|
| 88 |
|
| 93 |
|
| 94 |
if ( $download->exists() ) {
|
| 95 |
|
| 96 |
+
if ( ! empty( $version ) ) {
|
| 97 |
$version_id = $dlm_download->get_version_id( $version );
|
| 98 |
}
|
| 99 |
|
| 124 |
while ( $downloads->have_posts() ) {
|
| 125 |
$downloads->the_post();
|
| 126 |
|
| 127 |
+
if ( ! empty( $version ) ) {
|
| 128 |
$version_id = $dlm_download->get_version_id( $version );
|
| 129 |
}
|
| 130 |
|
| 178 |
|
| 179 |
$download = new DLM_Download( $id );
|
| 180 |
|
| 181 |
+
if ( ! empty( $version ) ) {
|
| 182 |
$version_id = $download->get_version_id( $version );
|
| 183 |
}
|
| 184 |
|
| 315 |
if ( $category || $tag ) {
|
| 316 |
$args['tax_query'] = array( 'relation' => 'AND' );
|
| 317 |
|
| 318 |
+
$tags = array_filter( explode( ',', $tag ) );
|
| 319 |
+
|
| 320 |
+
// check if we include category children
|
| 321 |
+
$include_children = ( $category_include_children === 'true' || $category_include_children === true );
|
| 322 |
+
|
| 323 |
+
if ( ! empty( $category ) ) {
|
| 324 |
+
|
| 325 |
+
if ( preg_match( '/\+/', $category ) ) {
|
| 326 |
+
|
| 327 |
+
// categories with AND
|
| 328 |
+
|
| 329 |
+
// string to array
|
| 330 |
+
$categories = array_filter( explode( '+', $category ) );
|
| 331 |
+
|
| 332 |
+
// check if explode had results
|
| 333 |
+
if ( ! empty( $categories ) ) {
|
| 334 |
+
|
| 335 |
+
foreach($categories as $category) {
|
| 336 |
+
$args['tax_query'][] = array(
|
| 337 |
+
'taxonomy' => 'dlm_download_category',
|
| 338 |
+
'field' => 'slug',
|
| 339 |
+
'terms' => $category,
|
| 340 |
+
'include_children' => $include_children
|
| 341 |
+
);
|
| 342 |
+
}
|
| 343 |
+
|
| 344 |
+
}
|
| 345 |
+
|
| 346 |
+
}else {
|
| 347 |
+
|
| 348 |
+
// categories with OR
|
| 349 |
+
|
| 350 |
+
// string to array
|
| 351 |
+
$categories = array_filter( explode( ',', $category ) );
|
| 352 |
+
|
| 353 |
+
// check if explode had results
|
| 354 |
+
if ( ! empty( $categories ) ) {
|
| 355 |
+
|
| 356 |
+
$args['tax_query'][] = array(
|
| 357 |
+
'taxonomy' => 'dlm_download_category',
|
| 358 |
+
'field' => 'slug',
|
| 359 |
+
'terms' => $categories,
|
| 360 |
+
'include_children' => $include_children
|
| 361 |
+
);
|
| 362 |
+
|
| 363 |
+
}
|
| 364 |
+
|
| 365 |
+
}
|
| 366 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 367 |
}
|
| 368 |
|
| 369 |
if ( ! empty( $tags ) ) {
|
includes/class-dlm-utils.php
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
abstract class DLM_Utils {
|
| 4 |
+
|
| 5 |
+
/**
|
| 6 |
+
* Get visitor's IP address
|
| 7 |
+
*
|
| 8 |
+
* @return string
|
| 9 |
+
*/
|
| 10 |
+
public static function get_visitor_ip() {
|
| 11 |
+
return sanitize_text_field( ! empty( $_SERVER['HTTP_X_FORWARD_FOR'] ) ? $_SERVER['HTTP_X_FORWARD_FOR'] : $_SERVER['REMOTE_ADDR'] );
|
| 12 |
+
}
|
| 13 |
+
|
| 14 |
+
/**
|
| 15 |
+
* Get visitor's user agent
|
| 16 |
+
*
|
| 17 |
+
* @return string
|
| 18 |
+
*/
|
| 19 |
+
public static function get_visitor_ua() {
|
| 20 |
+
$ua = sanitize_text_field( isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '' );
|
| 21 |
+
|
| 22 |
+
if ( strlen( $ua ) > 200 ) {
|
| 23 |
+
$ua = substr( $ua, 0, 199 );
|
| 24 |
+
}
|
| 25 |
+
|
| 26 |
+
return $ua;
|
| 27 |
+
}
|
| 28 |
+
|
| 29 |
+
/**
|
| 30 |
+
* Check if a given ip is in a network (IPv4)
|
| 31 |
+
* https://gist.github.com/tott/7684443
|
| 32 |
+
*
|
| 33 |
+
* @param string $ip IP to check in IPv4 format eg. 127.0.0.1
|
| 34 |
+
* @param string $range IP/CIDR netmask eg. 127.0.0.0/24, also 127.0.0.1 is accepted and /32 assumed
|
| 35 |
+
* @return boolean true if the ip is in this range / false if not.
|
| 36 |
+
*/
|
| 37 |
+
public static function ipv4_in_range( $ip, $range ) {
|
| 38 |
+
if ( strpos( $range, '/' ) == false ) {
|
| 39 |
+
$range .= '/32';
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
list( $range, $netmask ) = explode( '/', $range, 2 );
|
| 43 |
+
$range_decimal = ip2long( $range );
|
| 44 |
+
$ip_decimal = ip2long( $ip );
|
| 45 |
+
$wildcard_decimal = pow( 2, ( 32 - $netmask ) ) - 1;
|
| 46 |
+
$netmask_decimal = ~ $wildcard_decimal;
|
| 47 |
+
return ( ( $ip_decimal & $netmask_decimal ) == ( $range_decimal & $netmask_decimal ) );
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
/**
|
| 51 |
+
* Helper function for ipv6_in_range()
|
| 52 |
+
* Converts inet_pton output to string with bits
|
| 53 |
+
*/
|
| 54 |
+
private static function inet_to_bits( $inet ) {
|
| 55 |
+
$unpacked = unpack( 'A16', $inet );
|
| 56 |
+
$unpacked = str_split( $unpacked[1] );
|
| 57 |
+
$binaryip = '';
|
| 58 |
+
|
| 59 |
+
foreach ( $unpacked as $char ) {
|
| 60 |
+
$binaryip .= str_pad( decbin( ord( $char ) ), 8, '0', STR_PAD_LEFT );
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
return $binaryip;
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
/**
|
| 67 |
+
* Check if a given ip is in a network (IPv6)
|
| 68 |
+
* http://stackoverflow.com/questions/7951061/matching-ipv6-address-to-a-cidr-subnet
|
| 69 |
+
*
|
| 70 |
+
* @param string $ip IP to check in IPv6 format eg. 2001:db8::1
|
| 71 |
+
* @param string $range IP/CIDR netmask eg. 2001:db8::/32, also 2001:db8::1 is accepted and /128 assumed
|
| 72 |
+
* @return boolean true if the ip is in this range / false if not.
|
| 73 |
+
*/
|
| 74 |
+
public static function ipv6_in_range( $ip, $range ) {
|
| 75 |
+
// Windows didn't get inet_pton until PHP 5.3.0
|
| 76 |
+
if ( ! function_exists( 'inet_pton' ) ) {
|
| 77 |
+
return false;
|
| 78 |
+
}
|
| 79 |
+
|
| 80 |
+
if ( strpos( $range, '/' ) == false ) {
|
| 81 |
+
$range .= '/128';
|
| 82 |
+
}
|
| 83 |
+
|
| 84 |
+
$ip = inet_pton( $ip );
|
| 85 |
+
$binaryip = self::inet_to_bits( $ip );
|
| 86 |
+
|
| 87 |
+
list( $net, $maskbits ) = explode( '/', $range, 3 );
|
| 88 |
+
$net = inet_pton( $net );
|
| 89 |
+
$binarynet = self::inet_to_bits( $net );
|
| 90 |
+
|
| 91 |
+
$ip_net_bits = substr( $binaryip, 0, $maskbits );
|
| 92 |
+
$net_bits = substr( $binarynet, 0, $maskbits );
|
| 93 |
+
|
| 94 |
+
return ( $ip_net_bits === $net_bits );
|
| 95 |
+
}
|
| 96 |
+
|
| 97 |
+
/**
|
| 98 |
+
* Local independent basename
|
| 99 |
+
*
|
| 100 |
+
* @param string $filepath
|
| 101 |
+
*
|
| 102 |
+
* @return string
|
| 103 |
+
*/
|
| 104 |
+
public static function basename( $filepath ) {
|
| 105 |
+
return preg_replace('/^.+[\\\\\\/]/', '', $filepath);
|
| 106 |
+
}
|
| 107 |
+
|
| 108 |
+
}
|
includes/class-wp-dlm.php
CHANGED
|
@@ -74,6 +74,8 @@ class WP_DLM {
|
|
| 74 |
// Setup admin classes
|
| 75 |
if ( is_admin() ) {
|
| 76 |
|
|
|
|
|
|
|
| 77 |
// Setup admin scripts
|
| 78 |
$admin_scripts = new DLM_Admin_Scripts();
|
| 79 |
$admin_scripts->setup();
|
|
@@ -140,7 +142,7 @@ class WP_DLM {
|
|
| 140 |
private function setup_actions() {
|
| 141 |
add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), array( $this, 'plugin_links' ) );
|
| 142 |
add_action( 'init', array( $this, 'register_globals' ) );
|
| 143 |
-
add_action( 'after_setup_theme', array( $this, 'compatibility' ) );
|
| 144 |
add_action( 'the_post', array( $this, 'setup_download_data' ) );
|
| 145 |
add_action( 'wp_enqueue_scripts', array( $this, 'frontend_scripts' ) );
|
| 146 |
add_action( 'admin_init', array( $this, 'load_extensions' ) );
|
|
@@ -171,6 +173,7 @@ class WP_DLM {
|
|
| 171 |
* @return void
|
| 172 |
*/
|
| 173 |
public function compatibility() {
|
|
|
|
| 174 |
// Post thumbnail support
|
| 175 |
if ( ! current_theme_supports( 'post-thumbnails' ) ) {
|
| 176 |
add_theme_support( 'post-thumbnails' );
|
| 74 |
// Setup admin classes
|
| 75 |
if ( is_admin() ) {
|
| 76 |
|
| 77 |
+
// check if multisite and needs to create DB table
|
| 78 |
+
|
| 79 |
// Setup admin scripts
|
| 80 |
$admin_scripts = new DLM_Admin_Scripts();
|
| 81 |
$admin_scripts->setup();
|
| 142 |
private function setup_actions() {
|
| 143 |
add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), array( $this, 'plugin_links' ) );
|
| 144 |
add_action( 'init', array( $this, 'register_globals' ) );
|
| 145 |
+
add_action( 'after_setup_theme', array( $this, 'compatibility' ), 20 );
|
| 146 |
add_action( 'the_post', array( $this, 'setup_download_data' ) );
|
| 147 |
add_action( 'wp_enqueue_scripts', array( $this, 'frontend_scripts' ) );
|
| 148 |
add_action( 'admin_init', array( $this, 'load_extensions' ) );
|
| 173 |
* @return void
|
| 174 |
*/
|
| 175 |
public function compatibility() {
|
| 176 |
+
|
| 177 |
// Post thumbnail support
|
| 178 |
if ( ! current_theme_supports( 'post-thumbnails' ) ) {
|
| 179 |
add_theme_support( 'post-thumbnails' );
|
includes/widgets/class-dlm-widget-downloads.php
CHANGED
|
@@ -20,9 +20,8 @@ class DLM_Widget_Downloads extends WP_Widget {
|
|
| 20 |
* constructor
|
| 21 |
*
|
| 22 |
* @access public
|
| 23 |
-
* @return void
|
| 24 |
*/
|
| 25 |
-
function
|
| 26 |
|
| 27 |
/* Widget variable settings. */
|
| 28 |
$this->widget_cssclass = 'dlm_widget_downloads';
|
|
@@ -34,7 +33,7 @@ class DLM_Widget_Downloads extends WP_Widget {
|
|
| 34 |
$widget_ops = array( 'classname' => $this->widget_cssclass, 'description' => $this->widget_description );
|
| 35 |
|
| 36 |
/* Create the widget. */
|
| 37 |
-
|
| 38 |
}
|
| 39 |
|
| 40 |
/**
|
|
@@ -48,7 +47,7 @@ class DLM_Widget_Downloads extends WP_Widget {
|
|
| 48 |
*
|
| 49 |
* @return void
|
| 50 |
*/
|
| 51 |
-
function widget( $args, $instance ) {
|
| 52 |
|
| 53 |
// Extract the arguments
|
| 54 |
extract( $args );
|
|
@@ -133,7 +132,7 @@ class DLM_Widget_Downloads extends WP_Widget {
|
|
| 133 |
*
|
| 134 |
* @return array
|
| 135 |
*/
|
| 136 |
-
function update( $new_instance, $old_instance ) {
|
| 137 |
$instance = $old_instance;
|
| 138 |
$instance['title'] = strip_tags( $new_instance['title'] );
|
| 139 |
$instance['posts_per_page'] = absint( $new_instance['posts_per_page'] );
|
|
@@ -156,7 +155,7 @@ class DLM_Widget_Downloads extends WP_Widget {
|
|
| 156 |
*
|
| 157 |
* @return void
|
| 158 |
*/
|
| 159 |
-
function form( $instance ) {
|
| 160 |
$title = isset( $instance['title'] ) ? $instance['title'] : __( 'Featured Downloads', 'download-monitor' );
|
| 161 |
$posts_per_page = isset( $instance['posts_per_page'] ) ? absint( $instance['posts_per_page'] ) : 10;
|
| 162 |
$format = isset( $instance['format'] ) ? sanitize_title( $instance['format'] ) : '';
|
| 20 |
* constructor
|
| 21 |
*
|
| 22 |
* @access public
|
|
|
|
| 23 |
*/
|
| 24 |
+
public function __construct() {
|
| 25 |
|
| 26 |
/* Widget variable settings. */
|
| 27 |
$this->widget_cssclass = 'dlm_widget_downloads';
|
| 33 |
$widget_ops = array( 'classname' => $this->widget_cssclass, 'description' => $this->widget_description );
|
| 34 |
|
| 35 |
/* Create the widget. */
|
| 36 |
+
parent::__construct('dlm_widget_downloads', $this->widget_name, $widget_ops );
|
| 37 |
}
|
| 38 |
|
| 39 |
/**
|
| 47 |
*
|
| 48 |
* @return void
|
| 49 |
*/
|
| 50 |
+
public function widget( $args, $instance ) {
|
| 51 |
|
| 52 |
// Extract the arguments
|
| 53 |
extract( $args );
|
| 132 |
*
|
| 133 |
* @return array
|
| 134 |
*/
|
| 135 |
+
public function update( $new_instance, $old_instance ) {
|
| 136 |
$instance = $old_instance;
|
| 137 |
$instance['title'] = strip_tags( $new_instance['title'] );
|
| 138 |
$instance['posts_per_page'] = absint( $new_instance['posts_per_page'] );
|
| 155 |
*
|
| 156 |
* @return void
|
| 157 |
*/
|
| 158 |
+
public function form( $instance ) {
|
| 159 |
$title = isset( $instance['title'] ) ? $instance['title'] : __( 'Featured Downloads', 'download-monitor' );
|
| 160 |
$posts_per_page = isset( $instance['posts_per_page'] ) ? absint( $instance['posts_per_page'] ) : 10;
|
| 161 |
$format = isset( $instance['format'] ) ? sanitize_title( $instance['format'] ) : '';
|
installer-functions.php
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
| 4 |
+
exit;
|
| 5 |
+
} // Exit if accessed directly
|
| 6 |
+
|
| 7 |
+
/**
|
| 8 |
+
* Plugin activation hook.
|
| 9 |
+
* When site is multisite and plugin is network activated, installer will run for each blog
|
| 10 |
+
*
|
| 11 |
+
* @param bool $network_wide
|
| 12 |
+
*/
|
| 13 |
+
function __download_monitor_install( $network_wide = false ) {
|
| 14 |
+
|
| 15 |
+
// Load installer functions
|
| 16 |
+
require_once plugin_dir_path( DLM_PLUGIN_FILE_INSTALLER ) . 'includes/class-dlm-installer.php';
|
| 17 |
+
|
| 18 |
+
// DLM Installer
|
| 19 |
+
$installer = new DLM_Installer();
|
| 20 |
+
|
| 21 |
+
// check if
|
| 22 |
+
if ( ! function_exists( 'is_plugin_active_for_network' ) ) {
|
| 23 |
+
require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
|
| 24 |
+
}
|
| 25 |
+
|
| 26 |
+
// check if it's multisite
|
| 27 |
+
if ( is_multisite() && true == $network_wide ) {
|
| 28 |
+
|
| 29 |
+
// get websites
|
| 30 |
+
$sites = wp_get_sites();
|
| 31 |
+
|
| 32 |
+
// loop
|
| 33 |
+
if ( count( $sites ) > 0 ) {
|
| 34 |
+
foreach ( $sites as $site ) {
|
| 35 |
+
|
| 36 |
+
// switch to blog
|
| 37 |
+
switch_to_blog( $site['blog_id'] );
|
| 38 |
+
|
| 39 |
+
// run installer on blog
|
| 40 |
+
$installer->install();
|
| 41 |
+
|
| 42 |
+
// restore current blog
|
| 43 |
+
restore_current_blog();
|
| 44 |
+
}
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
} else {
|
| 48 |
+
// no multisite so do normal install
|
| 49 |
+
$installer->install();
|
| 50 |
+
}
|
| 51 |
+
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
/**
|
| 56 |
+
* Run installer for new blogs on multisite when plugin is network activated
|
| 57 |
+
*
|
| 58 |
+
* @param $blog_id
|
| 59 |
+
* @param $user_id
|
| 60 |
+
* @param $domain
|
| 61 |
+
* @param $path
|
| 62 |
+
* @param $site_id
|
| 63 |
+
* @param $meta
|
| 64 |
+
*/
|
| 65 |
+
function __download_monitor_mu_new_blog( $blog_id, $user_id, $domain, $path, $site_id, $meta ) {
|
| 66 |
+
|
| 67 |
+
// check if plugin is network activated
|
| 68 |
+
if ( is_plugin_active_for_network( 'download-monitor/download-monitor.php' ) ) {
|
| 69 |
+
|
| 70 |
+
// DLM Installer
|
| 71 |
+
$installer = new DLM_Installer();
|
| 72 |
+
|
| 73 |
+
// switch to new blog
|
| 74 |
+
switch_to_blog( $blog_id );
|
| 75 |
+
|
| 76 |
+
// run installer on blog
|
| 77 |
+
$installer->install();
|
| 78 |
+
|
| 79 |
+
|
| 80 |
+
// restore current bloh
|
| 81 |
+
restore_current_blog();
|
| 82 |
+
}
|
| 83 |
+
}
|
| 84 |
+
/**
|
| 85 |
+
* Delete DLM log table on multisite when blog is deleted
|
| 86 |
+
*
|
| 87 |
+
* @param $tables
|
| 88 |
+
*
|
| 89 |
+
* @return array
|
| 90 |
+
*/
|
| 91 |
+
function __download_monitor_mu_delete_blog( $tables ) {
|
| 92 |
+
global $wpdb;
|
| 93 |
+
$tables[] = $wpdb->prefix . 'download_log';
|
| 94 |
+
|
| 95 |
+
return $tables;
|
| 96 |
+
}
|
languages/download-monitor-da_DK.mo
ADDED
|
Binary file
|
languages/download-monitor-da_DK.po
ADDED
|
@@ -0,0 +1,1023 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (C) 2015 Barry Kooij & Mike Jolley
|
| 2 |
+
# This file is distributed under the GPL v3.
|
| 3 |
+
# Translators:
|
| 4 |
+
msgid ""
|
| 5 |
+
msgstr ""
|
| 6 |
+
"Project-Id-Version: Download Monitor\n"
|
| 7 |
+
"Report-Msgid-Bugs-To: https://github.com/download-monitor/download-monitor/issues\n"
|
| 8 |
+
"POT-Creation-Date: 2015-03-22 12:53:18+00:00\n"
|
| 9 |
+
"PO-Revision-Date: 2015-05-06 18:23+0000\n"
|
| 10 |
+
"Last-Translator: Barry Kooij <mail@barrykooij.nl>\n"
|
| 11 |
+
"Language-Team: Danish (Denmark) (http://www.transifex.com/p/download-monitor/language/da_DK/)\n"
|
| 12 |
+
"MIME-Version: 1.0\n"
|
| 13 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
| 14 |
+
"Content-Transfer-Encoding: 8bit\n"
|
| 15 |
+
"Language: da_DK\n"
|
| 16 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
| 17 |
+
"X-Generator: grunt-wp-i18n 0.4.9\n"
|
| 18 |
+
|
| 19 |
+
#: includes/admin/class-dlm-admin-cpt.php:74
|
| 20 |
+
msgid "Select a category"
|
| 21 |
+
msgstr "Vælg en kategori"
|
| 22 |
+
|
| 23 |
+
#: includes/admin/class-dlm-admin-cpt.php:141
|
| 24 |
+
msgid "Download title"
|
| 25 |
+
msgstr "Downloadtitel"
|
| 26 |
+
|
| 27 |
+
#: includes/admin/class-dlm-admin-cpt.php:161
|
| 28 |
+
#: includes/admin/class-dlm-admin-cpt.php:164
|
| 29 |
+
msgid "Download updated."
|
| 30 |
+
msgstr "Download opdateret."
|
| 31 |
+
|
| 32 |
+
#: includes/admin/class-dlm-admin-cpt.php:162
|
| 33 |
+
msgid "Custom field updated."
|
| 34 |
+
msgstr "Brugerdefineret felt opdateret."
|
| 35 |
+
|
| 36 |
+
#: includes/admin/class-dlm-admin-cpt.php:163
|
| 37 |
+
msgid "Custom field deleted."
|
| 38 |
+
msgstr "Brugerdefineret felt slettet."
|
| 39 |
+
|
| 40 |
+
#: includes/admin/class-dlm-admin-cpt.php:165
|
| 41 |
+
msgid "Download restored to revision from %s"
|
| 42 |
+
msgstr "Download gendannet til revision fra %s"
|
| 43 |
+
|
| 44 |
+
#: includes/admin/class-dlm-admin-cpt.php:166
|
| 45 |
+
msgid "Download published."
|
| 46 |
+
msgstr "Download udgivet."
|
| 47 |
+
|
| 48 |
+
#: includes/admin/class-dlm-admin-cpt.php:167
|
| 49 |
+
msgid "Download saved."
|
| 50 |
+
msgstr "Download gemt."
|
| 51 |
+
|
| 52 |
+
#: includes/admin/class-dlm-admin-cpt.php:168
|
| 53 |
+
msgid "Download submitted."
|
| 54 |
+
msgstr "Download indsendt."
|
| 55 |
+
|
| 56 |
+
#: includes/admin/class-dlm-admin-cpt.php:169
|
| 57 |
+
msgid "Download scheduled for: <strong>%1$s</strong>."
|
| 58 |
+
msgstr "Download planlagt til <strong>%1$s</strong>."
|
| 59 |
+
|
| 60 |
+
#: includes/admin/class-dlm-admin-cpt.php:170
|
| 61 |
+
msgid "M j, Y @ G:i"
|
| 62 |
+
msgstr "j. F Y H.i"
|
| 63 |
+
|
| 64 |
+
#: includes/admin/class-dlm-admin-cpt.php:171
|
| 65 |
+
msgid "Download draft updated."
|
| 66 |
+
msgstr "Downloadkladde opdateret."
|
| 67 |
+
|
| 68 |
+
#: includes/admin/class-dlm-admin-cpt.php:190
|
| 69 |
+
msgid "Image"
|
| 70 |
+
msgstr "Billede"
|
| 71 |
+
|
| 72 |
+
#: includes/admin/class-dlm-admin-cpt.php:191
|
| 73 |
+
#: includes/widgets/class-dlm-widget-downloads.php:170
|
| 74 |
+
#: includes/widgets/class-dlm-widget-downloads.php:196
|
| 75 |
+
msgid "Title"
|
| 76 |
+
msgstr "Titel"
|
| 77 |
+
|
| 78 |
+
#: includes/admin/class-dlm-admin-cpt.php:192
|
| 79 |
+
#: includes/admin/class-dlm-admin-writepanels.php:78
|
| 80 |
+
#: includes/widgets/class-dlm-widget-downloads.php:200
|
| 81 |
+
msgid "ID"
|
| 82 |
+
msgstr "ID"
|
| 83 |
+
|
| 84 |
+
#: includes/admin/class-dlm-admin-cpt.php:193
|
| 85 |
+
#: includes/admin/class-dlm-logging-list-table.php:131
|
| 86 |
+
msgid "File"
|
| 87 |
+
msgstr "Fil"
|
| 88 |
+
|
| 89 |
+
#: includes/admin/class-dlm-admin-cpt.php:194
|
| 90 |
+
#: includes/admin/class-dlm-admin-media-insert.php:237
|
| 91 |
+
#: includes/admin/html-downloadable-file-version.php:17
|
| 92 |
+
msgid "Version"
|
| 93 |
+
msgstr "Version"
|
| 94 |
+
|
| 95 |
+
#: includes/admin/class-dlm-admin-cpt.php:195
|
| 96 |
+
#: includes/class-dlm-taxonomy-manager.php:27
|
| 97 |
+
#: includes/class-dlm-taxonomy-manager.php:29
|
| 98 |
+
msgid "Categories"
|
| 99 |
+
msgstr "Kategorier"
|
| 100 |
+
|
| 101 |
+
#: includes/admin/class-dlm-admin-cpt.php:196
|
| 102 |
+
#: includes/class-dlm-taxonomy-manager.php:58
|
| 103 |
+
#: includes/class-dlm-taxonomy-manager.php:60
|
| 104 |
+
msgid "Tags"
|
| 105 |
+
msgstr "Tags"
|
| 106 |
+
|
| 107 |
+
#: includes/admin/class-dlm-admin-cpt.php:197
|
| 108 |
+
#: includes/admin/class-dlm-admin-dashboard.php:77
|
| 109 |
+
#: includes/admin/html-downloadable-file-version.php:59
|
| 110 |
+
#: includes/widgets/class-dlm-widget-downloads.php:206
|
| 111 |
+
msgid "Download count"
|
| 112 |
+
msgstr "Downloadantal"
|
| 113 |
+
|
| 114 |
+
#: includes/admin/class-dlm-admin-cpt.php:198
|
| 115 |
+
msgid "Featured"
|
| 116 |
+
msgstr "Fremhævet"
|
| 117 |
+
|
| 118 |
+
#: includes/admin/class-dlm-admin-cpt.php:199
|
| 119 |
+
#: includes/admin/class-dlm-admin-writepanels.php:124
|
| 120 |
+
msgid "Members only"
|
| 121 |
+
msgstr "Kun medlemmer"
|
| 122 |
+
|
| 123 |
+
#: includes/admin/class-dlm-admin-cpt.php:200
|
| 124 |
+
msgid "Redirect only"
|
| 125 |
+
msgstr "Kun redirect"
|
| 126 |
+
|
| 127 |
+
#: includes/admin/class-dlm-admin-cpt.php:201
|
| 128 |
+
msgid "Date posted"
|
| 129 |
+
msgstr "Udgivelsesdato"
|
| 130 |
+
|
| 131 |
+
#: includes/admin/class-dlm-admin-cpt.php:244
|
| 132 |
+
#: includes/admin/class-dlm-admin-cpt.php:251
|
| 133 |
+
#: includes/admin/class-dlm-admin-cpt.php:258
|
| 134 |
+
msgid "Yes"
|
| 135 |
+
msgstr "Ja"
|
| 136 |
+
|
| 137 |
+
#: includes/admin/class-dlm-admin-dashboard.php:23
|
| 138 |
+
msgid "Popular Downloads"
|
| 139 |
+
msgstr "Populære downloads"
|
| 140 |
+
|
| 141 |
+
#: includes/admin/class-dlm-admin-dashboard.php:58
|
| 142 |
+
msgid "There are no stats available yet!"
|
| 143 |
+
msgstr "Der er endnu ikke nogen statistik!"
|
| 144 |
+
|
| 145 |
+
#: includes/admin/class-dlm-admin-dashboard.php:76
|
| 146 |
+
#: includes/admin/class-dlm-logging-list-table.php:130
|
| 147 |
+
#: includes/class-dlm-post-type-manager.php:23
|
| 148 |
+
msgid "Download"
|
| 149 |
+
msgstr "Download"
|
| 150 |
+
|
| 151 |
+
#: includes/admin/class-dlm-admin-extensions.php:45
|
| 152 |
+
#: includes/admin/class-dlm-admin.php:335
|
| 153 |
+
msgid "Download Monitor Extensions"
|
| 154 |
+
msgstr "Download Monitor-udvidelser"
|
| 155 |
+
|
| 156 |
+
#: includes/admin/class-dlm-admin-extensions.php:76
|
| 157 |
+
msgid ""
|
| 158 |
+
"Extend Download Monitor with its powerful free and paid extensions. %sClick "
|
| 159 |
+
"here to browse all extensions%s"
|
| 160 |
+
msgstr "Udvid Download Monitor ‒ gratis eller mod betaling. %sKlik for at gennemse alle udvidelserne%s"
|
| 161 |
+
|
| 162 |
+
#: includes/admin/class-dlm-admin-media-browser.php:34
|
| 163 |
+
#: includes/admin/class-dlm-admin-scripts.php:96
|
| 164 |
+
msgid "Browse for a file"
|
| 165 |
+
msgstr "Gennemse for fil"
|
| 166 |
+
|
| 167 |
+
#: includes/admin/class-dlm-admin-media-browser.php:108
|
| 168 |
+
msgid "No files found"
|
| 169 |
+
msgstr "Ingen filer fundet"
|
| 170 |
+
|
| 171 |
+
#: includes/admin/class-dlm-admin-media-insert.php:36
|
| 172 |
+
#: includes/admin/class-dlm-admin-media-insert.php:55
|
| 173 |
+
#: includes/admin/class-dlm-admin-scripts.php:90
|
| 174 |
+
msgid "Insert Download"
|
| 175 |
+
msgstr "Indsæt download"
|
| 176 |
+
|
| 177 |
+
#: includes/admin/class-dlm-admin-media-insert.php:66
|
| 178 |
+
#: includes/admin/class-dlm-admin-media-insert.php:200
|
| 179 |
+
msgid "Insert Shortcode"
|
| 180 |
+
msgstr "Indsæt shortcode"
|
| 181 |
+
|
| 182 |
+
#: includes/admin/class-dlm-admin-media-insert.php:67
|
| 183 |
+
msgid "Quick-add download"
|
| 184 |
+
msgstr "Lyntilføj download"
|
| 185 |
+
|
| 186 |
+
#: includes/admin/class-dlm-admin-media-insert.php:111
|
| 187 |
+
msgid "Error: File was not created."
|
| 188 |
+
msgstr "Fejl: Fil blev ikke oprettet."
|
| 189 |
+
|
| 190 |
+
#: includes/admin/class-dlm-admin-media-insert.php:131
|
| 191 |
+
msgid "Download successfully created."
|
| 192 |
+
msgstr "Download oprettet uden problemer."
|
| 193 |
+
|
| 194 |
+
#: includes/admin/class-dlm-admin-media-insert.php:134
|
| 195 |
+
msgid "Error: Download was not created."
|
| 196 |
+
msgstr "Fejl: Download blev ikke oprettet."
|
| 197 |
+
|
| 198 |
+
#: includes/admin/class-dlm-admin-media-insert.php:154
|
| 199 |
+
msgid "Choose a download"
|
| 200 |
+
msgstr "Vælg en download"
|
| 201 |
+
|
| 202 |
+
#: includes/admin/class-dlm-admin-media-insert.php:190
|
| 203 |
+
msgid "Template"
|
| 204 |
+
msgstr "Skabelon"
|
| 205 |
+
|
| 206 |
+
#: includes/admin/class-dlm-admin-media-insert.php:192
|
| 207 |
+
msgid "Template Name"
|
| 208 |
+
msgstr "Skabelonnavn"
|
| 209 |
+
|
| 210 |
+
#: includes/admin/class-dlm-admin-media-insert.php:194
|
| 211 |
+
msgid ""
|
| 212 |
+
"Leaving this blank will use the default <code>content-download.php</code> "
|
| 213 |
+
"template file. If you enter, for example, <code>image</code>, the <code"
|
| 214 |
+
">content-download-image.php</code> template will be used instead."
|
| 215 |
+
msgstr "Hvis uudfyldt bruges standardskabelonfilen <code>content-download.php</code>. Hvis du f.eks. indtaster <code>image</code>, bruges skabelonen <code>content-download-image.php</code> i stedet for."
|
| 216 |
+
|
| 217 |
+
#: includes/admin/class-dlm-admin-media-insert.php:211
|
| 218 |
+
msgid "Drop file here"
|
| 219 |
+
msgstr "Slip fil her"
|
| 220 |
+
|
| 221 |
+
#: includes/admin/class-dlm-admin-media-insert.php:216
|
| 222 |
+
msgid "Select File"
|
| 223 |
+
msgstr "Vælg fil"
|
| 224 |
+
|
| 225 |
+
#: includes/admin/class-dlm-admin-media-insert.php:220
|
| 226 |
+
msgid "Enter URL manually"
|
| 227 |
+
msgstr "Indtast URL manuelt"
|
| 228 |
+
|
| 229 |
+
#: includes/admin/class-dlm-admin-media-insert.php:225
|
| 230 |
+
msgid "Download URL"
|
| 231 |
+
msgstr "Download-URL"
|
| 232 |
+
|
| 233 |
+
#: includes/admin/class-dlm-admin-media-insert.php:227
|
| 234 |
+
msgid "Required URL"
|
| 235 |
+
msgstr "Påkrævet URL"
|
| 236 |
+
|
| 237 |
+
#: includes/admin/class-dlm-admin-media-insert.php:231
|
| 238 |
+
msgid "Download Title"
|
| 239 |
+
msgstr "Downloadtitel"
|
| 240 |
+
|
| 241 |
+
#: includes/admin/class-dlm-admin-media-insert.php:233
|
| 242 |
+
msgid "Required title"
|
| 243 |
+
msgstr "Påkrævet titel"
|
| 244 |
+
|
| 245 |
+
#: includes/admin/class-dlm-admin-media-insert.php:239
|
| 246 |
+
msgid "Optional version number"
|
| 247 |
+
msgstr "Valgfri versionsnummer"
|
| 248 |
+
|
| 249 |
+
#: includes/admin/class-dlm-admin-media-insert.php:244
|
| 250 |
+
msgid "Save Download"
|
| 251 |
+
msgstr "Gem download"
|
| 252 |
+
|
| 253 |
+
#: includes/admin/class-dlm-admin-media-insert.php:300
|
| 254 |
+
msgid "Allowed Files"
|
| 255 |
+
msgstr "Tilladte filer"
|
| 256 |
+
|
| 257 |
+
#: includes/admin/class-dlm-admin-media-insert.php:350
|
| 258 |
+
msgid "Please wait..."
|
| 259 |
+
msgstr "Vent venligst …"
|
| 260 |
+
|
| 261 |
+
#: includes/admin/class-dlm-admin-scripts.php:95
|
| 262 |
+
msgid "Are you sure you want to delete this file ? "
|
| 263 |
+
msgstr "Er du sikker på, du vil slette denne fil? "
|
| 264 |
+
|
| 265 |
+
#: includes/admin/class-dlm-admin-writepanels.php:32
|
| 266 |
+
msgid "Download Information"
|
| 267 |
+
msgstr "Downloadinformation"
|
| 268 |
+
|
| 269 |
+
#: includes/admin/class-dlm-admin-writepanels.php:38
|
| 270 |
+
msgid "Download Options"
|
| 271 |
+
msgstr "Downloadindstillinger"
|
| 272 |
+
|
| 273 |
+
#: includes/admin/class-dlm-admin-writepanels.php:44
|
| 274 |
+
msgid "Downloadable Files/Versions"
|
| 275 |
+
msgstr "Filer/Versioner, der kan downloades"
|
| 276 |
+
|
| 277 |
+
#: includes/admin/class-dlm-admin-writepanels.php:52
|
| 278 |
+
msgid "Short Description"
|
| 279 |
+
msgstr "Kort beskrivelse"
|
| 280 |
+
|
| 281 |
+
#: includes/admin/class-dlm-admin-writepanels.php:83
|
| 282 |
+
msgid "URL"
|
| 283 |
+
msgstr "URL"
|
| 284 |
+
|
| 285 |
+
#: includes/admin/class-dlm-admin-writepanels.php:88
|
| 286 |
+
msgid "Shortcode"
|
| 287 |
+
msgstr "Kortkode"
|
| 288 |
+
|
| 289 |
+
#: includes/admin/class-dlm-admin-writepanels.php:118
|
| 290 |
+
msgid "Featured download"
|
| 291 |
+
msgstr "Fremhævet download"
|
| 292 |
+
|
| 293 |
+
#: includes/admin/class-dlm-admin-writepanels.php:119
|
| 294 |
+
msgid "Mark this download as featured. Used by shortcodes and widgets."
|
| 295 |
+
msgstr "Markér denne download som fremhævet. Bruges af shortcodes og widgets."
|
| 296 |
+
|
| 297 |
+
#: includes/admin/class-dlm-admin-writepanels.php:125
|
| 298 |
+
msgid ""
|
| 299 |
+
"Only logged in users will be able to access the file via a download link if "
|
| 300 |
+
"this is enabled."
|
| 301 |
+
msgstr "Kun brugere, der er logget ind, vil få adgang til filen via et downloadlink, hvis dette aktiveres."
|
| 302 |
+
|
| 303 |
+
#: includes/admin/class-dlm-admin-writepanels.php:130
|
| 304 |
+
msgid "Redirect to file"
|
| 305 |
+
msgstr "Redirigér til fil"
|
| 306 |
+
|
| 307 |
+
#: includes/admin/class-dlm-admin-writepanels.php:131
|
| 308 |
+
msgid ""
|
| 309 |
+
"Don't force download. If the <code>dlm_upload</code> folder is protected you"
|
| 310 |
+
" may need to move your file."
|
| 311 |
+
msgstr "Gennemtving ikke download. Hvis mappen <code>dlm_upload</code> er beskyttet, kan du blive nødt til at flytte din fil."
|
| 312 |
+
|
| 313 |
+
#: includes/admin/class-dlm-admin-writepanels.php:160
|
| 314 |
+
msgid "Add file"
|
| 315 |
+
msgstr "Tilføj fil"
|
| 316 |
+
|
| 317 |
+
#: includes/admin/class-dlm-admin-writepanels.php:161
|
| 318 |
+
msgid "Close all"
|
| 319 |
+
msgstr "Luk alle"
|
| 320 |
+
|
| 321 |
+
#: includes/admin/class-dlm-admin-writepanels.php:162
|
| 322 |
+
msgid "Expand all"
|
| 323 |
+
msgstr "Udvid alle"
|
| 324 |
+
|
| 325 |
+
#: includes/admin/class-dlm-admin.php:107
|
| 326 |
+
msgid "General"
|
| 327 |
+
msgstr "Generelt"
|
| 328 |
+
|
| 329 |
+
#: includes/admin/class-dlm-admin.php:112
|
| 330 |
+
msgid "Default Template"
|
| 331 |
+
msgstr "Standardskabelon"
|
| 332 |
+
|
| 333 |
+
#: includes/admin/class-dlm-admin.php:113
|
| 334 |
+
msgid ""
|
| 335 |
+
"Choose which template is used for <code>[download]</code> shortcodes by "
|
| 336 |
+
"default (this can be overridden by the <code>format</code> argument)."
|
| 337 |
+
msgstr "Vælg hvilken skabelon der bruges for <code>[download]</code>-shortcodes som standard (dette kan tilsidesættes af argumentet <code>format</code>)."
|
| 338 |
+
|
| 339 |
+
#: includes/admin/class-dlm-admin.php:116
|
| 340 |
+
msgid "Default - Title and count"
|
| 341 |
+
msgstr "Standard - Titel og antal"
|
| 342 |
+
|
| 343 |
+
#: includes/admin/class-dlm-admin.php:117
|
| 344 |
+
msgid "Button - CSS styled button showing title and count"
|
| 345 |
+
msgstr "Knap - CSS-stylet knap, der viser titel og antal"
|
| 346 |
+
|
| 347 |
+
#: includes/admin/class-dlm-admin.php:118
|
| 348 |
+
msgid "Box - Box showing thumbnail, title, count, filename and filesize."
|
| 349 |
+
msgstr "Boks - Boks, der viser miniature, titel, antal, filnavn og filstørrelse."
|
| 350 |
+
|
| 351 |
+
#: includes/admin/class-dlm-admin.php:119
|
| 352 |
+
msgid "Filename - Filename and download count"
|
| 353 |
+
msgstr "Filnavn - Filnavn og antal downloads"
|
| 354 |
+
|
| 355 |
+
#: includes/admin/class-dlm-admin.php:120
|
| 356 |
+
msgid "Title - Shows download title only"
|
| 357 |
+
msgstr "Titel ‒ Viser kun downloadtitel"
|
| 358 |
+
|
| 359 |
+
#: includes/admin/class-dlm-admin.php:121
|
| 360 |
+
msgid "Version list - Lists all download versions in an unordered list"
|
| 361 |
+
msgstr "Versionsliste - Laver en liste med alle downloadversioner i uordnet rækkefølge"
|
| 362 |
+
|
| 363 |
+
#: includes/admin/class-dlm-admin.php:122
|
| 364 |
+
msgid "Custom template"
|
| 365 |
+
msgstr "Brugerdefineret skabelon"
|
| 366 |
+
|
| 367 |
+
#: includes/admin/class-dlm-admin.php:128
|
| 368 |
+
msgid "Custom Template"
|
| 369 |
+
msgstr "Brugerdefineret skabelon"
|
| 370 |
+
|
| 371 |
+
#: includes/admin/class-dlm-admin.php:129
|
| 372 |
+
msgid ""
|
| 373 |
+
"Leaving this blank will use the default <code>content-download.php</code> "
|
| 374 |
+
"template file. If you enter, for example, <code>image</code>, the <code"
|
| 375 |
+
">content-download-image.php</code> template will be used instead. You can "
|
| 376 |
+
"add custom templates inside your theme folder."
|
| 377 |
+
msgstr "Hvis uudfyldt bruges standardskabelonfilen <code>content-download.php</code>. Hvis du f.eks. indtaster <code>image</code>, bruges skabelonen <code>content-download-image.php</code> i stedet for. Du kan tilføje brugerdefinerede skabeloner i din temamappe."
|
| 378 |
+
|
| 379 |
+
#: includes/admin/class-dlm-admin.php:134
|
| 380 |
+
msgid "X-Accel-Redirect / X-Sendfile"
|
| 381 |
+
msgstr ""
|
| 382 |
+
|
| 383 |
+
#: includes/admin/class-dlm-admin.php:135
|
| 384 |
+
#: includes/admin/class-dlm-admin.php:143
|
| 385 |
+
#: includes/admin/class-dlm-admin.php:214
|
| 386 |
+
msgid "Enable"
|
| 387 |
+
msgstr "Aktivér"
|
| 388 |
+
|
| 389 |
+
#: includes/admin/class-dlm-admin.php:136
|
| 390 |
+
msgid ""
|
| 391 |
+
"If supported, <code>X-Accel-Redirect</code> / <code>X-Sendfile</code> can be"
|
| 392 |
+
" used to serve downloads instead of PHP (server requires "
|
| 393 |
+
"<code>mod_xsendfile</code>)."
|
| 394 |
+
msgstr "Hvis understøttet, kan <code>X-Accel-Redirect</code> / <code>X-Sendfile</code> bruges til at levere downloads i stedet for PHP (serveren skal have <code>mod_xsendfile</code>)."
|
| 395 |
+
|
| 396 |
+
#: includes/admin/class-dlm-admin.php:142
|
| 397 |
+
msgid "Prevent hotlinking"
|
| 398 |
+
msgstr "Forhindr hotlinking"
|
| 399 |
+
|
| 400 |
+
#: includes/admin/class-dlm-admin.php:144
|
| 401 |
+
msgid ""
|
| 402 |
+
"If enabled, the download handler will check the PHP referer to see if it "
|
| 403 |
+
"originated from your site and if not, redirect them to the homepage."
|
| 404 |
+
msgstr "Hvis aktiveret, vil downloadhandleren tjekke PHP-referrer for at se, om den stammer fra dit site. Hvis ikke, viderestilles de til forsiden."
|
| 405 |
+
|
| 406 |
+
#: includes/admin/class-dlm-admin.php:149 includes/class-dlm-installer.php:41
|
| 407 |
+
#: includes/class-dlm-upgrade-manager.php:47
|
| 408 |
+
msgid "You do not have permission to access this download. %sGo to homepage%s"
|
| 409 |
+
msgstr "Du har ikke adgang til denne download. %sGå til hjemmeside%s"
|
| 410 |
+
|
| 411 |
+
#: includes/admin/class-dlm-admin.php:151
|
| 412 |
+
msgid "No access message"
|
| 413 |
+
msgstr "Ingen adgang-besked"
|
| 414 |
+
|
| 415 |
+
#: includes/admin/class-dlm-admin.php:152
|
| 416 |
+
msgid ""
|
| 417 |
+
"The message that will be displayed to visitors when they don't have access "
|
| 418 |
+
"to a file."
|
| 419 |
+
msgstr "Den besked, der vil blive vist til besøgende, når de ikke har adgang til en fil."
|
| 420 |
+
|
| 421 |
+
#: includes/admin/class-dlm-admin.php:158
|
| 422 |
+
msgid "Endpoint"
|
| 423 |
+
msgstr "Slutpunkt"
|
| 424 |
+
|
| 425 |
+
#: includes/admin/class-dlm-admin.php:163
|
| 426 |
+
msgid "download"
|
| 427 |
+
msgstr "download"
|
| 428 |
+
|
| 429 |
+
#: includes/admin/class-dlm-admin.php:164
|
| 430 |
+
msgid "Download Endpoint"
|
| 431 |
+
msgstr "Downloadslutpunkt"
|
| 432 |
+
|
| 433 |
+
#: includes/admin/class-dlm-admin.php:165
|
| 434 |
+
msgid ""
|
| 435 |
+
"Define what endpoint should be used for download links. By default this will"
|
| 436 |
+
" be <code>%s</code>."
|
| 437 |
+
msgstr "Definér hvilket slutpunkt skal bruges for downloadlinks. Det vil som standard være <code>%s</code>."
|
| 438 |
+
|
| 439 |
+
#: includes/admin/class-dlm-admin.php:170
|
| 440 |
+
msgid "Endpoint Value"
|
| 441 |
+
msgstr "Slutpunktsværdi"
|
| 442 |
+
|
| 443 |
+
#: includes/admin/class-dlm-admin.php:171
|
| 444 |
+
msgid ""
|
| 445 |
+
"Define what unique value should be used on the end of your endpoint to "
|
| 446 |
+
"identify the downloadable file. e.g. ID would give a link like "
|
| 447 |
+
"<code>%s</code>"
|
| 448 |
+
msgstr "Definér, hvilken unik værdi der skal bruges i slutningen af dit slutpunkt for at identficere filen, der kan downloades. Fx vil ID give et link som <code>%s</code>"
|
| 449 |
+
|
| 450 |
+
#: includes/admin/class-dlm-admin.php:174
|
| 451 |
+
#: includes/admin/class-dlm-admin.php:541
|
| 452 |
+
msgid "Download ID"
|
| 453 |
+
msgstr "Download‑ID"
|
| 454 |
+
|
| 455 |
+
#: includes/admin/class-dlm-admin.php:175
|
| 456 |
+
msgid "Download slug"
|
| 457 |
+
msgstr "Downloadkorttitel"
|
| 458 |
+
|
| 459 |
+
#: includes/admin/class-dlm-admin.php:181
|
| 460 |
+
msgid "Hashes"
|
| 461 |
+
msgstr ""
|
| 462 |
+
|
| 463 |
+
#: includes/admin/class-dlm-admin.php:186
|
| 464 |
+
msgid "MD5 hashes"
|
| 465 |
+
msgstr "MD5-hashes"
|
| 466 |
+
|
| 467 |
+
#: includes/admin/class-dlm-admin.php:187
|
| 468 |
+
msgid "Generate MD5 hash for uploaded files"
|
| 469 |
+
msgstr "Generér MD5-hash for uploadede filer"
|
| 470 |
+
|
| 471 |
+
#: includes/admin/class-dlm-admin.php:194
|
| 472 |
+
msgid "SHA1 hashes"
|
| 473 |
+
msgstr "SHA1-hashes"
|
| 474 |
+
|
| 475 |
+
#: includes/admin/class-dlm-admin.php:195
|
| 476 |
+
msgid "Generate SHA1 hash for uploaded files"
|
| 477 |
+
msgstr "Generér SHA1-hash for uploadede filer"
|
| 478 |
+
|
| 479 |
+
#: includes/admin/class-dlm-admin.php:202
|
| 480 |
+
msgid "CRC32B hashes"
|
| 481 |
+
msgstr "CRC32B-hashes"
|
| 482 |
+
|
| 483 |
+
#: includes/admin/class-dlm-admin.php:203
|
| 484 |
+
msgid "Generate CRC32B hash for uploaded files"
|
| 485 |
+
msgstr "Generér CRC32B-hash for uploadede filer"
|
| 486 |
+
|
| 487 |
+
#: includes/admin/class-dlm-admin.php:204
|
| 488 |
+
msgid ""
|
| 489 |
+
"Hashes can optionally be output via shortcodes, but may cause performance "
|
| 490 |
+
"issues with large files."
|
| 491 |
+
msgstr "Hashes kan medtages, når du bruger kortkoder, hvis du ønsker det, men det kan medføre forsinkelser ved store filer."
|
| 492 |
+
|
| 493 |
+
#: includes/admin/class-dlm-admin.php:210
|
| 494 |
+
msgid "Logging"
|
| 495 |
+
msgstr "Logging"
|
| 496 |
+
|
| 497 |
+
#: includes/admin/class-dlm-admin.php:216
|
| 498 |
+
msgid "Download Log"
|
| 499 |
+
msgstr "Downloadlog"
|
| 500 |
+
|
| 501 |
+
#: includes/admin/class-dlm-admin.php:217
|
| 502 |
+
msgid "Log download attempts, IP addresses and more."
|
| 503 |
+
msgstr "Log downloadforsøg, IP-adresser m.m."
|
| 504 |
+
|
| 505 |
+
#: includes/admin/class-dlm-admin.php:223
|
| 506 |
+
msgid "Blacklist IPs"
|
| 507 |
+
msgstr "Blacklist IP-adresser"
|
| 508 |
+
|
| 509 |
+
#: includes/admin/class-dlm-admin.php:224
|
| 510 |
+
msgid ""
|
| 511 |
+
"List IP Addresses to blacklist, 1 per line. Use <code>*</code> for a "
|
| 512 |
+
"wildcard."
|
| 513 |
+
msgstr "Lav liste med IP-adresser, der skal blacklistes, 1 per linje. Brug <code>*</code> som wildcard."
|
| 514 |
+
|
| 515 |
+
#: includes/admin/class-dlm-admin.php:231
|
| 516 |
+
msgid "Blacklist user agents"
|
| 517 |
+
msgstr "Blacklist brugeragenter"
|
| 518 |
+
|
| 519 |
+
#: includes/admin/class-dlm-admin.php:232
|
| 520 |
+
msgid "List browser user agents to blacklist, 1 per line."
|
| 521 |
+
msgstr "Lav liste med browsere, der skal blacklistes, 1 per linje."
|
| 522 |
+
|
| 523 |
+
#: includes/admin/class-dlm-admin.php:316
|
| 524 |
+
msgid "Logs"
|
| 525 |
+
msgstr "Logs"
|
| 526 |
+
|
| 527 |
+
#: includes/admin/class-dlm-admin.php:323 includes/class-wp-dlm.php:202
|
| 528 |
+
msgid "Settings"
|
| 529 |
+
msgstr "Indstillinger"
|
| 530 |
+
|
| 531 |
+
#: includes/admin/class-dlm-admin.php:335 includes/class-wp-dlm.php:203
|
| 532 |
+
msgid "Extensions"
|
| 533 |
+
msgstr "Udvidelser"
|
| 534 |
+
|
| 535 |
+
#: includes/admin/class-dlm-admin.php:375
|
| 536 |
+
msgid "Settings successfully saved"
|
| 537 |
+
msgstr "Indstillingerne gemt med succes"
|
| 538 |
+
|
| 539 |
+
#: includes/admin/class-dlm-admin.php:458
|
| 540 |
+
msgid "Save Changes"
|
| 541 |
+
msgstr "Gem ændringer"
|
| 542 |
+
|
| 543 |
+
#: includes/admin/class-dlm-admin.php:484
|
| 544 |
+
msgid "Download Logs"
|
| 545 |
+
msgstr "Download-logs"
|
| 546 |
+
|
| 547 |
+
#: includes/admin/class-dlm-admin.php:486
|
| 548 |
+
msgid "Export CSV"
|
| 549 |
+
msgstr "Eksportér CSV"
|
| 550 |
+
|
| 551 |
+
#: includes/admin/class-dlm-admin.php:488
|
| 552 |
+
msgid "Delete Logs"
|
| 553 |
+
msgstr "Slet logs"
|
| 554 |
+
|
| 555 |
+
#: includes/admin/class-dlm-admin.php:542
|
| 556 |
+
msgid "Version ID"
|
| 557 |
+
msgstr "Version-ID"
|
| 558 |
+
|
| 559 |
+
#: includes/admin/class-dlm-admin.php:543
|
| 560 |
+
msgid "Filename"
|
| 561 |
+
msgstr "Filnavn"
|
| 562 |
+
|
| 563 |
+
#: includes/admin/class-dlm-admin.php:544
|
| 564 |
+
msgid "User ID"
|
| 565 |
+
msgstr "Bruger-ID"
|
| 566 |
+
|
| 567 |
+
#: includes/admin/class-dlm-admin.php:545
|
| 568 |
+
msgid "User Login"
|
| 569 |
+
msgstr "Brugerlogin"
|
| 570 |
+
|
| 571 |
+
#: includes/admin/class-dlm-admin.php:546
|
| 572 |
+
msgid "User Email"
|
| 573 |
+
msgstr "Bruger-e-mail"
|
| 574 |
+
|
| 575 |
+
#: includes/admin/class-dlm-admin.php:547
|
| 576 |
+
msgid "User IP"
|
| 577 |
+
msgstr "Bruger-IP"
|
| 578 |
+
|
| 579 |
+
#: includes/admin/class-dlm-admin.php:548
|
| 580 |
+
#: includes/admin/class-dlm-logging-list-table.php:134
|
| 581 |
+
msgid "User Agent"
|
| 582 |
+
msgstr "Brugeragent"
|
| 583 |
+
|
| 584 |
+
#: includes/admin/class-dlm-admin.php:549
|
| 585 |
+
#: includes/admin/class-dlm-logging-list-table.php:135
|
| 586 |
+
msgid "Date"
|
| 587 |
+
msgstr "Dato"
|
| 588 |
+
|
| 589 |
+
#: includes/admin/class-dlm-admin.php:550
|
| 590 |
+
msgid "Status"
|
| 591 |
+
msgstr "Status"
|
| 592 |
+
|
| 593 |
+
#: includes/admin/class-dlm-admin.php:635
|
| 594 |
+
msgid ""
|
| 595 |
+
"If you like %sDownload Monitor%s please leave us a %s★★★★★%s rating. A huge "
|
| 596 |
+
"thank you from us in advance!"
|
| 597 |
+
msgstr "Hvis du kan lide %sDownload Monitor%s, så giv os en %s★★★★★%s-bedømmelse. En kæmpetak fra os på forhånd!"
|
| 598 |
+
|
| 599 |
+
#: includes/admin/class-dlm-logging-list-table.php:54
|
| 600 |
+
msgid "Download Complete"
|
| 601 |
+
msgstr "Download fuldført"
|
| 602 |
+
|
| 603 |
+
#: includes/admin/class-dlm-logging-list-table.php:61
|
| 604 |
+
msgid "%s ago"
|
| 605 |
+
msgstr "%s siden"
|
| 606 |
+
|
| 607 |
+
#: includes/admin/class-dlm-logging-list-table.php:68
|
| 608 |
+
msgid "Download #%d (no longer exists)"
|
| 609 |
+
msgstr "Download #%d (eksisterer ikke længere)"
|
| 610 |
+
|
| 611 |
+
#: includes/admin/class-dlm-logging-list-table.php:76
|
| 612 |
+
msgid "v%s"
|
| 613 |
+
msgstr "v%s"
|
| 614 |
+
|
| 615 |
+
#: includes/admin/class-dlm-logging-list-table.php:99
|
| 616 |
+
msgid "Non-member"
|
| 617 |
+
msgstr "Ikke-medlem"
|
| 618 |
+
|
| 619 |
+
#: includes/admin/class-dlm-logging-list-table.php:132
|
| 620 |
+
msgid "User"
|
| 621 |
+
msgstr "Bruger"
|
| 622 |
+
|
| 623 |
+
#: includes/admin/class-dlm-logging-list-table.php:133
|
| 624 |
+
msgid "IP Address"
|
| 625 |
+
msgstr "IP-adresse"
|
| 626 |
+
|
| 627 |
+
#: includes/admin/class-dlm-logging-list-table.php:150
|
| 628 |
+
msgid "Any status"
|
| 629 |
+
msgstr "Enhver status"
|
| 630 |
+
|
| 631 |
+
#: includes/admin/class-dlm-logging-list-table.php:152
|
| 632 |
+
msgid "Failed"
|
| 633 |
+
msgstr "Mislykkede"
|
| 634 |
+
|
| 635 |
+
#: includes/admin/class-dlm-logging-list-table.php:154
|
| 636 |
+
msgid "Redirected"
|
| 637 |
+
msgstr "Redirigeret"
|
| 638 |
+
|
| 639 |
+
#: includes/admin/class-dlm-logging-list-table.php:156
|
| 640 |
+
msgid "Completed"
|
| 641 |
+
msgstr "Fuldført"
|
| 642 |
+
|
| 643 |
+
#: includes/admin/class-dlm-logging-list-table.php:175
|
| 644 |
+
msgid "Show all dates"
|
| 645 |
+
msgstr "Vis alle datoer"
|
| 646 |
+
|
| 647 |
+
#: includes/admin/class-dlm-logging-list-table.php:189
|
| 648 |
+
msgid "%1$s %2$d"
|
| 649 |
+
msgstr "%1$s %2$d"
|
| 650 |
+
|
| 651 |
+
#: includes/admin/class-dlm-logging-list-table.php:197
|
| 652 |
+
msgid "25 per page"
|
| 653 |
+
msgstr "25 per side"
|
| 654 |
+
|
| 655 |
+
#: includes/admin/class-dlm-logging-list-table.php:199
|
| 656 |
+
msgid "50 per page"
|
| 657 |
+
msgstr "50 per side"
|
| 658 |
+
|
| 659 |
+
#: includes/admin/class-dlm-logging-list-table.php:201
|
| 660 |
+
msgid "100 per page"
|
| 661 |
+
msgstr "100 per side"
|
| 662 |
+
|
| 663 |
+
#: includes/admin/class-dlm-logging-list-table.php:203
|
| 664 |
+
msgid "200 per page"
|
| 665 |
+
msgstr "200 per side"
|
| 666 |
+
|
| 667 |
+
#: includes/admin/class-dlm-logging-list-table.php:205
|
| 668 |
+
msgid "Show All"
|
| 669 |
+
msgstr "Vis alle"
|
| 670 |
+
|
| 671 |
+
#: includes/admin/class-dlm-logging-list-table.php:209
|
| 672 |
+
msgid "Filter"
|
| 673 |
+
msgstr "Filtrér"
|
| 674 |
+
|
| 675 |
+
#: includes/admin/html-downloadable-file-version.php:3
|
| 676 |
+
msgid "Remove"
|
| 677 |
+
msgstr "Fjern"
|
| 678 |
+
|
| 679 |
+
#: includes/admin/html-downloadable-file-version.php:4
|
| 680 |
+
msgid "Click to toggle"
|
| 681 |
+
msgstr "Klik for at vise/skjule"
|
| 682 |
+
|
| 683 |
+
#: includes/admin/html-downloadable-file-version.php:5
|
| 684 |
+
msgid "Version <span class=\"version\">%s</span> (%s)"
|
| 685 |
+
msgstr "Version <span class=\"version\">%s</span> (%s)"
|
| 686 |
+
|
| 687 |
+
#: includes/admin/html-downloadable-file-version.php:5
|
| 688 |
+
#: includes/admin/html-downloadable-file-version.php:19
|
| 689 |
+
msgid "n/a"
|
| 690 |
+
msgstr " ‒ "
|
| 691 |
+
|
| 692 |
+
#: includes/admin/html-downloadable-file-version.php:5
|
| 693 |
+
msgid "Downloaded %s time"
|
| 694 |
+
msgid_plural "Downloaded %s times"
|
| 695 |
+
msgstr[0] "Downloadet %s gang"
|
| 696 |
+
msgstr[1] "Downloadet %s gange"
|
| 697 |
+
|
| 698 |
+
#: includes/admin/html-downloadable-file-version.php:23
|
| 699 |
+
msgid "File URL(s)"
|
| 700 |
+
msgstr "Fil-URL('er)"
|
| 701 |
+
|
| 702 |
+
#: includes/admin/html-downloadable-file-version.php:26
|
| 703 |
+
msgid ""
|
| 704 |
+
"Enter one file path/URL per line - multiple files will be used as mirrors "
|
| 705 |
+
"(chosen at random)."
|
| 706 |
+
msgstr "Indtast én filsti/URL per linje ‒ flere filer vil blive brugt som mirrors (tilfældigt valgt)."
|
| 707 |
+
|
| 708 |
+
#: includes/admin/html-downloadable-file-version.php:32
|
| 709 |
+
msgid "Upload file"
|
| 710 |
+
msgstr "Upload fil"
|
| 711 |
+
|
| 712 |
+
#: includes/admin/html-downloadable-file-version.php:34
|
| 713 |
+
msgid "Choose a file"
|
| 714 |
+
msgstr "Vælg en fil"
|
| 715 |
+
|
| 716 |
+
#: includes/admin/html-downloadable-file-version.php:35
|
| 717 |
+
msgid "Insert file URL"
|
| 718 |
+
msgstr "Indsæt fil-URL"
|
| 719 |
+
|
| 720 |
+
#: includes/admin/html-downloadable-file-version.php:39
|
| 721 |
+
msgid "Browse for file"
|
| 722 |
+
msgstr "Gennemse for fil"
|
| 723 |
+
|
| 724 |
+
#: includes/admin/html-downloadable-file-version.php:66
|
| 725 |
+
msgid "File Date"
|
| 726 |
+
msgstr "Fildato"
|
| 727 |
+
|
| 728 |
+
#: includes/admin/html-downloadable-file-version.php:69
|
| 729 |
+
msgid "h"
|
| 730 |
+
msgstr ""
|
| 731 |
+
|
| 732 |
+
#: includes/admin/html-downloadable-file-version.php:72
|
| 733 |
+
msgid "m"
|
| 734 |
+
msgstr ""
|
| 735 |
+
|
| 736 |
+
#: includes/class-dlm-download-handler.php:171
|
| 737 |
+
msgid "Password Required"
|
| 738 |
+
msgstr "Adgangskode påkrævet"
|
| 739 |
+
|
| 740 |
+
#: includes/class-dlm-download-handler.php:177
|
| 741 |
+
msgid "Download does not exist."
|
| 742 |
+
msgstr "Download eksisterer ikke."
|
| 743 |
+
|
| 744 |
+
#: includes/class-dlm-download-handler.php:177
|
| 745 |
+
#: includes/class-dlm-download-handler.php:218
|
| 746 |
+
#: includes/class-dlm-download-handler.php:226
|
| 747 |
+
#: includes/class-dlm-download-handler.php:337
|
| 748 |
+
msgid "Go to homepage →"
|
| 749 |
+
msgstr "Gå til forside →"
|
| 750 |
+
|
| 751 |
+
#: includes/class-dlm-download-handler.php:177
|
| 752 |
+
#: includes/class-dlm-download-handler.php:218
|
| 753 |
+
#: includes/class-dlm-download-handler.php:226
|
| 754 |
+
#: includes/class-dlm-download-handler.php:238
|
| 755 |
+
#: includes/class-dlm-download-handler.php:337
|
| 756 |
+
msgid "Download Error"
|
| 757 |
+
msgstr "Downloadfejl"
|
| 758 |
+
|
| 759 |
+
#: includes/class-dlm-download-handler.php:218
|
| 760 |
+
#: includes/class-dlm-download-handler.php:226
|
| 761 |
+
msgid "No file paths defined."
|
| 762 |
+
msgstr "Ingen filstier defineret."
|
| 763 |
+
|
| 764 |
+
#: includes/class-dlm-download-handler.php:257
|
| 765 |
+
#: includes/class-dlm-download-handler.php:277
|
| 766 |
+
#: includes/class-dlm-download-handler.php:284
|
| 767 |
+
#: includes/class-dlm-download-handler.php:291
|
| 768 |
+
msgid "Redirected to file"
|
| 769 |
+
msgstr "Redirigeret til fil"
|
| 770 |
+
|
| 771 |
+
#: includes/class-dlm-download-handler.php:330
|
| 772 |
+
msgid "Redirected to remote file."
|
| 773 |
+
msgstr "Redirigeret til fjernfil."
|
| 774 |
+
|
| 775 |
+
#: includes/class-dlm-download-handler.php:335
|
| 776 |
+
#: includes/class-dlm-download-handler.php:337
|
| 777 |
+
msgid "File not found."
|
| 778 |
+
msgstr "Fil ikke fundet."
|
| 779 |
+
|
| 780 |
+
#: includes/class-dlm-post-type-manager.php:21
|
| 781 |
+
msgid "All Downloads"
|
| 782 |
+
msgstr "Alle downloads"
|
| 783 |
+
|
| 784 |
+
#: includes/class-dlm-post-type-manager.php:22
|
| 785 |
+
msgid "Downloads"
|
| 786 |
+
msgstr "Downloads"
|
| 787 |
+
|
| 788 |
+
#: includes/class-dlm-post-type-manager.php:24
|
| 789 |
+
msgid "Add New"
|
| 790 |
+
msgstr "Tilføj ny"
|
| 791 |
+
|
| 792 |
+
#: includes/class-dlm-post-type-manager.php:25
|
| 793 |
+
msgid "Add Download"
|
| 794 |
+
msgstr "Tilføj download"
|
| 795 |
+
|
| 796 |
+
#: includes/class-dlm-post-type-manager.php:26
|
| 797 |
+
msgid "Edit"
|
| 798 |
+
msgstr "Redigér"
|
| 799 |
+
|
| 800 |
+
#: includes/class-dlm-post-type-manager.php:27
|
| 801 |
+
msgid "Edit Download"
|
| 802 |
+
msgstr "Redigér download"
|
| 803 |
+
|
| 804 |
+
#: includes/class-dlm-post-type-manager.php:28
|
| 805 |
+
msgid "New Download"
|
| 806 |
+
msgstr "Ny download"
|
| 807 |
+
|
| 808 |
+
#: includes/class-dlm-post-type-manager.php:29
|
| 809 |
+
#: includes/class-dlm-post-type-manager.php:30
|
| 810 |
+
msgid "View Download"
|
| 811 |
+
msgstr "Se download"
|
| 812 |
+
|
| 813 |
+
#: includes/class-dlm-post-type-manager.php:31
|
| 814 |
+
msgid "Search Downloads"
|
| 815 |
+
msgstr "Søg i downloads"
|
| 816 |
+
|
| 817 |
+
#: includes/class-dlm-post-type-manager.php:32
|
| 818 |
+
msgid "No Downloads found"
|
| 819 |
+
msgstr "Ingen downloads fundet"
|
| 820 |
+
|
| 821 |
+
#: includes/class-dlm-post-type-manager.php:33
|
| 822 |
+
msgid "No Downloads found in trash"
|
| 823 |
+
msgstr "Ingen downloads fundet i Papirkurven"
|
| 824 |
+
|
| 825 |
+
#: includes/class-dlm-post-type-manager.php:34
|
| 826 |
+
msgid "Parent Download"
|
| 827 |
+
msgstr "Overdownload"
|
| 828 |
+
|
| 829 |
+
#: includes/class-dlm-post-type-manager.php:36
|
| 830 |
+
msgid "This is where you can create and manage downloads for your site."
|
| 831 |
+
msgstr "Her kan du oprette og administrere downloads for dit site."
|
| 832 |
+
|
| 833 |
+
#: includes/class-dlm-shortcodes.php:107 includes/class-dlm-shortcodes.php:142
|
| 834 |
+
msgid "Download not found"
|
| 835 |
+
msgstr "Download ikke fundet"
|
| 836 |
+
|
| 837 |
+
#: includes/class-dlm-taxonomy-manager.php:30
|
| 838 |
+
msgid "Download Category"
|
| 839 |
+
msgstr "Downloadkategori"
|
| 840 |
+
|
| 841 |
+
#: includes/class-dlm-taxonomy-manager.php:31
|
| 842 |
+
msgid "Search Download Categories"
|
| 843 |
+
msgstr "Søg i downloadkategorier"
|
| 844 |
+
|
| 845 |
+
#: includes/class-dlm-taxonomy-manager.php:32
|
| 846 |
+
msgid "All Download Categories"
|
| 847 |
+
msgstr "Alle downloadkategorier"
|
| 848 |
+
|
| 849 |
+
#: includes/class-dlm-taxonomy-manager.php:33
|
| 850 |
+
#: includes/class-dlm-taxonomy-manager.php:34
|
| 851 |
+
msgid "Parent Download Category"
|
| 852 |
+
msgstr "Overkategori for download"
|
| 853 |
+
|
| 854 |
+
#: includes/class-dlm-taxonomy-manager.php:35
|
| 855 |
+
msgid "Edit Download Category"
|
| 856 |
+
msgstr "Redigér downloadkategori"
|
| 857 |
+
|
| 858 |
+
#: includes/class-dlm-taxonomy-manager.php:36
|
| 859 |
+
msgid "Update Download Category"
|
| 860 |
+
msgstr "Opdatér downloadkategori"
|
| 861 |
+
|
| 862 |
+
#: includes/class-dlm-taxonomy-manager.php:37
|
| 863 |
+
msgid "Add New Download Category"
|
| 864 |
+
msgstr "Tilføj ny downloadkategori"
|
| 865 |
+
|
| 866 |
+
#: includes/class-dlm-taxonomy-manager.php:38
|
| 867 |
+
msgid "New Download Category Name"
|
| 868 |
+
msgstr "Navn på ny downloadkategori"
|
| 869 |
+
|
| 870 |
+
#: includes/class-dlm-taxonomy-manager.php:61
|
| 871 |
+
msgid "Download Tag"
|
| 872 |
+
msgstr "Downloadtag"
|
| 873 |
+
|
| 874 |
+
#: includes/class-dlm-taxonomy-manager.php:62
|
| 875 |
+
msgid "Search Download Tags"
|
| 876 |
+
msgstr "Søg i downloadtags"
|
| 877 |
+
|
| 878 |
+
#: includes/class-dlm-taxonomy-manager.php:63
|
| 879 |
+
msgid "All Download Tags"
|
| 880 |
+
msgstr "Alle downloadtags"
|
| 881 |
+
|
| 882 |
+
#: includes/class-dlm-taxonomy-manager.php:64
|
| 883 |
+
#: includes/class-dlm-taxonomy-manager.php:65
|
| 884 |
+
msgid "Parent Download Tag"
|
| 885 |
+
msgstr "Overtag for download"
|
| 886 |
+
|
| 887 |
+
#: includes/class-dlm-taxonomy-manager.php:66
|
| 888 |
+
msgid "Edit Download Tag"
|
| 889 |
+
msgstr "Redigér downloadtag"
|
| 890 |
+
|
| 891 |
+
#: includes/class-dlm-taxonomy-manager.php:67
|
| 892 |
+
msgid "Update Download Tag"
|
| 893 |
+
msgstr "Opdatér downloadtag"
|
| 894 |
+
|
| 895 |
+
#: includes/class-dlm-taxonomy-manager.php:68
|
| 896 |
+
msgid "Add New Download Tag"
|
| 897 |
+
msgstr "Tilføj nyt downloadtag"
|
| 898 |
+
|
| 899 |
+
#: includes/class-dlm-taxonomy-manager.php:69
|
| 900 |
+
msgid "New Download Tag Name"
|
| 901 |
+
msgstr "Navn på nyt downloadtag"
|
| 902 |
+
|
| 903 |
+
#: includes/class-wp-dlm.php:204
|
| 904 |
+
msgid "Docs"
|
| 905 |
+
msgstr "Dok."
|
| 906 |
+
|
| 907 |
+
#: includes/product/class-dlm-product.php:149
|
| 908 |
+
msgid "License successfully activated."
|
| 909 |
+
msgstr "Licens aktiveret med succes."
|
| 910 |
+
|
| 911 |
+
#: includes/widgets/class-dlm-widget-downloads.php:29
|
| 912 |
+
msgid "Display a list of your downloads."
|
| 913 |
+
msgstr "Vis en liste med dine downloads."
|
| 914 |
+
|
| 915 |
+
#: includes/widgets/class-dlm-widget-downloads.php:31
|
| 916 |
+
msgid "Downloads List"
|
| 917 |
+
msgstr "Downloadsliste"
|
| 918 |
+
|
| 919 |
+
#: includes/widgets/class-dlm-widget-downloads.php:56
|
| 920 |
+
#: includes/widgets/class-dlm-widget-downloads.php:160
|
| 921 |
+
msgid "Featured Downloads"
|
| 922 |
+
msgstr "Fremhævede downloads"
|
| 923 |
+
|
| 924 |
+
#: includes/widgets/class-dlm-widget-downloads.php:177
|
| 925 |
+
msgid "Limit"
|
| 926 |
+
msgstr "Begrænsning"
|
| 927 |
+
|
| 928 |
+
#: includes/widgets/class-dlm-widget-downloads.php:184
|
| 929 |
+
msgid "Output template"
|
| 930 |
+
msgstr "Outputskabelon"
|
| 931 |
+
|
| 932 |
+
#: includes/widgets/class-dlm-widget-downloads.php:188
|
| 933 |
+
msgid "Default template"
|
| 934 |
+
msgstr "Standardskabelon"
|
| 935 |
+
|
| 936 |
+
#: includes/widgets/class-dlm-widget-downloads.php:192
|
| 937 |
+
msgid "Order by"
|
| 938 |
+
msgstr "Sortér efter"
|
| 939 |
+
|
| 940 |
+
#: includes/widgets/class-dlm-widget-downloads.php:198
|
| 941 |
+
msgid "Random"
|
| 942 |
+
msgstr "Tilfældig"
|
| 943 |
+
|
| 944 |
+
#: includes/widgets/class-dlm-widget-downloads.php:202
|
| 945 |
+
msgid "Date added"
|
| 946 |
+
msgstr "Dato tilføjet"
|
| 947 |
+
|
| 948 |
+
#: includes/widgets/class-dlm-widget-downloads.php:204
|
| 949 |
+
msgid "Date modified"
|
| 950 |
+
msgstr "Dato ændret"
|
| 951 |
+
|
| 952 |
+
#: includes/widgets/class-dlm-widget-downloads.php:211
|
| 953 |
+
msgid "Order"
|
| 954 |
+
msgstr "Sorteringsrækkefølge"
|
| 955 |
+
|
| 956 |
+
#: includes/widgets/class-dlm-widget-downloads.php:215
|
| 957 |
+
msgid "ASC"
|
| 958 |
+
msgstr "STIG"
|
| 959 |
+
|
| 960 |
+
#: includes/widgets/class-dlm-widget-downloads.php:217
|
| 961 |
+
msgid "DESC"
|
| 962 |
+
msgstr "FALD"
|
| 963 |
+
|
| 964 |
+
#: includes/widgets/class-dlm-widget-downloads.php:225
|
| 965 |
+
msgid "Show only featured downloads"
|
| 966 |
+
msgstr "Vis kun fremhævede downloads"
|
| 967 |
+
|
| 968 |
+
#: includes/widgets/class-dlm-widget-downloads.php:232
|
| 969 |
+
msgid "Show only members only downloads"
|
| 970 |
+
msgstr "Vis kun medlemmer kun downloads"
|
| 971 |
+
|
| 972 |
+
#: templates/content-download-box.php:13
|
| 973 |
+
#: templates/content-download-filename.php:13
|
| 974 |
+
#: templates/content-download.php:12
|
| 975 |
+
msgid "1 download"
|
| 976 |
+
msgid_plural "%d downloads"
|
| 977 |
+
msgstr[0] "1 download"
|
| 978 |
+
msgstr[1] "%d downloads"
|
| 979 |
+
|
| 980 |
+
#: templates/content-download-box.php:22
|
| 981 |
+
#: templates/content-download-filename.php:10
|
| 982 |
+
#: templates/content-download-title.php:9 templates/content-download.php:9
|
| 983 |
+
msgid "Version %s"
|
| 984 |
+
msgstr "Version %s"
|
| 985 |
+
|
| 986 |
+
#: templates/content-download-box.php:24
|
| 987 |
+
msgid "Download File"
|
| 988 |
+
msgstr "Download fil"
|
| 989 |
+
|
| 990 |
+
#: templates/content-download-button.php:9
|
| 991 |
+
msgid "Download “%s”"
|
| 992 |
+
msgstr "Download “%s”"
|
| 993 |
+
|
| 994 |
+
#: templates/content-download-button.php:10
|
| 995 |
+
#: templates/content-download-version-list.php:18
|
| 996 |
+
msgid "Downloaded 1 time"
|
| 997 |
+
msgid_plural "Downloaded %d times"
|
| 998 |
+
msgstr[0] "Downloadet 1 gang"
|
| 999 |
+
msgstr[1] "Downloadet %d gange"
|
| 1000 |
+
|
| 1001 |
+
#. Plugin Name of the plugin/theme
|
| 1002 |
+
msgid "Download Monitor"
|
| 1003 |
+
msgstr ""
|
| 1004 |
+
|
| 1005 |
+
#. Author URI of the plugin/theme
|
| 1006 |
+
msgid "https://www.download-monitor.com"
|
| 1007 |
+
msgstr ""
|
| 1008 |
+
|
| 1009 |
+
#. Description of the plugin/theme
|
| 1010 |
+
msgid ""
|
| 1011 |
+
"A full solution for managing downloadable files, monitoring downloads and "
|
| 1012 |
+
"outputting download links and file information on your WordPress powered "
|
| 1013 |
+
"site."
|
| 1014 |
+
msgstr ""
|
| 1015 |
+
|
| 1016 |
+
#. Author of the plugin/theme
|
| 1017 |
+
msgid "Barry Kooij & Mike Jolley"
|
| 1018 |
+
msgstr ""
|
| 1019 |
+
|
| 1020 |
+
#: includes/admin/class-dlm-admin-media-insert.php:213
|
| 1021 |
+
msgctxt "Drop file here *or* select file"
|
| 1022 |
+
msgid "or"
|
| 1023 |
+
msgstr ""
|
languages/download-monitor-de_DE.mo
CHANGED
|
Binary file
|
languages/download-monitor-de_DE.po
CHANGED
|
@@ -1,6 +1,7 @@
|
|
| 1 |
# Copyright (C) 2015 Barry Kooij & Mike Jolley
|
| 2 |
# This file is distributed under the GPL v3.
|
| 3 |
# Translators:
|
|
|
|
| 4 |
# Barry Kooij <mail@barrykooij.nl>, 2015
|
| 5 |
# Marcel Pietschmann <inactive+maphy_psd@transifex.com>, 2015
|
| 6 |
# Patrick Brückner, 2014
|
|
@@ -9,9 +10,9 @@ msgstr ""
|
|
| 9 |
"Project-Id-Version: Download Monitor\n"
|
| 10 |
"Report-Msgid-Bugs-To: https://github.com/download-monitor/download-monitor/issues\n"
|
| 11 |
"POT-Creation-Date: 2015-03-22 12:53:18+00:00\n"
|
| 12 |
-
"PO-Revision-Date: 2015-
|
| 13 |
-
"Last-Translator:
|
| 14 |
-
"Language-Team: German (Germany) (http://www.transifex.com/
|
| 15 |
"MIME-Version: 1.0\n"
|
| 16 |
"Content-Type: text/plain; charset=UTF-8\n"
|
| 17 |
"Content-Transfer-Encoding: 8bit\n"
|
|
@@ -154,13 +155,13 @@ msgstr "Download"
|
|
| 154 |
#: includes/admin/class-dlm-admin-extensions.php:45
|
| 155 |
#: includes/admin/class-dlm-admin.php:335
|
| 156 |
msgid "Download Monitor Extensions"
|
| 157 |
-
msgstr ""
|
| 158 |
|
| 159 |
#: includes/admin/class-dlm-admin-extensions.php:76
|
| 160 |
msgid ""
|
| 161 |
"Extend Download Monitor with its powerful free and paid extensions. %sClick "
|
| 162 |
"here to browse all extensions%s"
|
| 163 |
-
msgstr ""
|
| 164 |
|
| 165 |
#: includes/admin/class-dlm-admin-media-browser.php:34
|
| 166 |
#: includes/admin/class-dlm-admin-scripts.php:96
|
|
@@ -263,11 +264,11 @@ msgstr "Bitte warten ..."
|
|
| 263 |
|
| 264 |
#: includes/admin/class-dlm-admin-scripts.php:95
|
| 265 |
msgid "Are you sure you want to delete this file ? "
|
| 266 |
-
msgstr ""
|
| 267 |
|
| 268 |
#: includes/admin/class-dlm-admin-writepanels.php:32
|
| 269 |
msgid "Download Information"
|
| 270 |
-
msgstr ""
|
| 271 |
|
| 272 |
#: includes/admin/class-dlm-admin-writepanels.php:38
|
| 273 |
msgid "Download Options"
|
|
@@ -283,11 +284,11 @@ msgstr "Kurzbeschreibung"
|
|
| 283 |
|
| 284 |
#: includes/admin/class-dlm-admin-writepanels.php:83
|
| 285 |
msgid "URL"
|
| 286 |
-
msgstr ""
|
| 287 |
|
| 288 |
#: includes/admin/class-dlm-admin-writepanels.php:88
|
| 289 |
msgid "Shortcode"
|
| 290 |
-
msgstr ""
|
| 291 |
|
| 292 |
#: includes/admin/class-dlm-admin-writepanels.php:118
|
| 293 |
msgid "Featured download"
|
|
@@ -409,7 +410,7 @@ msgstr "Wenn dies aktiviert ist, leitet der Download-Handler alle Nutzeranfragen
|
|
| 409 |
#: includes/admin/class-dlm-admin.php:149 includes/class-dlm-installer.php:41
|
| 410 |
#: includes/class-dlm-upgrade-manager.php:47
|
| 411 |
msgid "You do not have permission to access this download. %sGo to homepage%s"
|
| 412 |
-
msgstr ""
|
| 413 |
|
| 414 |
#: includes/admin/class-dlm-admin.php:151
|
| 415 |
msgid "No access message"
|
|
@@ -419,7 +420,7 @@ msgstr ""
|
|
| 419 |
msgid ""
|
| 420 |
"The message that will be displayed to visitors when they don't have access "
|
| 421 |
"to a file."
|
| 422 |
-
msgstr ""
|
| 423 |
|
| 424 |
#: includes/admin/class-dlm-admin.php:158
|
| 425 |
msgid "Endpoint"
|
|
@@ -533,7 +534,7 @@ msgstr "Einstellungen"
|
|
| 533 |
|
| 534 |
#: includes/admin/class-dlm-admin.php:335 includes/class-wp-dlm.php:203
|
| 535 |
msgid "Extensions"
|
| 536 |
-
msgstr ""
|
| 537 |
|
| 538 |
#: includes/admin/class-dlm-admin.php:375
|
| 539 |
msgid "Settings successfully saved"
|
|
@@ -597,7 +598,7 @@ msgstr "Status"
|
|
| 597 |
msgid ""
|
| 598 |
"If you like %sDownload Monitor%s please leave us a %s★★★★★%s rating. A huge "
|
| 599 |
"thank you from us in advance!"
|
| 600 |
-
msgstr ""
|
| 601 |
|
| 602 |
#: includes/admin/class-dlm-logging-list-table.php:54
|
| 603 |
msgid "Download Complete"
|
|
@@ -909,7 +910,7 @@ msgstr "Doku"
|
|
| 909 |
|
| 910 |
#: includes/product/class-dlm-product.php:149
|
| 911 |
msgid "License successfully activated."
|
| 912 |
-
msgstr ""
|
| 913 |
|
| 914 |
#: includes/widgets/class-dlm-widget-downloads.php:29
|
| 915 |
msgid "Display a list of your downloads."
|
|
@@ -926,7 +927,7 @@ msgstr "Hervorgehobene Downloads"
|
|
| 926 |
|
| 927 |
#: includes/widgets/class-dlm-widget-downloads.php:177
|
| 928 |
msgid "Limit"
|
| 929 |
-
msgstr ""
|
| 930 |
|
| 931 |
#: includes/widgets/class-dlm-widget-downloads.php:184
|
| 932 |
msgid "Output template"
|
|
@@ -954,7 +955,7 @@ msgstr "Letzte Änderung"
|
|
| 954 |
|
| 955 |
#: includes/widgets/class-dlm-widget-downloads.php:211
|
| 956 |
msgid "Order"
|
| 957 |
-
msgstr ""
|
| 958 |
|
| 959 |
#: includes/widgets/class-dlm-widget-downloads.php:215
|
| 960 |
msgid "ASC"
|
| 1 |
# Copyright (C) 2015 Barry Kooij & Mike Jolley
|
| 2 |
# This file is distributed under the GPL v3.
|
| 3 |
# Translators:
|
| 4 |
+
# Andre, 2015
|
| 5 |
# Barry Kooij <mail@barrykooij.nl>, 2015
|
| 6 |
# Marcel Pietschmann <inactive+maphy_psd@transifex.com>, 2015
|
| 7 |
# Patrick Brückner, 2014
|
| 10 |
"Project-Id-Version: Download Monitor\n"
|
| 11 |
"Report-Msgid-Bugs-To: https://github.com/download-monitor/download-monitor/issues\n"
|
| 12 |
"POT-Creation-Date: 2015-03-22 12:53:18+00:00\n"
|
| 13 |
+
"PO-Revision-Date: 2015-06-08 19:23+0000\n"
|
| 14 |
+
"Last-Translator: Andre\n"
|
| 15 |
+
"Language-Team: German (Germany) (http://www.transifex.com/p/download-monitor/language/de_DE/)\n"
|
| 16 |
"MIME-Version: 1.0\n"
|
| 17 |
"Content-Type: text/plain; charset=UTF-8\n"
|
| 18 |
"Content-Transfer-Encoding: 8bit\n"
|
| 155 |
#: includes/admin/class-dlm-admin-extensions.php:45
|
| 156 |
#: includes/admin/class-dlm-admin.php:335
|
| 157 |
msgid "Download Monitor Extensions"
|
| 158 |
+
msgstr "Download Monitor Erweiterungen"
|
| 159 |
|
| 160 |
#: includes/admin/class-dlm-admin-extensions.php:76
|
| 161 |
msgid ""
|
| 162 |
"Extend Download Monitor with its powerful free and paid extensions. %sClick "
|
| 163 |
"here to browse all extensions%s"
|
| 164 |
+
msgstr "Erweitere Download Monitor mit seinen leistungsstarken kostenlosen und kostenpflichtigen Erweiterungen. %sKlicke hier, um alle Erweiterungen zu durchsuchen%s"
|
| 165 |
|
| 166 |
#: includes/admin/class-dlm-admin-media-browser.php:34
|
| 167 |
#: includes/admin/class-dlm-admin-scripts.php:96
|
| 264 |
|
| 265 |
#: includes/admin/class-dlm-admin-scripts.php:95
|
| 266 |
msgid "Are you sure you want to delete this file ? "
|
| 267 |
+
msgstr "Soll die Datei wirklich gelöscht werden?"
|
| 268 |
|
| 269 |
#: includes/admin/class-dlm-admin-writepanels.php:32
|
| 270 |
msgid "Download Information"
|
| 271 |
+
msgstr "Download Informationen"
|
| 272 |
|
| 273 |
#: includes/admin/class-dlm-admin-writepanels.php:38
|
| 274 |
msgid "Download Options"
|
| 284 |
|
| 285 |
#: includes/admin/class-dlm-admin-writepanels.php:83
|
| 286 |
msgid "URL"
|
| 287 |
+
msgstr "URL"
|
| 288 |
|
| 289 |
#: includes/admin/class-dlm-admin-writepanels.php:88
|
| 290 |
msgid "Shortcode"
|
| 291 |
+
msgstr "Shortcode"
|
| 292 |
|
| 293 |
#: includes/admin/class-dlm-admin-writepanels.php:118
|
| 294 |
msgid "Featured download"
|
| 410 |
#: includes/admin/class-dlm-admin.php:149 includes/class-dlm-installer.php:41
|
| 411 |
#: includes/class-dlm-upgrade-manager.php:47
|
| 412 |
msgid "You do not have permission to access this download. %sGo to homepage%s"
|
| 413 |
+
msgstr "Sie besitzen nicht die nötige Berechtigung, um auf diese Download-Datei zuzugreifen. %sGehe zur Homepage%s"
|
| 414 |
|
| 415 |
#: includes/admin/class-dlm-admin.php:151
|
| 416 |
msgid "No access message"
|
| 420 |
msgid ""
|
| 421 |
"The message that will be displayed to visitors when they don't have access "
|
| 422 |
"to a file."
|
| 423 |
+
msgstr "Die Nachricht die angezeigt wird, wenn Besucher keinen Zugriff auf eine Datei haben."
|
| 424 |
|
| 425 |
#: includes/admin/class-dlm-admin.php:158
|
| 426 |
msgid "Endpoint"
|
| 534 |
|
| 535 |
#: includes/admin/class-dlm-admin.php:335 includes/class-wp-dlm.php:203
|
| 536 |
msgid "Extensions"
|
| 537 |
+
msgstr "Erweiterungen"
|
| 538 |
|
| 539 |
#: includes/admin/class-dlm-admin.php:375
|
| 540 |
msgid "Settings successfully saved"
|
| 598 |
msgid ""
|
| 599 |
"If you like %sDownload Monitor%s please leave us a %s★★★★★%s rating. A huge "
|
| 600 |
"thank you from us in advance!"
|
| 601 |
+
msgstr "Wenn du %sDownload Monitor%s magst, hinterlasse uns doch eine %s★★★★★%s Bewertung. Ein großes Dankeschön von uns im Voraus!"
|
| 602 |
|
| 603 |
#: includes/admin/class-dlm-logging-list-table.php:54
|
| 604 |
msgid "Download Complete"
|
| 910 |
|
| 911 |
#: includes/product/class-dlm-product.php:149
|
| 912 |
msgid "License successfully activated."
|
| 913 |
+
msgstr "Lizenz erfolgreich aktiviert."
|
| 914 |
|
| 915 |
#: includes/widgets/class-dlm-widget-downloads.php:29
|
| 916 |
msgid "Display a list of your downloads."
|
| 927 |
|
| 928 |
#: includes/widgets/class-dlm-widget-downloads.php:177
|
| 929 |
msgid "Limit"
|
| 930 |
+
msgstr "Limit"
|
| 931 |
|
| 932 |
#: includes/widgets/class-dlm-widget-downloads.php:184
|
| 933 |
msgid "Output template"
|
| 955 |
|
| 956 |
#: includes/widgets/class-dlm-widget-downloads.php:211
|
| 957 |
msgid "Order"
|
| 958 |
+
msgstr "Reihenfolge"
|
| 959 |
|
| 960 |
#: includes/widgets/class-dlm-widget-downloads.php:215
|
| 961 |
msgid "ASC"
|
languages/download-monitor-nl_NL.mo
CHANGED
|
Binary file
|
languages/download-monitor-nl_NL.po
CHANGED
|
@@ -7,9 +7,9 @@ msgstr ""
|
|
| 7 |
"Project-Id-Version: Download Monitor\n"
|
| 8 |
"Report-Msgid-Bugs-To: https://github.com/download-monitor/download-monitor/issues\n"
|
| 9 |
"POT-Creation-Date: 2015-03-22 12:53:18+00:00\n"
|
| 10 |
-
"PO-Revision-Date: 2015-
|
| 11 |
"Last-Translator: Barry Kooij <mail@barrykooij.nl>\n"
|
| 12 |
-
"Language-Team: Dutch (Netherlands) (http://www.transifex.com/
|
| 13 |
"MIME-Version: 1.0\n"
|
| 14 |
"Content-Type: text/plain; charset=UTF-8\n"
|
| 15 |
"Content-Transfer-Encoding: 8bit\n"
|
|
@@ -997,7 +997,7 @@ msgstr "Download “%s”"
|
|
| 997 |
msgid "Downloaded 1 time"
|
| 998 |
msgid_plural "Downloaded %d times"
|
| 999 |
msgstr[0] "% keer gedownload"
|
| 1000 |
-
msgstr[1] "% keer gedownload"
|
| 1001 |
|
| 1002 |
#. Plugin Name of the plugin/theme
|
| 1003 |
msgid "Download Monitor"
|
| 7 |
"Project-Id-Version: Download Monitor\n"
|
| 8 |
"Report-Msgid-Bugs-To: https://github.com/download-monitor/download-monitor/issues\n"
|
| 9 |
"POT-Creation-Date: 2015-03-22 12:53:18+00:00\n"
|
| 10 |
+
"PO-Revision-Date: 2015-07-09 09:39+0000\n"
|
| 11 |
"Last-Translator: Barry Kooij <mail@barrykooij.nl>\n"
|
| 12 |
+
"Language-Team: Dutch (Netherlands) (http://www.transifex.com/p/download-monitor/language/nl_NL/)\n"
|
| 13 |
"MIME-Version: 1.0\n"
|
| 14 |
"Content-Type: text/plain; charset=UTF-8\n"
|
| 15 |
"Content-Transfer-Encoding: 8bit\n"
|
| 997 |
msgid "Downloaded 1 time"
|
| 998 |
msgid_plural "Downloaded %d times"
|
| 999 |
msgstr[0] "% keer gedownload"
|
| 1000 |
+
msgstr[1] "%d keer gedownload"
|
| 1001 |
|
| 1002 |
#. Plugin Name of the plugin/theme
|
| 1003 |
msgid "Download Monitor"
|
readme.txt
CHANGED
|
@@ -1,10 +1,10 @@
|
|
| 1 |
=== Download Monitor ===
|
| 2 |
-
Contributors: barrykooij, mikejolley
|
| 3 |
-
Donate link:
|
| 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.2.
|
| 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,30 +107,54 @@ Legacy versions can still be [found here](http://wordpress.org/plugins/download-
|
|
| 107 |
|
| 108 |
== Changelog ==
|
| 109 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 110 |
= 1.7.2: April 29, 2015 =
|
| 111 |
-
* Fixed a bug that caused logs not to be displayed in WP 4.2.
|
| 112 |
|
| 113 |
= 1.7.1: April 17, 2015 =
|
| 114 |
-
* Pass third arg to add_query_arg to prevent XSS.
|
| 115 |
|
| 116 |
= 1.7.0: March 22, 2015 =
|
| 117 |
-
* Feature
|
| 118 |
-
* Feature
|
| 119 |
-
*
|
| 120 |
-
* Tweak
|
| 121 |
-
* Tweak
|
| 122 |
-
* Tweak
|
| 123 |
-
* Tweak
|
| 124 |
-
* Tweak
|
| 125 |
-
* Tweak
|
| 126 |
-
* Tweak
|
| 127 |
-
* Tweak
|
| 128 |
-
* Tweak
|
| 129 |
-
* Tweak
|
| 130 |
-
* Tweak
|
| 131 |
-
* Tweak
|
| 132 |
-
* Tweak
|
| 133 |
-
* Tweak
|
| 134 |
|
| 135 |
= 1.6.4: March 8, 2015 =
|
| 136 |
* Removed unused library jqueryFileTree.
|
| 1 |
=== Download Monitor ===
|
| 2 |
+
Contributors: never5, barrykooij, mikejolley
|
| 3 |
+
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.2.2
|
| 7 |
+
Stable tag: 1.8.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.8.0: July 10, 2015 =
|
| 111 |
+
* Feature: Added option to only count downloads and add logs from unique ip addresses, props [Matt Mower](https://github.com/mdmower).
|
| 112 |
+
* Feature: It's now possible to display downloads with the downloads shortcode that are in all given categories (AND instead of OR) by using + (plus_ instead of , (comma).
|
| 113 |
+
* Feature: Display nginx rules if server is running nginx.
|
| 114 |
+
* Feature: Added Multisite / Network compatibility.
|
| 115 |
+
* Feature: Redone blacklist IP feature, now available in the 'Access' tab.
|
| 116 |
+
* Feature: Redone blacklist user agent feature, now available in the 'Access' tab.
|
| 117 |
+
* Tweak: Added icon support for Office X Excel & PPT extensions.
|
| 118 |
+
* Tweak: Run thumbnail compatibility method later to allowed themes to register first.
|
| 119 |
+
* Tweak: Prefixed admin CSS classes to prevent plugin conflicts.
|
| 120 |
+
* Tweak: Fix checking shortcodes for empty version strings, props [Matt Mower](https://github.com/mdmower).
|
| 121 |
+
* Tweak: Fixed a call of trigger() in DLM_Download_Handler, props [Matt Mower](https://github.com/mdmower).
|
| 122 |
+
* Tweak: Remove trailing space from downloads count, props [Matt Mower](https://github.com/mdmower).
|
| 123 |
+
* Tweak: Directory browser items are now always in alphabetical order, props [Matt Mower](https://github.com/mdmower).
|
| 124 |
+
* Tweak: The 60 seconds download counter increment cool down is now set to version ID instead of download ID, props [Matt Mower](https://github.com/mdmower).
|
| 125 |
+
* Tweak: Created and implemented local independent basename fixing issues with Cyrillic alphabets.
|
| 126 |
+
* Tweak: Made user agents regexes filterable: dlm_ua_parser_regexes.
|
| 127 |
+
* Tweak: Optimized log status icons, also fixes WP emoji conflict.
|
| 128 |
+
* Tweak: Members Only check now only does check if requester can still download.
|
| 129 |
+
* Tweak: Replaced PHP4 constructors in widget.
|
| 130 |
+
* Tweak: Added Danish translation.
|
| 131 |
+
* Tweak: Updated Dutch translation.
|
| 132 |
+
* Tweak: Updated German translation.
|
| 133 |
+
|
| 134 |
= 1.7.2: April 29, 2015 =
|
| 135 |
+
* Tweak: Fixed a bug that caused logs not to be displayed in WP 4.2.
|
| 136 |
|
| 137 |
= 1.7.1: April 17, 2015 =
|
| 138 |
+
* Tweak: Pass third arg to add_query_arg to prevent XSS.
|
| 139 |
|
| 140 |
= 1.7.0: March 22, 2015 =
|
| 141 |
+
* Feature: Added 'Download Information' meta box to edit download screen that displays useful download information.
|
| 142 |
+
* Feature: Error message shown when visitor has no access to download is now an option.
|
| 143 |
+
* Tweak: Fixing a bug where versions with spaces did not work, versions now are checked on a sanitized title.
|
| 144 |
+
* Tweak: Viewing logs now needs custom capability: dlm_manage_logs (automatically added to administrators).
|
| 145 |
+
* Tweak: Improved hotlink prevention check.
|
| 146 |
+
* Tweak: Extension page tweaks.
|
| 147 |
+
* Tweak: Added $download_id argument to dlm_hotlink_redirect filter.
|
| 148 |
+
* Tweak: Moved hash settings to their own tab.
|
| 149 |
+
* Tweak: Moved 'X-Accel-Redirect / X-Sendfile' and 'Prevent hotlinking' settings to General tab.
|
| 150 |
+
* Tweak: Optimized the Insert Download button.
|
| 151 |
+
* Tweak: Introduced a multi-byte-safe pathinfo so we can handle 'special' filenames.
|
| 152 |
+
* Tweak: Also set the post_date_gmt value for version dates.
|
| 153 |
+
* Tweak: Updated French translation. Props Li-An.
|
| 154 |
+
* Tweak: Updated German translation. Props maphy-psd.
|
| 155 |
+
* Tweak: Updated Swedish translation. Props EyesX.
|
| 156 |
+
* Tweak: Update Slovakian translation. Props attitude.
|
| 157 |
+
* Tweak: Added Dutch translation.
|
| 158 |
|
| 159 |
= 1.6.4: March 8, 2015 =
|
| 160 |
* Removed unused library jqueryFileTree.
|
templates/content-download-filename.php
CHANGED
|
@@ -10,6 +10,5 @@ global $dlm_download;
|
|
| 10 |
printf( __( 'Version %s', 'download-monitor' ), $dlm_download->get_the_version_number() );
|
| 11 |
} ?>" href="<?php $dlm_download->the_download_link(); ?>" rel="nofollow">
|
| 12 |
<?php $dlm_download->the_filename(); ?>
|
| 13 |
-
(<?php printf( _n( '1 download', '%d downloads', $dlm_download->get_the_download_count(), 'download-monitor' ), $dlm_download->get_the_download_count() ) ?>
|
| 14 |
-
)
|
| 15 |
</a>
|
| 10 |
printf( __( 'Version %s', 'download-monitor' ), $dlm_download->get_the_version_number() );
|
| 11 |
} ?>" href="<?php $dlm_download->the_download_link(); ?>" rel="nofollow">
|
| 12 |
<?php $dlm_download->the_filename(); ?>
|
| 13 |
+
(<?php printf( _n( '1 download', '%d downloads', $dlm_download->get_the_download_count(), 'download-monitor' ), $dlm_download->get_the_download_count() ) ?>)
|
|
|
|
| 14 |
</a>
|
templates/content-download.php
CHANGED
|
@@ -9,6 +9,5 @@ global $dlm_download;
|
|
| 9 |
printf( __( 'Version %s', 'download-monitor' ), $dlm_download->get_the_version_number() );
|
| 10 |
} ?>" href="<?php $dlm_download->the_download_link(); ?>" rel="nofollow">
|
| 11 |
<?php $dlm_download->the_title(); ?>
|
| 12 |
-
(<?php printf( _n( '1 download', '%d downloads', $dlm_download->get_the_download_count(), 'download-monitor' ), $dlm_download->get_the_download_count() ) ?>
|
| 13 |
-
)
|
| 14 |
</a>
|
| 9 |
printf( __( 'Version %s', 'download-monitor' ), $dlm_download->get_the_version_number() );
|
| 10 |
} ?>" href="<?php $dlm_download->the_download_link(); ?>" rel="nofollow">
|
| 11 |
<?php $dlm_download->the_title(); ?>
|
| 12 |
+
(<?php printf( _n( '1 download', '%d downloads', $dlm_download->get_the_download_count(), 'download-monitor' ), $dlm_download->get_the_download_count() ) ?>)
|
|
|
|
| 13 |
</a>
|
