Changeset 3498092
- Timestamp:
- 04/03/2026 09:46:00 AM (2 days ago)
- Location:
- gdpr-press
- Files:
-
- 88 added
- 12 deleted
- 17 edited
- 1 copied
-
assets/banner-1544x500.png (modified) (1 prop) (previous)
-
assets/banner-772x250.png (modified) (1 prop) (previous)
-
assets/icon-256x256.png (modified) (1 prop) (previous)
-
assets/icon-512x512.png (modified) (1 prop) (previous)
-
assets/screenshot-1.png (modified) (1 prop) (previous)
-
assets/screenshot-2.png (modified) (1 prop) (previous)
-
assets/screenshot-3.png (modified) (1 prop) (previous)
-
assets/screenshot-4.png (modified) (1 prop) (previous)
-
assets/screenshot-5.png (modified) (1 prop) (previous)
-
tags/1.3.0 (copied) (copied from gdpr-press/trunk)
-
tags/1.3.0/assets/css/gdpr-press-admin-google-fonts.css (added)
-
tags/1.3.0/assets/css/gdpr-press-admin-google-fonts.min.css (added)
-
tags/1.3.0/assets/css/gdpress-admin.css (modified) (1 diff)
-
tags/1.3.0/assets/css/gdpress-admin.css.map (deleted)
-
tags/1.3.0/assets/css/gdpress-admin.less (deleted)
-
tags/1.3.0/assets/css/gdpress-admin.min.css (added)
-
tags/1.3.0/assets/fonts (added)
-
tags/1.3.0/assets/fonts/poppins-normal-latin-500.woff2 (added)
-
tags/1.3.0/assets/fonts/poppins-normal-latin-600.woff2 (added)
-
tags/1.3.0/assets/fonts/poppins-normal-latin-800.woff2 (added)
-
tags/1.3.0/assets/fonts/public-sans-italic-latin.woff2 (added)
-
tags/1.3.0/assets/fonts/public-sans-normal-latin.woff2 (added)
-
tags/1.3.0/assets/images/logo-color.png (deleted)
-
tags/1.3.0/assets/images/logo-color@2x.png (added)
-
tags/1.3.0/assets/js/gdpress-admin.js (modified) (1 diff)
-
tags/1.3.0/assets/js/gdpress-admin.min.js (added)
-
tags/1.3.0/bin (added)
-
tags/1.3.0/bin/install-wp-tests.sh (added)
-
tags/1.3.0/ffwp-autoload.php (deleted)
-
tags/1.3.0/gdpr-press.php (modified) (2 diffs)
-
tags/1.3.0/includes (deleted)
-
tags/1.3.0/readme.md (deleted)
-
tags/1.3.0/readme.txt (modified) (8 diffs)
-
tags/1.3.0/src (added)
-
tags/1.3.0/src/Admin (added)
-
tags/1.3.0/src/Admin.php (added)
-
tags/1.3.0/src/Admin/Ajax.php (added)
-
tags/1.3.0/src/Admin/CacheManager.php (added)
-
tags/1.3.0/src/Admin/Notice.php (added)
-
tags/1.3.0/src/Admin/Settings (added)
-
tags/1.3.0/src/Admin/Settings.php (added)
-
tags/1.3.0/src/Admin/Settings/Builder.php (added)
-
tags/1.3.0/src/Admin/Settings/Help.php (added)
-
tags/1.3.0/src/Admin/Settings/Manage.php (added)
-
tags/1.3.0/src/AdminBar.php (added)
-
tags/1.3.0/src/Constants.php (added)
-
tags/1.3.0/src/Download.php (added)
-
tags/1.3.0/src/Helper.php (added)
-
tags/1.3.0/src/OutputProcessor.php (added)
-
tags/1.3.0/src/Plugin.php (added)
-
tags/1.3.0/src/Setup.php (added)
-
tags/1.3.0/vendor (added)
-
tags/1.3.0/vendor/autoload.php (added)
-
tags/1.3.0/vendor/composer (added)
-
tags/1.3.0/vendor/composer/ClassLoader.php (added)
-
tags/1.3.0/vendor/composer/InstalledVersions.php (added)
-
tags/1.3.0/vendor/composer/LICENSE (added)
-
tags/1.3.0/vendor/composer/autoload_classmap.php (added)
-
tags/1.3.0/vendor/composer/autoload_namespaces.php (added)
-
tags/1.3.0/vendor/composer/autoload_psr4.php (added)
-
tags/1.3.0/vendor/composer/autoload_real.php (added)
-
tags/1.3.0/vendor/composer/autoload_static.php (added)
-
tags/1.3.0/vendor/composer/installed.json (added)
-
tags/1.3.0/vendor/composer/installed.php (added)
-
trunk/assets/css/gdpr-press-admin-google-fonts.css (added)
-
trunk/assets/css/gdpr-press-admin-google-fonts.min.css (added)
-
trunk/assets/css/gdpress-admin.css (modified) (1 diff)
-
trunk/assets/css/gdpress-admin.css.map (deleted)
-
trunk/assets/css/gdpress-admin.less (deleted)
-
trunk/assets/css/gdpress-admin.min.css (added)
-
trunk/assets/fonts (added)
-
trunk/assets/fonts/poppins-normal-latin-500.woff2 (added)
-
trunk/assets/fonts/poppins-normal-latin-600.woff2 (added)
-
trunk/assets/fonts/poppins-normal-latin-800.woff2 (added)
-
trunk/assets/fonts/public-sans-italic-latin.woff2 (added)
-
trunk/assets/fonts/public-sans-normal-latin.woff2 (added)
-
trunk/assets/images/logo-color.png (deleted)
-
trunk/assets/images/logo-color@2x.png (added)
-
trunk/assets/js/gdpress-admin.js (modified) (1 diff)
-
trunk/assets/js/gdpress-admin.min.js (added)
-
trunk/bin (added)
-
trunk/bin/install-wp-tests.sh (added)
-
trunk/ffwp-autoload.php (deleted)
-
trunk/gdpr-press.php (modified) (2 diffs)
-
trunk/includes (deleted)
-
trunk/readme.md (deleted)
-
trunk/readme.txt (modified) (8 diffs)
-
trunk/src (added)
-
trunk/src/Admin (added)
-
trunk/src/Admin.php (added)
-
trunk/src/Admin/Ajax.php (added)
-
trunk/src/Admin/CacheManager.php (added)
-
trunk/src/Admin/Notice.php (added)
-
trunk/src/Admin/Settings (added)
-
trunk/src/Admin/Settings.php (added)
-
trunk/src/Admin/Settings/Builder.php (added)
-
trunk/src/Admin/Settings/Help.php (added)
-
trunk/src/Admin/Settings/Manage.php (added)
-
trunk/src/AdminBar.php (added)
-
trunk/src/Constants.php (added)
-
trunk/src/Download.php (added)
-
trunk/src/Helper.php (added)
-
trunk/src/OutputProcessor.php (added)
-
trunk/src/Plugin.php (added)
-
trunk/src/Setup.php (added)
-
trunk/vendor (added)
-
trunk/vendor/autoload.php (added)
-
trunk/vendor/composer (added)
-
trunk/vendor/composer/ClassLoader.php (added)
-
trunk/vendor/composer/InstalledVersions.php (added)
-
trunk/vendor/composer/LICENSE (added)
-
trunk/vendor/composer/autoload_classmap.php (added)
-
trunk/vendor/composer/autoload_namespaces.php (added)
-
trunk/vendor/composer/autoload_psr4.php (added)
-
trunk/vendor/composer/autoload_real.php (added)
-
trunk/vendor/composer/autoload_static.php (added)
-
trunk/vendor/composer/installed.json (added)
-
trunk/vendor/composer/installed.php (added)
Legend:
- Unmodified
- Added
- Removed
-
gdpr-press/assets/banner-1544x500.png
-
Property
svn:mime-type
changed from
application/octet-streamtoimage/png
-
Property
svn:mime-type
changed from
-
gdpr-press/assets/banner-772x250.png
-
Property
svn:mime-type
changed from
application/octet-streamtoimage/png
-
Property
svn:mime-type
changed from
-
gdpr-press/assets/icon-256x256.png
-
Property
svn:mime-type
changed from
application/octet-streamtoimage/png
-
Property
svn:mime-type
changed from
-
gdpr-press/assets/icon-512x512.png
-
Property
svn:mime-type
changed from
application/octet-streamtoimage/png
-
Property
svn:mime-type
changed from
-
gdpr-press/assets/screenshot-1.png
-
Property
svn:mime-type
changed from
application/octet-streamtoimage/png
-
Property
svn:mime-type
changed from
-
gdpr-press/assets/screenshot-2.png
-
Property
svn:mime-type
changed from
application/octet-streamtoimage/png
-
Property
svn:mime-type
changed from
-
gdpr-press/assets/screenshot-3.png
-
Property
svn:mime-type
changed from
application/octet-streamtoimage/png
-
Property
svn:mime-type
changed from
-
gdpr-press/assets/screenshot-4.png
-
Property
svn:mime-type
changed from
application/octet-streamtoimage/png
-
Property
svn:mime-type
changed from
-
gdpr-press/assets/screenshot-5.png
-
Property
svn:mime-type
changed from
application/octet-streamtoimage/png
-
Property
svn:mime-type
changed from
-
gdpr-press/tags/1.3.0/assets/css/gdpress-admin.css
r2689051 r3498092 2 2 * @package GDPRess 3 3 * @author Daan van den Bergh 4 * https://ffw.press 5 */ 6 #gdpress-help-form { 7 max-width: 1350px; 8 } 9 #gdpress-manage-form { 10 max-width: 1350px; 11 } 12 #gdpress-manage-form .gdpress.manage { 13 padding: 25px 50px; 14 max-width: 1024px; 15 margin: 20px auto 20px 220px; 16 overflow: visible; 17 position: relative; 18 } 19 #gdpress-manage-form .gdpress.manage p { 20 text-align: center; 21 } 22 #gdpress-manage-form .gdpress.manage .option-title { 23 position: absolute; 24 left: -220px; 25 top: 0; 26 font-weight: 600; 27 font-size: 14px; 28 color: #1d2327; 29 } 30 #gdpress-manage-form .gdpress.manage .tooltip { 31 position: relative; 32 font-size: 16px; 33 line-height: 20px; 34 } 35 #gdpress-manage-form .gdpress.manage .tooltip .tooltip-text { 36 visibility: hidden; 37 position: absolute; 38 top: 100%; 39 left: 100%; 40 z-index: 10000; 41 background-color: rgba(0, 0, 0, 0.75); 42 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; 43 font-size: 0.8em; 44 color: #fff; 45 line-height: 1.5; 46 width: 250px; 47 padding: 10px; 48 margin-left: -125px; 49 border-radius: 3px; 50 } 51 #gdpress-manage-form .gdpress.manage .tooltip .tooltip-text a { 52 color: white; 53 } 54 #gdpress-manage-form .gdpress.manage .tooltip:hover .tooltip-text { 55 visibility: visible; 56 } 57 #gdpress-manage-form .gdpress.manage table { 58 width: 100%; 59 max-width: 1024px; 60 border-collapse: collapse; 61 } 62 #gdpress-manage-form .gdpress.manage table td, 63 #gdpress-manage-form .gdpress.manage table th { 64 line-height: 2.5; 65 padding: 6px 12px; 66 } 67 #gdpress-manage-form .gdpress.manage table td.title, 68 #gdpress-manage-form .gdpress.manage table th.title { 69 padding: 0; 70 line-height: 1; 71 border-bottom: 1px solid #c3c4c7; 72 } 73 #gdpress-manage-form .gdpress.manage table td.downloaded, 74 #gdpress-manage-form .gdpress.manage table th.downloaded, 75 #gdpress-manage-form .gdpress.manage table td.exclude, 76 #gdpress-manage-form .gdpress.manage table th.exclude { 77 max-width: 25px; 78 } 79 #gdpress-manage-form .gdpress.manage table td.downloaded i, 80 #gdpress-manage-form .gdpress.manage table th.downloaded i, 81 #gdpress-manage-form .gdpress.manage table td.exclude i, 82 #gdpress-manage-form .gdpress.manage table th.exclude i { 83 vertical-align: -5px; 84 } 85 #gdpress-manage-form .gdpress.manage table td.downloaded i.dashicons-yes, 86 #gdpress-manage-form .gdpress.manage table th.downloaded i.dashicons-yes, 87 #gdpress-manage-form .gdpress.manage table td.exclude i.dashicons-yes, 88 #gdpress-manage-form .gdpress.manage table th.exclude i.dashicons-yes { 89 color: #2ECC40; 90 } 91 #gdpress-manage-form .gdpress.manage table td.downloaded i.dashicons-info-outline, 92 #gdpress-manage-form .gdpress.manage table th.downloaded i.dashicons-info-outline, 93 #gdpress-manage-form .gdpress.manage table td.exclude i.dashicons-info-outline, 94 #gdpress-manage-form .gdpress.manage table th.exclude i.dashicons-info-outline { 95 color: #201e14; 96 } 97 #gdpress-manage-form .gdpress.manage table td.downloaded input, 98 #gdpress-manage-form .gdpress.manage table th.downloaded input, 99 #gdpress-manage-form .gdpress.manage table td.exclude input, 100 #gdpress-manage-form .gdpress.manage table th.exclude input { 101 vertical-align: -3px; 102 } 103 #gdpress-manage-form .gdpress.manage table td.name, 104 #gdpress-manage-form .gdpress.manage table th.name { 105 display: inline-block; 106 white-space: nowrap; 107 overflow: hidden; 108 text-overflow: ellipsis; 109 max-width: 250px; 110 width: 15%; 111 } 112 #gdpress-manage-form .gdpress.manage table td.href, 113 #gdpress-manage-form .gdpress.manage table th.href { 114 display: inline-block; 115 white-space: nowrap; 116 overflow: hidden; 117 text-overflow: ellipsis; 118 max-width: 362px; 119 width: 35%; 120 } 121 #gdpress-manage-form .gdpress.manage table td.href a, 122 #gdpress-manage-form .gdpress.manage table th.href a { 123 text-decoration: none; 124 color: #3c434a; 125 } 126 #gdpress-manage-form .gdpress.manage table tbody th { 127 text-align: left; 128 } 129 #gdpress-manage-form .gdpress.manage table tbody tr.even { 130 background-color: #f0f0f1; 131 } 132 #gdpress-manage-form .gdpress.manage table tbody tr.info { 133 background-color: #C2EEFF; 134 } 135 #gdpress-manage-form .gdpress.manage table tbody tr.warning { 136 background-color: #FFEF87; 137 } 138 #gdpress-manage-form .button-cancel { 139 color: #a00; 140 text-decoration: none; 141 border-color: transparent; 142 box-shadow: none; 143 background: 0 0; 144 border-radius: 3px; 145 white-space: nowrap; 146 padding: 1px 10px !important; 147 } 148 #gdpress-manage-form .button-cancel:hover { 149 cursor: pointer; 150 background: #d54e21; 151 color: #fff; 152 border-color: #d54e21; 153 } 154 #gdpress-help-form .postbox { 155 padding: 0 15px 5px; 156 } 157 #gdpress-help-form .postbox .column-container { 158 display: flex; 159 flex-flow: row wrap; 160 justify-content: space-between; 161 } 162 #gdpress-help-form .postbox .column-container .column ul li { 163 margin-bottom: 10px; 164 } 165 #gdpress-help-form .postbox .column-container .column ul li:last-child { 166 margin-bottom: none; 167 } 168 #gdpress-help-form .postbox .column-container .column ul li a { 169 text-decoration: none; 170 line-height: 1.45; 171 } 172 #gdpress-help-form .postbox .column-container .column ul li a i.dashicons { 173 margin-right: 5px; 174 color: #646970; 175 } 176 #gdpress-help-form .postbox .column-container .column.last { 177 margin-right: 45px; 178 } 179 #gdpress-help-form .postbox .column-container .column.last .signature { 180 text-align: center; 181 } 182 #gdpress-help-form .postbox .column-container .column.last .signature .dashicons-heart { 183 color: #FF4136; 184 } 4 * https://daan.dev 5 */ 6 7 /** 8 * Typography 9 */ 10 @import "gdpr-press-admin-google-fonts.min.css"; 11 12 #wpwrap { 13 background-color: rgb(248 250 252 / 1); 14 } 15 16 .gdpress { 17 font-family: "Public Sans", Arial, sans-serif; 18 max-width: 1350px; 19 } 20 21 .gdpress h1 { 22 font-family: Poppins, Verdana, sans-serif; 23 font-weight: 800; 24 } 25 26 .gdpress h2, 27 .gdpress h3, 28 .gdpress h4, 29 .gdpress h5, 30 .gdpress h6 { 31 font-family: Poppins, Verdana, sans-serif; 32 font-weight: 600; 33 } 34 35 /** 36 * Buttons 37 */ 38 .gdpress .button { 39 color: #00adda; 40 font-family: Poppins, Verdana, sans-serif; 41 border-radius: 10px; 42 border: none; 43 font-weight: 500; 44 padding: 7px 20px; 45 margin-right: 1em; 46 background-color: transparent; 47 } 48 49 .gdpress .button:hover { 50 background-color: transparent; 51 } 52 53 .gdpress .button-primary { 54 color: white; 55 background-color: #00adda; 56 } 57 58 .gdpress .button-primary:hover { 59 background-color: #09c; 60 } 61 62 .gdpress .button-cancel { 63 color: #a00; 64 text-decoration: none; 65 border-color: transparent; 66 box-shadow: none; 67 background: 0 0; 68 white-space: nowrap; 69 } 70 71 .gdpress .button-cancel:hover { 72 cursor: pointer; 73 background: #d54e21; 74 color: #fff; 75 border-color: #d54e21; 76 border-radius: 10px; 77 } 78 79 .gdpress #submit { 80 background: #00adda; 81 border: 0; 82 color: #fff; 83 cursor: pointer; 84 } 85 86 .gdpress #submit:hover { 87 background-color: #0099cc; 88 } 89 90 /** 91 * Navigation 92 */ 93 .gdpress h2.gdpress-nav { 94 border-bottom: 0; 95 padding-bottom: 3px; 96 } 97 98 .gdpress h2.gdpress-nav a { 99 border: 0; 100 background-color: transparent; 101 font-weight: 600; 102 box-shadow: none; 103 } 104 105 .gdpress h2.gdpress-nav .nav-tab { 106 color: #000; 107 } 108 109 .gdpress h2.gdpress-nav .nav-tab:last-child { 110 float: right; 111 } 112 113 .gdpress h2.gdpress-nav .nav-tab-active { 114 color: #00adda; 115 } 116 117 .gdpress h2.gdpress-nav .nav-tab:hover { 118 color: #00adda; 119 } 120 121 .gdpress-nav .dashicons-before:before { 122 margin-right: 0.25em; 123 line-height: 1.15em; 124 } 125 126 .gdpress form { 127 max-width: 1350px; 128 } 129 130 .gdpress form .dashicons { 131 line-height: 15px; 132 } 133 134 /** 135 * Containers 136 */ 137 .gdpress-manage-container, 138 .gdpress-settings-container, 139 .gdpress-help-container { 140 padding: 5px 25px 25px; 141 margin-bottom: 30px; 142 box-shadow: 0 10px 20px 1px #ccc; 143 border: 0; 144 border-top: 4px solid #00adda; 145 border-radius: 10px; 146 background: #fff; 147 } 148 149 .gdpress-manage-container .option-title { 150 display: none; 151 } 152 153 .gdpress-container { 154 margin-top: 1.5em; 155 } 156 157 .gdpress-container p { 158 text-align: center; 159 margin-bottom: 2em; 160 } 161 162 /** 163 * Table styles (Preserved) 164 */ 165 .gdpress-manage-container table { 166 width: 100%; 167 border-collapse: collapse; 168 } 169 170 .gdpress-manage-container table td, 171 .gdpress-manage-container table th { 172 line-height: 2.5; 173 padding: 6px 12px; 174 } 175 176 .gdpress-manage-container table .gdpress-manage-cache { 177 border-top: 1px solid #c3c4c7; 178 } 179 180 .gdpress-manage-container table .gdpress-manage-cache th { 181 font-size: 14px; 182 color: #1d2327; 183 padding: 0; 184 } 185 186 .gdpress-manage-container table td.title, 187 .gdpress-manage-container table th.title { 188 padding: 0; 189 line-height: 1; 190 border-top: 1px solid #c3c4c7; 191 } 192 193 .gdpress-manage-container table td.downloaded, 194 .gdpress-manage-container table th.downloaded, 195 .gdpress-manage-container table td.exclude, 196 .gdpress-manage-container table th.exclude { 197 max-width: 25px; 198 } 199 200 .gdpress-manage-container table td.downloaded i, 201 .gdpress-manage-container table th.downloaded i, 202 .gdpress-manage-container table td.exclude i, 203 .gdpress-manage-container table th.exclude i { 204 vertical-align: -5px; 205 } 206 207 .gdpress-manage-container table td.downloaded i.dashicons-yes, 208 .gdpress-manage-container table td.exclude i.dashicons-yes { 209 color: #2ECC40; 210 } 211 212 .gdpress-manage-container table td.downloaded i.dashicons-info-outline, 213 .gdpress-manage-container table td.exclude i.dashicons-info-outline { 214 color: #201e14; 215 } 216 217 .gdpress-manage-container table td.downloaded input, 218 .gdpress-manage-container table td.exclude input { 219 vertical-align: -3px; 220 } 221 222 .gdpress-manage-container table td.name, 223 .gdpress-manage-container table th.name { 224 display: inline-block; 225 white-space: nowrap; 226 overflow: hidden; 227 text-overflow: ellipsis; 228 max-width: 250px; 229 width: 15%; 230 } 231 232 .gdpress-manage-container table td.href, 233 .gdpress-manage-container table th.href { 234 display: inline-block; 235 white-space: nowrap; 236 overflow: hidden; 237 text-overflow: ellipsis; 238 max-width: 362px; 239 width: 35%; 240 } 241 242 .gdpress-manage-container table td.href a { 243 text-decoration: none; 244 color: #3c434a; 245 } 246 247 .gdpress-manage-container table tbody th { 248 text-align: left; 249 } 250 251 .gdpress-manage-container table tbody tr.even { 252 background-color: #f0f0f1; 253 } 254 255 /* Blue highlighted rows for Google Fonts upsell */ 256 .gdpress-manage-container table tbody tr.info { 257 background-color: #C2EEFF; 258 } 259 260 /* Yellow highlighted rows for denylisted resources */ 261 .gdpress-manage-container table tbody tr.warning { 262 background-color: #FFEF87; 263 } 264 265 /** 266 * Tooltip 267 */ 268 .gdpress-manage-container .tooltip { 269 position: relative; 270 font-size: 16px; 271 line-height: 20px; 272 } 273 274 .gdpress-manage-container .tooltip .tooltip-text { 275 visibility: hidden; 276 position: absolute; 277 top: 100%; 278 left: 100%; 279 z-index: 10000; 280 background-color: rgba(0, 0, 0, 0.75); 281 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; 282 font-size: 0.8em; 283 color: #fff; 284 line-height: 1.5; 285 width: 250px; 286 padding: 10px; 287 margin-left: -30px; 288 border-radius: 3px; 289 } 290 291 .gdpress-manage-container .tooltip .tooltip-text a { 292 color: white; 293 } 294 295 .gdpress-manage-container .tooltip:hover .tooltip-text { 296 visibility: visible; 297 } 298 299 /** 300 * Help Tab Specific 301 */ 302 .gdpress-help-container .postbox { 303 padding: 0; 304 box-shadow: none; 305 border: 0; 306 } 307 308 .gdpress-help-container .column-container { 309 display: flex; 310 flex-flow: row wrap; 311 justify-content: space-between; 312 } 313 314 .gdpress-help-container .column ul li { 315 margin-bottom: 10px; 316 } 317 318 .gdpress-help-container .column ul li a { 319 text-decoration: none; 320 line-height: 1.45; 321 } 322 323 .gdpress-help-container .column ul li a i.dashicons { 324 margin-right: 5px; 325 color: #646970; 326 } 327 328 .gdpress-help-container .column.last { 329 margin-right: 45px; 330 } 331 332 .gdpress-help-container .column.last .signature { 333 text-align: center; 334 } 335 336 .gdpress-help-container .column.last .signature-image { 337 width: 185px; 338 } 339 185 340 /** 186 341 * Loader 187 342 */ 188 343 .gdpress-loading { 189 position: fixed; 190 background-color: rgba(255, 255, 255, 0.6); 191 width: 100%; 192 height: 100%; 193 top: 0; 194 left: 0; 195 text-align: center; 196 } 344 position: fixed; 345 background-color: rgba(255, 255, 255, 0.6); 346 width: 100%; 347 height: 100%; 348 top: 0; 349 left: 0; 350 text-align: center; 351 } 352 197 353 .gdpress-loading .spinner { 198 top: 50%; 199 left: 50%; 200 position: absolute; 201 -ms-transform: translateX(-50%); 202 transform: translateX(-50%); 203 } 204 /** 205 * Welcome Block 206 */ 354 top: 50%; 355 left: 50%; 356 position: absolute; 357 -ms-transform: translateX(-50%); 358 transform: translateX(-50%); 359 } 360 207 361 #footer-thankyou a { 208 vertical-align: -0.65em; 209 } 362 vertical-align: -0.65em; 363 } 364 210 365 #footer-thankyou .dashicons.ffwp-heart { 211 vertical-align: middle; 212 } 213 #footer-thankyou .dashicons.ffwp-heart:before { 214 color: #FF4136; 215 } 366 vertical-align: middle; 367 color: #FF4136; 368 } 369 216 370 #footer-thankyou .signature-image { 217 width: 96px; 218 } 371 width: 96px; 372 } 373 219 374 /*# sourceMappingURL=./gdpress-admin.css.map */ -
gdpr-press/tags/1.3.0/assets/js/gdpress-admin.js
r2679157 r3498092 2 2 * @package GDPRess 3 3 * @author Daan van den Bergh 4 * https:// ffw.press4 * https://daan.dev 5 5 */ 6 6 jQuery(document).ready(function ($) { -
gdpr-press/tags/1.3.0/gdpr-press.php
r2780136 r3498092 1 1 <?php 2 defined('ABSPATH') || exit;3 2 /** 4 3 * Plugin Name: GDPRess 5 4 * Plugin URI: https://wordpress.org/plugins/gdpr-press/ 6 5 * Description: Easily eliminate external requests with GDPRess. 7 * Version: 1. 2.38 * Author: Daan from FFW.Press9 * Author URI: https:// ffw.press6 * Version: 1.3.0 7 * Author: Daan from Daan.dev 8 * Author URI: https://daan.dev 10 9 * License: GPL2v2 or later 11 10 * Text Domain: gdpr-press 12 11 */ 13 12 14 define('GDPRESS_PLUGIN_DIR', plugin_dir_path(__FILE__)); 15 define('GDPRESS_PLUGIN_FILE', __FILE__); 16 define('GDPRESS_PLUGIN_BASENAME', plugin_basename(GDPRESS_PLUGIN_FILE)); 17 define('GDPRESS_STATIC_VERSION', '1.2.0'); 18 define('GDPRESS_DB_VERSION', '1.0.2'); 13 defined( 'ABSPATH' ) || exit; 14 15 define( 'GDPRESS_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); 16 define( 'GDPRESS_PLUGIN_FILE', __FILE__ ); 17 define( 'GDPRESS_PLUGIN_BASENAME', plugin_basename( GDPRESS_PLUGIN_FILE ) ); 18 define( 'GDPRESS_STATIC_VERSION', '1.2.0' ); 19 define( 'GDPRESS_DB_VERSION', '1.0.2' ); 19 20 20 21 /** … … 25 26 * @return mixed|void 26 27 */ 27 function gdpress_autoload($class) 28 { 29 $path = explode('_', $class); 30 31 if ($path[0] != 'Gdpress') { 32 return; 33 } 34 35 if (!class_exists('FFWP_Autoloader')) { 36 require_once(GDPRESS_PLUGIN_DIR . 'ffwp-autoload.php'); 37 } 38 39 $autoload = new FFWP_Autoloader($class); 40 41 return include GDPRESS_PLUGIN_DIR . 'includes/' . $autoload->load(); 42 } 43 44 spl_autoload_register('gdpress_autoload'); 28 require_once GDPRESS_PLUGIN_DIR . 'vendor/autoload.php'; 45 29 46 30 /** 47 31 * All systems GO!!! 48 32 * 49 * @return G dpress33 * @return GDPRess\Plugin 50 34 */ 51 function gdpr_press_init() 52 { 53 static $gdpress = null; 54 55 if ($gdpress === null) { 56 $gdpress = new Gdpress(); 57 } 58 59 return $gdpress; 60 } 61 62 gdpr_press_init(); 35 $gdpress = new GDPRess\Plugin(); -
gdpr-press/tags/1.3.0/readme.txt
r2780136 r3498092 1 1 === GDPRess | Eliminate external requests to increase GDPR compliance === 2 2 Contributors: DaanvandenBergh 3 Tags: gdpr, ds vgo, avg, external, 3rd party, requests, minimize4 Requires at least: 5. 85 Tested up to: 5.96 Stable tag: 1. 2.33 Tags: gdpr, dsgvo, avg, external, 3rd party, requests, minimize 4 Requires at least: 5.9 5 Tested up to: 6.9 6 Stable tag: 1.3.0 7 7 Requires PHP: 7.2 8 8 License: GPLv2 or later … … 11 11 == Description == 12 12 13 In January, 2022 [a German court ruled](https://ffw.press/blog/gdpr/google-fonts-violates-gdpr-germany/) that a website owner was in breach of GDPR and should pay a € 100,- fine, because embedded Google Fonts were used, essentially transferring the user's personal data (IP address) without the user's prior consent. 13 **GDPRess can be downloaded for free without any paid subscription from [the official WordPress repository](https://wordpress.org/plugins/gdpr-press/).** 14 15 In January 2022 [a German court ruled](https://daan.dev/blog/gdpr/google-fonts-violates-gdpr-germany/) that a website owner was in breach of GDPR and should pay a € 100,- fine, because embedded Google Fonts were used, essentially transferring the user's personal data (IP address) without the user's prior consent. 14 16 15 17 = What's embedding? = 16 18 17 When an external (i.e. loaded from another server, besides your own) resource is embedded into a webpage, it basically means that the resource behaves as if it's loaded from the same server hosting the webpage.19 When an external (i.e., loaded from another server, besides your own) resource is embedded into a webpage, it basically means that the resource behaves as if it's loaded from the same server hosting the webpage. 18 20 19 21 = Why is using embedded resources in breach of GDPR? = 20 22 21 Because of [the way the internet works](https:// ffw.press/blog/how-to/google-fonts-gdpr/). When a browser (i.e. computer) requests a file (e.g.an image or a font file), the server needs the IP address of that computer to send it back. All these requests (including the IP address) are logged in a so-called `access.log`.23 Because of [the way the internet works](https://daan.dev/blog/how-to/google-fonts-gdpr/#h-how-the-internet-works). When a browser (i.e., computer) requests a file (e.g., an image or a font file), the server needs the IP address of that computer to send it back. All these requests (including the IP address) are logged in a so-called `access.log`. 22 24 23 25 Once this IP address leaves the European Union, your website is violating the GDPR. … … 25 27 = What does this plugin do? = 26 28 27 GDPRess scans your homepage for 3rd party scripts (JS) and stylesheets (CSS), and:29 GDPRess scans your homepage for third party scripts (JS) and stylesheets (CSS), and: 28 30 29 * Allows you to download or exclude them from downloading ,30 * Parses the stylesheets for loaded font files, downloads them, and rewrites the stylesheet to use the local copies ,31 * Allows you to download or exclude them from downloading. 32 * Parses the stylesheets for loaded font files, downloads them, and rewrites the stylesheet to use the local copies. 31 33 * Makes sure the local copies of each script/stylesheet are used in your site's frontend. 32 34 … … 35 37 == Installation == 36 38 37 1. Upload the plugin files to the `/wp-content/plugins/gdpr-press` directory , or install the plugin through the WordPress plugins screen directly.39 1. Upload the plugin files to the `/wp-content/plugins/gdpr-press` directory or install the plugin through WordPress Plugins screen directly. 38 40 2. Activate the plugin through the 'Plugins' screen in WordPress 39 41 3. Use the Settings -> GDPRess screen to configure the plugin … … 51 53 = Will this plugin allow me to use Google Analytics in compliance with GDPR? = 52 54 53 No, because much more is needed than *just* downloading analytics.js/gtag.js to your server. To [use Google Analytics in compliance with GDPR](https:// ffw.press/blog/gdpr/google-analytics-compliance-gdpr/), you need [CAOS Pro](https://ffw.press/wordpress/caos-pro/).55 No, because much more is needed than *just* downloading analytics.js/gtag.js to your server. To [use Google Analytics in compliance with GDPR](https://daan.dev/blog/gdpr/google-analytics-compliance-gdpr/), you need [CAOS Pro](https://daan.dev/wordpress/caos-pro/). 54 56 55 57 == Screenshots == 56 58 57 1. GDPRess' Start screen, simplyclick Scan Website to start.58 2. After running the initial scan, external requests are listed. Exclude a file when e.g. you suspect it might not work properly when it's downloaded.59 3. Google Analytics is automatically excluded ,because simply downloading the file is not enough to use it in compliance with GDPR. Click on the link in the tooltip for more information.60 4. Google Fonts issupported, but when many font families and/or font styles are detected, GDPRess will offer an alternative approach to optimize the request.59 1. GDPRess' Start screen, click Scan Website to start. 60 2. After running the initial scan, external requests are listed. Exclude a file when e.g., you suspect it might not work properly when it's downloaded. 61 3. Google Analytics is automatically excluded because simply downloading the file is not enough to use it in compliance with GDPR. Click on the link in the tooltip for more information. 62 4. Google Fonts are supported, but when many font families and/or font styles are detected, GDPRess will offer an alternative approach to optimize the request. 61 63 5. When the selected files are downloaded, the URLs of the local copies are listed. 62 64 63 65 == Changelog == 66 67 = 1.3.0 | The "He is risen!" Release = 68 * Added: Admin bar menu with "Scan this page" option to trigger a scan on the current page. 69 * Added: An exclusion list — known resources that break when locally hosted (e.g., Google Analytics, Stripe.js, Usercentrics) are now automatically excluded, with a tooltip explaining why. 70 * Added: Google Fonts and Web Font Loader requests are highlighted with a suggestion to use OMGF (Pro) for more advanced optimization. 71 * Added: Web Font Loader (`webfont.js`) is now detected and downloaded locally. 72 * Improved: "Re-scan" button replaces "Scan again" — clears the cache and rescans in one click. 73 * Improved: Settings page restyled to match the look and feel of other Daan.dev plugins. 74 * Improved: "Save Changes & Download" renamed to "Process Changes" — also deletes locally hosted files for excluded resources. 75 * Fixed: Protocol-relative URLs (`//`) are now correctly detected as external resources. 76 * Fixed: Non-external URI schemes (`data:`, `blob:`, `javascript:`) are no longer mistakenly processed. 77 * Fixed: CSS paths are now correctly rewritten after a stylesheet is downloaded. 78 * Fixed: Test Mode can now always be toggled. 79 * Tested up to WordPress 6.9. 64 80 65 81 = 1.2.3 = … … 67 83 68 84 = 1.2.2 = 69 * Fixed: GDPRess now runs before OMGF/CAOS, so e.g. OMGF Pro can optimize previously externally hosted stylesheets.85 * Fixed: GDPRess now runs before OMGF/CAOS, so e.g., OMGF Pro can optimize previously externally hosted stylesheets. 70 86 71 87 = 1.2.1 = … … 74 90 75 91 = 1.2.0 = 76 * Added: Run a quick scan on each page to see if new external ( 3rd party) requests are present on that page!92 * Added: Run a quick scan on each page to see if new external (third party) requests are present on that page! 77 93 * Added: Test Mode (enabled by Default) to allow users to first test the optimizations before releasing them to the public. 78 94 * Fixed: Don't use WP_Filesystem to get and put file contents. … … 81 97 * Added: Google Fonts support 82 98 - When many Font Families or Font Styles are detected, GDPR Press will suggest to use OMGF to optimize the request before downloading it. 83 * Fixed several bugs, notices and warnings.99 * Fixed several bugs, notices, and warnings. 84 100 85 101 = 1.0.2 = 86 * Added: tooltip next to success message.102 * Added: tooltip next to a success message. 87 103 * Fixed: tooltip-icon line height. 88 104 89 105 = 1.0.1 = 90 * Fixed: Conflicts with s everalcaching/optimization plugins:106 * Fixed: Conflicts with some caching/optimization plugins: 91 107 - Autoptimize 92 108 - WP Rocket -
gdpr-press/trunk/assets/css/gdpress-admin.css
r2689051 r3498092 2 2 * @package GDPRess 3 3 * @author Daan van den Bergh 4 * https://ffw.press 5 */ 6 #gdpress-help-form { 7 max-width: 1350px; 8 } 9 #gdpress-manage-form { 10 max-width: 1350px; 11 } 12 #gdpress-manage-form .gdpress.manage { 13 padding: 25px 50px; 14 max-width: 1024px; 15 margin: 20px auto 20px 220px; 16 overflow: visible; 17 position: relative; 18 } 19 #gdpress-manage-form .gdpress.manage p { 20 text-align: center; 21 } 22 #gdpress-manage-form .gdpress.manage .option-title { 23 position: absolute; 24 left: -220px; 25 top: 0; 26 font-weight: 600; 27 font-size: 14px; 28 color: #1d2327; 29 } 30 #gdpress-manage-form .gdpress.manage .tooltip { 31 position: relative; 32 font-size: 16px; 33 line-height: 20px; 34 } 35 #gdpress-manage-form .gdpress.manage .tooltip .tooltip-text { 36 visibility: hidden; 37 position: absolute; 38 top: 100%; 39 left: 100%; 40 z-index: 10000; 41 background-color: rgba(0, 0, 0, 0.75); 42 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; 43 font-size: 0.8em; 44 color: #fff; 45 line-height: 1.5; 46 width: 250px; 47 padding: 10px; 48 margin-left: -125px; 49 border-radius: 3px; 50 } 51 #gdpress-manage-form .gdpress.manage .tooltip .tooltip-text a { 52 color: white; 53 } 54 #gdpress-manage-form .gdpress.manage .tooltip:hover .tooltip-text { 55 visibility: visible; 56 } 57 #gdpress-manage-form .gdpress.manage table { 58 width: 100%; 59 max-width: 1024px; 60 border-collapse: collapse; 61 } 62 #gdpress-manage-form .gdpress.manage table td, 63 #gdpress-manage-form .gdpress.manage table th { 64 line-height: 2.5; 65 padding: 6px 12px; 66 } 67 #gdpress-manage-form .gdpress.manage table td.title, 68 #gdpress-manage-form .gdpress.manage table th.title { 69 padding: 0; 70 line-height: 1; 71 border-bottom: 1px solid #c3c4c7; 72 } 73 #gdpress-manage-form .gdpress.manage table td.downloaded, 74 #gdpress-manage-form .gdpress.manage table th.downloaded, 75 #gdpress-manage-form .gdpress.manage table td.exclude, 76 #gdpress-manage-form .gdpress.manage table th.exclude { 77 max-width: 25px; 78 } 79 #gdpress-manage-form .gdpress.manage table td.downloaded i, 80 #gdpress-manage-form .gdpress.manage table th.downloaded i, 81 #gdpress-manage-form .gdpress.manage table td.exclude i, 82 #gdpress-manage-form .gdpress.manage table th.exclude i { 83 vertical-align: -5px; 84 } 85 #gdpress-manage-form .gdpress.manage table td.downloaded i.dashicons-yes, 86 #gdpress-manage-form .gdpress.manage table th.downloaded i.dashicons-yes, 87 #gdpress-manage-form .gdpress.manage table td.exclude i.dashicons-yes, 88 #gdpress-manage-form .gdpress.manage table th.exclude i.dashicons-yes { 89 color: #2ECC40; 90 } 91 #gdpress-manage-form .gdpress.manage table td.downloaded i.dashicons-info-outline, 92 #gdpress-manage-form .gdpress.manage table th.downloaded i.dashicons-info-outline, 93 #gdpress-manage-form .gdpress.manage table td.exclude i.dashicons-info-outline, 94 #gdpress-manage-form .gdpress.manage table th.exclude i.dashicons-info-outline { 95 color: #201e14; 96 } 97 #gdpress-manage-form .gdpress.manage table td.downloaded input, 98 #gdpress-manage-form .gdpress.manage table th.downloaded input, 99 #gdpress-manage-form .gdpress.manage table td.exclude input, 100 #gdpress-manage-form .gdpress.manage table th.exclude input { 101 vertical-align: -3px; 102 } 103 #gdpress-manage-form .gdpress.manage table td.name, 104 #gdpress-manage-form .gdpress.manage table th.name { 105 display: inline-block; 106 white-space: nowrap; 107 overflow: hidden; 108 text-overflow: ellipsis; 109 max-width: 250px; 110 width: 15%; 111 } 112 #gdpress-manage-form .gdpress.manage table td.href, 113 #gdpress-manage-form .gdpress.manage table th.href { 114 display: inline-block; 115 white-space: nowrap; 116 overflow: hidden; 117 text-overflow: ellipsis; 118 max-width: 362px; 119 width: 35%; 120 } 121 #gdpress-manage-form .gdpress.manage table td.href a, 122 #gdpress-manage-form .gdpress.manage table th.href a { 123 text-decoration: none; 124 color: #3c434a; 125 } 126 #gdpress-manage-form .gdpress.manage table tbody th { 127 text-align: left; 128 } 129 #gdpress-manage-form .gdpress.manage table tbody tr.even { 130 background-color: #f0f0f1; 131 } 132 #gdpress-manage-form .gdpress.manage table tbody tr.info { 133 background-color: #C2EEFF; 134 } 135 #gdpress-manage-form .gdpress.manage table tbody tr.warning { 136 background-color: #FFEF87; 137 } 138 #gdpress-manage-form .button-cancel { 139 color: #a00; 140 text-decoration: none; 141 border-color: transparent; 142 box-shadow: none; 143 background: 0 0; 144 border-radius: 3px; 145 white-space: nowrap; 146 padding: 1px 10px !important; 147 } 148 #gdpress-manage-form .button-cancel:hover { 149 cursor: pointer; 150 background: #d54e21; 151 color: #fff; 152 border-color: #d54e21; 153 } 154 #gdpress-help-form .postbox { 155 padding: 0 15px 5px; 156 } 157 #gdpress-help-form .postbox .column-container { 158 display: flex; 159 flex-flow: row wrap; 160 justify-content: space-between; 161 } 162 #gdpress-help-form .postbox .column-container .column ul li { 163 margin-bottom: 10px; 164 } 165 #gdpress-help-form .postbox .column-container .column ul li:last-child { 166 margin-bottom: none; 167 } 168 #gdpress-help-form .postbox .column-container .column ul li a { 169 text-decoration: none; 170 line-height: 1.45; 171 } 172 #gdpress-help-form .postbox .column-container .column ul li a i.dashicons { 173 margin-right: 5px; 174 color: #646970; 175 } 176 #gdpress-help-form .postbox .column-container .column.last { 177 margin-right: 45px; 178 } 179 #gdpress-help-form .postbox .column-container .column.last .signature { 180 text-align: center; 181 } 182 #gdpress-help-form .postbox .column-container .column.last .signature .dashicons-heart { 183 color: #FF4136; 184 } 4 * https://daan.dev 5 */ 6 7 /** 8 * Typography 9 */ 10 @import "gdpr-press-admin-google-fonts.min.css"; 11 12 #wpwrap { 13 background-color: rgb(248 250 252 / 1); 14 } 15 16 .gdpress { 17 font-family: "Public Sans", Arial, sans-serif; 18 max-width: 1350px; 19 } 20 21 .gdpress h1 { 22 font-family: Poppins, Verdana, sans-serif; 23 font-weight: 800; 24 } 25 26 .gdpress h2, 27 .gdpress h3, 28 .gdpress h4, 29 .gdpress h5, 30 .gdpress h6 { 31 font-family: Poppins, Verdana, sans-serif; 32 font-weight: 600; 33 } 34 35 /** 36 * Buttons 37 */ 38 .gdpress .button { 39 color: #00adda; 40 font-family: Poppins, Verdana, sans-serif; 41 border-radius: 10px; 42 border: none; 43 font-weight: 500; 44 padding: 7px 20px; 45 margin-right: 1em; 46 background-color: transparent; 47 } 48 49 .gdpress .button:hover { 50 background-color: transparent; 51 } 52 53 .gdpress .button-primary { 54 color: white; 55 background-color: #00adda; 56 } 57 58 .gdpress .button-primary:hover { 59 background-color: #09c; 60 } 61 62 .gdpress .button-cancel { 63 color: #a00; 64 text-decoration: none; 65 border-color: transparent; 66 box-shadow: none; 67 background: 0 0; 68 white-space: nowrap; 69 } 70 71 .gdpress .button-cancel:hover { 72 cursor: pointer; 73 background: #d54e21; 74 color: #fff; 75 border-color: #d54e21; 76 border-radius: 10px; 77 } 78 79 .gdpress #submit { 80 background: #00adda; 81 border: 0; 82 color: #fff; 83 cursor: pointer; 84 } 85 86 .gdpress #submit:hover { 87 background-color: #0099cc; 88 } 89 90 /** 91 * Navigation 92 */ 93 .gdpress h2.gdpress-nav { 94 border-bottom: 0; 95 padding-bottom: 3px; 96 } 97 98 .gdpress h2.gdpress-nav a { 99 border: 0; 100 background-color: transparent; 101 font-weight: 600; 102 box-shadow: none; 103 } 104 105 .gdpress h2.gdpress-nav .nav-tab { 106 color: #000; 107 } 108 109 .gdpress h2.gdpress-nav .nav-tab:last-child { 110 float: right; 111 } 112 113 .gdpress h2.gdpress-nav .nav-tab-active { 114 color: #00adda; 115 } 116 117 .gdpress h2.gdpress-nav .nav-tab:hover { 118 color: #00adda; 119 } 120 121 .gdpress-nav .dashicons-before:before { 122 margin-right: 0.25em; 123 line-height: 1.15em; 124 } 125 126 .gdpress form { 127 max-width: 1350px; 128 } 129 130 .gdpress form .dashicons { 131 line-height: 15px; 132 } 133 134 /** 135 * Containers 136 */ 137 .gdpress-manage-container, 138 .gdpress-settings-container, 139 .gdpress-help-container { 140 padding: 5px 25px 25px; 141 margin-bottom: 30px; 142 box-shadow: 0 10px 20px 1px #ccc; 143 border: 0; 144 border-top: 4px solid #00adda; 145 border-radius: 10px; 146 background: #fff; 147 } 148 149 .gdpress-manage-container .option-title { 150 display: none; 151 } 152 153 .gdpress-container { 154 margin-top: 1.5em; 155 } 156 157 .gdpress-container p { 158 text-align: center; 159 margin-bottom: 2em; 160 } 161 162 /** 163 * Table styles (Preserved) 164 */ 165 .gdpress-manage-container table { 166 width: 100%; 167 border-collapse: collapse; 168 } 169 170 .gdpress-manage-container table td, 171 .gdpress-manage-container table th { 172 line-height: 2.5; 173 padding: 6px 12px; 174 } 175 176 .gdpress-manage-container table .gdpress-manage-cache { 177 border-top: 1px solid #c3c4c7; 178 } 179 180 .gdpress-manage-container table .gdpress-manage-cache th { 181 font-size: 14px; 182 color: #1d2327; 183 padding: 0; 184 } 185 186 .gdpress-manage-container table td.title, 187 .gdpress-manage-container table th.title { 188 padding: 0; 189 line-height: 1; 190 border-top: 1px solid #c3c4c7; 191 } 192 193 .gdpress-manage-container table td.downloaded, 194 .gdpress-manage-container table th.downloaded, 195 .gdpress-manage-container table td.exclude, 196 .gdpress-manage-container table th.exclude { 197 max-width: 25px; 198 } 199 200 .gdpress-manage-container table td.downloaded i, 201 .gdpress-manage-container table th.downloaded i, 202 .gdpress-manage-container table td.exclude i, 203 .gdpress-manage-container table th.exclude i { 204 vertical-align: -5px; 205 } 206 207 .gdpress-manage-container table td.downloaded i.dashicons-yes, 208 .gdpress-manage-container table td.exclude i.dashicons-yes { 209 color: #2ECC40; 210 } 211 212 .gdpress-manage-container table td.downloaded i.dashicons-info-outline, 213 .gdpress-manage-container table td.exclude i.dashicons-info-outline { 214 color: #201e14; 215 } 216 217 .gdpress-manage-container table td.downloaded input, 218 .gdpress-manage-container table td.exclude input { 219 vertical-align: -3px; 220 } 221 222 .gdpress-manage-container table td.name, 223 .gdpress-manage-container table th.name { 224 display: inline-block; 225 white-space: nowrap; 226 overflow: hidden; 227 text-overflow: ellipsis; 228 max-width: 250px; 229 width: 15%; 230 } 231 232 .gdpress-manage-container table td.href, 233 .gdpress-manage-container table th.href { 234 display: inline-block; 235 white-space: nowrap; 236 overflow: hidden; 237 text-overflow: ellipsis; 238 max-width: 362px; 239 width: 35%; 240 } 241 242 .gdpress-manage-container table td.href a { 243 text-decoration: none; 244 color: #3c434a; 245 } 246 247 .gdpress-manage-container table tbody th { 248 text-align: left; 249 } 250 251 .gdpress-manage-container table tbody tr.even { 252 background-color: #f0f0f1; 253 } 254 255 /* Blue highlighted rows for Google Fonts upsell */ 256 .gdpress-manage-container table tbody tr.info { 257 background-color: #C2EEFF; 258 } 259 260 /* Yellow highlighted rows for denylisted resources */ 261 .gdpress-manage-container table tbody tr.warning { 262 background-color: #FFEF87; 263 } 264 265 /** 266 * Tooltip 267 */ 268 .gdpress-manage-container .tooltip { 269 position: relative; 270 font-size: 16px; 271 line-height: 20px; 272 } 273 274 .gdpress-manage-container .tooltip .tooltip-text { 275 visibility: hidden; 276 position: absolute; 277 top: 100%; 278 left: 100%; 279 z-index: 10000; 280 background-color: rgba(0, 0, 0, 0.75); 281 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; 282 font-size: 0.8em; 283 color: #fff; 284 line-height: 1.5; 285 width: 250px; 286 padding: 10px; 287 margin-left: -30px; 288 border-radius: 3px; 289 } 290 291 .gdpress-manage-container .tooltip .tooltip-text a { 292 color: white; 293 } 294 295 .gdpress-manage-container .tooltip:hover .tooltip-text { 296 visibility: visible; 297 } 298 299 /** 300 * Help Tab Specific 301 */ 302 .gdpress-help-container .postbox { 303 padding: 0; 304 box-shadow: none; 305 border: 0; 306 } 307 308 .gdpress-help-container .column-container { 309 display: flex; 310 flex-flow: row wrap; 311 justify-content: space-between; 312 } 313 314 .gdpress-help-container .column ul li { 315 margin-bottom: 10px; 316 } 317 318 .gdpress-help-container .column ul li a { 319 text-decoration: none; 320 line-height: 1.45; 321 } 322 323 .gdpress-help-container .column ul li a i.dashicons { 324 margin-right: 5px; 325 color: #646970; 326 } 327 328 .gdpress-help-container .column.last { 329 margin-right: 45px; 330 } 331 332 .gdpress-help-container .column.last .signature { 333 text-align: center; 334 } 335 336 .gdpress-help-container .column.last .signature-image { 337 width: 185px; 338 } 339 185 340 /** 186 341 * Loader 187 342 */ 188 343 .gdpress-loading { 189 position: fixed; 190 background-color: rgba(255, 255, 255, 0.6); 191 width: 100%; 192 height: 100%; 193 top: 0; 194 left: 0; 195 text-align: center; 196 } 344 position: fixed; 345 background-color: rgba(255, 255, 255, 0.6); 346 width: 100%; 347 height: 100%; 348 top: 0; 349 left: 0; 350 text-align: center; 351 } 352 197 353 .gdpress-loading .spinner { 198 top: 50%; 199 left: 50%; 200 position: absolute; 201 -ms-transform: translateX(-50%); 202 transform: translateX(-50%); 203 } 204 /** 205 * Welcome Block 206 */ 354 top: 50%; 355 left: 50%; 356 position: absolute; 357 -ms-transform: translateX(-50%); 358 transform: translateX(-50%); 359 } 360 207 361 #footer-thankyou a { 208 vertical-align: -0.65em; 209 } 362 vertical-align: -0.65em; 363 } 364 210 365 #footer-thankyou .dashicons.ffwp-heart { 211 vertical-align: middle; 212 } 213 #footer-thankyou .dashicons.ffwp-heart:before { 214 color: #FF4136; 215 } 366 vertical-align: middle; 367 color: #FF4136; 368 } 369 216 370 #footer-thankyou .signature-image { 217 width: 96px; 218 } 371 width: 96px; 372 } 373 219 374 /*# sourceMappingURL=./gdpress-admin.css.map */ -
gdpr-press/trunk/assets/js/gdpress-admin.js
r2679157 r3498092 2 2 * @package GDPRess 3 3 * @author Daan van den Bergh 4 * https:// ffw.press4 * https://daan.dev 5 5 */ 6 6 jQuery(document).ready(function ($) { -
gdpr-press/trunk/gdpr-press.php
r2780136 r3498092 1 1 <?php 2 defined('ABSPATH') || exit;3 2 /** 4 3 * Plugin Name: GDPRess 5 4 * Plugin URI: https://wordpress.org/plugins/gdpr-press/ 6 5 * Description: Easily eliminate external requests with GDPRess. 7 * Version: 1. 2.38 * Author: Daan from FFW.Press9 * Author URI: https:// ffw.press6 * Version: 1.3.0 7 * Author: Daan from Daan.dev 8 * Author URI: https://daan.dev 10 9 * License: GPL2v2 or later 11 10 * Text Domain: gdpr-press 12 11 */ 13 12 14 define('GDPRESS_PLUGIN_DIR', plugin_dir_path(__FILE__)); 15 define('GDPRESS_PLUGIN_FILE', __FILE__); 16 define('GDPRESS_PLUGIN_BASENAME', plugin_basename(GDPRESS_PLUGIN_FILE)); 17 define('GDPRESS_STATIC_VERSION', '1.2.0'); 18 define('GDPRESS_DB_VERSION', '1.0.2'); 13 defined( 'ABSPATH' ) || exit; 14 15 define( 'GDPRESS_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); 16 define( 'GDPRESS_PLUGIN_FILE', __FILE__ ); 17 define( 'GDPRESS_PLUGIN_BASENAME', plugin_basename( GDPRESS_PLUGIN_FILE ) ); 18 define( 'GDPRESS_STATIC_VERSION', '1.2.0' ); 19 define( 'GDPRESS_DB_VERSION', '1.0.2' ); 19 20 20 21 /** … … 25 26 * @return mixed|void 26 27 */ 27 function gdpress_autoload($class) 28 { 29 $path = explode('_', $class); 30 31 if ($path[0] != 'Gdpress') { 32 return; 33 } 34 35 if (!class_exists('FFWP_Autoloader')) { 36 require_once(GDPRESS_PLUGIN_DIR . 'ffwp-autoload.php'); 37 } 38 39 $autoload = new FFWP_Autoloader($class); 40 41 return include GDPRESS_PLUGIN_DIR . 'includes/' . $autoload->load(); 42 } 43 44 spl_autoload_register('gdpress_autoload'); 28 require_once GDPRESS_PLUGIN_DIR . 'vendor/autoload.php'; 45 29 46 30 /** 47 31 * All systems GO!!! 48 32 * 49 * @return G dpress33 * @return GDPRess\Plugin 50 34 */ 51 function gdpr_press_init() 52 { 53 static $gdpress = null; 54 55 if ($gdpress === null) { 56 $gdpress = new Gdpress(); 57 } 58 59 return $gdpress; 60 } 61 62 gdpr_press_init(); 35 $gdpress = new GDPRess\Plugin(); -
gdpr-press/trunk/readme.txt
r2780136 r3498092 1 1 === GDPRess | Eliminate external requests to increase GDPR compliance === 2 2 Contributors: DaanvandenBergh 3 Tags: gdpr, ds vgo, avg, external, 3rd party, requests, minimize4 Requires at least: 5. 85 Tested up to: 5.96 Stable tag: 1. 2.33 Tags: gdpr, dsgvo, avg, external, 3rd party, requests, minimize 4 Requires at least: 5.9 5 Tested up to: 6.9 6 Stable tag: 1.3.0 7 7 Requires PHP: 7.2 8 8 License: GPLv2 or later … … 11 11 == Description == 12 12 13 In January, 2022 [a German court ruled](https://ffw.press/blog/gdpr/google-fonts-violates-gdpr-germany/) that a website owner was in breach of GDPR and should pay a € 100,- fine, because embedded Google Fonts were used, essentially transferring the user's personal data (IP address) without the user's prior consent. 13 **GDPRess can be downloaded for free without any paid subscription from [the official WordPress repository](https://wordpress.org/plugins/gdpr-press/).** 14 15 In January 2022 [a German court ruled](https://daan.dev/blog/gdpr/google-fonts-violates-gdpr-germany/) that a website owner was in breach of GDPR and should pay a € 100,- fine, because embedded Google Fonts were used, essentially transferring the user's personal data (IP address) without the user's prior consent. 14 16 15 17 = What's embedding? = 16 18 17 When an external (i.e. loaded from another server, besides your own) resource is embedded into a webpage, it basically means that the resource behaves as if it's loaded from the same server hosting the webpage.19 When an external (i.e., loaded from another server, besides your own) resource is embedded into a webpage, it basically means that the resource behaves as if it's loaded from the same server hosting the webpage. 18 20 19 21 = Why is using embedded resources in breach of GDPR? = 20 22 21 Because of [the way the internet works](https:// ffw.press/blog/how-to/google-fonts-gdpr/). When a browser (i.e. computer) requests a file (e.g.an image or a font file), the server needs the IP address of that computer to send it back. All these requests (including the IP address) are logged in a so-called `access.log`.23 Because of [the way the internet works](https://daan.dev/blog/how-to/google-fonts-gdpr/#h-how-the-internet-works). When a browser (i.e., computer) requests a file (e.g., an image or a font file), the server needs the IP address of that computer to send it back. All these requests (including the IP address) are logged in a so-called `access.log`. 22 24 23 25 Once this IP address leaves the European Union, your website is violating the GDPR. … … 25 27 = What does this plugin do? = 26 28 27 GDPRess scans your homepage for 3rd party scripts (JS) and stylesheets (CSS), and:29 GDPRess scans your homepage for third party scripts (JS) and stylesheets (CSS), and: 28 30 29 * Allows you to download or exclude them from downloading ,30 * Parses the stylesheets for loaded font files, downloads them, and rewrites the stylesheet to use the local copies ,31 * Allows you to download or exclude them from downloading. 32 * Parses the stylesheets for loaded font files, downloads them, and rewrites the stylesheet to use the local copies. 31 33 * Makes sure the local copies of each script/stylesheet are used in your site's frontend. 32 34 … … 35 37 == Installation == 36 38 37 1. Upload the plugin files to the `/wp-content/plugins/gdpr-press` directory , or install the plugin through the WordPress plugins screen directly.39 1. Upload the plugin files to the `/wp-content/plugins/gdpr-press` directory or install the plugin through WordPress Plugins screen directly. 38 40 2. Activate the plugin through the 'Plugins' screen in WordPress 39 41 3. Use the Settings -> GDPRess screen to configure the plugin … … 51 53 = Will this plugin allow me to use Google Analytics in compliance with GDPR? = 52 54 53 No, because much more is needed than *just* downloading analytics.js/gtag.js to your server. To [use Google Analytics in compliance with GDPR](https:// ffw.press/blog/gdpr/google-analytics-compliance-gdpr/), you need [CAOS Pro](https://ffw.press/wordpress/caos-pro/).55 No, because much more is needed than *just* downloading analytics.js/gtag.js to your server. To [use Google Analytics in compliance with GDPR](https://daan.dev/blog/gdpr/google-analytics-compliance-gdpr/), you need [CAOS Pro](https://daan.dev/wordpress/caos-pro/). 54 56 55 57 == Screenshots == 56 58 57 1. GDPRess' Start screen, simplyclick Scan Website to start.58 2. After running the initial scan, external requests are listed. Exclude a file when e.g. you suspect it might not work properly when it's downloaded.59 3. Google Analytics is automatically excluded ,because simply downloading the file is not enough to use it in compliance with GDPR. Click on the link in the tooltip for more information.60 4. Google Fonts issupported, but when many font families and/or font styles are detected, GDPRess will offer an alternative approach to optimize the request.59 1. GDPRess' Start screen, click Scan Website to start. 60 2. After running the initial scan, external requests are listed. Exclude a file when e.g., you suspect it might not work properly when it's downloaded. 61 3. Google Analytics is automatically excluded because simply downloading the file is not enough to use it in compliance with GDPR. Click on the link in the tooltip for more information. 62 4. Google Fonts are supported, but when many font families and/or font styles are detected, GDPRess will offer an alternative approach to optimize the request. 61 63 5. When the selected files are downloaded, the URLs of the local copies are listed. 62 64 63 65 == Changelog == 66 67 = 1.3.0 | The "He is risen!" Release = 68 * Added: Admin bar menu with "Scan this page" option to trigger a scan on the current page. 69 * Added: An exclusion list — known resources that break when locally hosted (e.g., Google Analytics, Stripe.js, Usercentrics) are now automatically excluded, with a tooltip explaining why. 70 * Added: Google Fonts and Web Font Loader requests are highlighted with a suggestion to use OMGF (Pro) for more advanced optimization. 71 * Added: Web Font Loader (`webfont.js`) is now detected and downloaded locally. 72 * Improved: "Re-scan" button replaces "Scan again" — clears the cache and rescans in one click. 73 * Improved: Settings page restyled to match the look and feel of other Daan.dev plugins. 74 * Improved: "Save Changes & Download" renamed to "Process Changes" — also deletes locally hosted files for excluded resources. 75 * Fixed: Protocol-relative URLs (`//`) are now correctly detected as external resources. 76 * Fixed: Non-external URI schemes (`data:`, `blob:`, `javascript:`) are no longer mistakenly processed. 77 * Fixed: CSS paths are now correctly rewritten after a stylesheet is downloaded. 78 * Fixed: Test Mode can now always be toggled. 79 * Tested up to WordPress 6.9. 64 80 65 81 = 1.2.3 = … … 67 83 68 84 = 1.2.2 = 69 * Fixed: GDPRess now runs before OMGF/CAOS, so e.g. OMGF Pro can optimize previously externally hosted stylesheets.85 * Fixed: GDPRess now runs before OMGF/CAOS, so e.g., OMGF Pro can optimize previously externally hosted stylesheets. 70 86 71 87 = 1.2.1 = … … 74 90 75 91 = 1.2.0 = 76 * Added: Run a quick scan on each page to see if new external ( 3rd party) requests are present on that page!92 * Added: Run a quick scan on each page to see if new external (third party) requests are present on that page! 77 93 * Added: Test Mode (enabled by Default) to allow users to first test the optimizations before releasing them to the public. 78 94 * Fixed: Don't use WP_Filesystem to get and put file contents. … … 81 97 * Added: Google Fonts support 82 98 - When many Font Families or Font Styles are detected, GDPR Press will suggest to use OMGF to optimize the request before downloading it. 83 * Fixed several bugs, notices and warnings.99 * Fixed several bugs, notices, and warnings. 84 100 85 101 = 1.0.2 = 86 * Added: tooltip next to success message.102 * Added: tooltip next to a success message. 87 103 * Fixed: tooltip-icon line height. 88 104 89 105 = 1.0.1 = 90 * Fixed: Conflicts with s everalcaching/optimization plugins:106 * Fixed: Conflicts with some caching/optimization plugins: 91 107 - Autoptimize 92 108 - WP Rocket
Note: See TracChangeset
for help on using the changeset viewer.