Version Description
Download this release
Release Info
Developer | barrykooij |
Plugin | Download Monitor |
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>
|