Optimus – WordPress Image Optimizer - Version 1.3.5

Version Description

  • Erhhung des Limits fr PNG-Dateien auf 512 KB (Optimus HQ)
Download this release

Release Info

Developer sergej.mueller
Plugin Icon 128x128 Optimus – WordPress Image Optimizer
Version 1.3.5
Comparing to
See all releases

Code changes from version 1.3.3 to 1.3.5

inc/optimus_hq.class.php CHANGED
@@ -300,6 +300,14 @@ class Optimus_HQ
300
  return;
301
  }
302
 
 
 
 
 
 
 
 
 
303
  /* Sanitize input */
304
  $optimus_key = sanitize_text_field($_POST['_optimus_key']);
305
 
@@ -308,9 +316,6 @@ class Optimus_HQ
308
  return;
309
  }
310
 
311
- /* Security */
312
- check_admin_referer('_optimus_nonce');
313
-
314
  /* Delete purchase_time */
315
  self::_delete_purchase_time();
316
 
@@ -369,7 +374,7 @@ class Optimus_HQ
369
  break;
370
 
371
  case 'locked':
372
- $msg = 'Optimus ist aktuell nur eingeschränkt nutzbar.<br /><strong>Optimus HQ</strong> (Premium) beherrscht mehr Bildformate, komprimiert größere Dateien, nutzt HTTPS-Verbindung und erlaubt Anfragen von Blogs außerhalb D-A-CH. Weitere Details auf <a href="http://optimus.io" target="_blank">optimus.io</a><br /><br /><em>Dieser Hinweis hat eine Lebensdauer von 60 Sekunden und erscheint nicht erneut.</em>';
373
  $class = 'error';
374
  break;
375
 
300
  return;
301
  }
302
 
303
+ /* Nonce check */
304
+ check_admin_referer('_optimus_nonce');
305
+
306
+ /* Capability check */
307
+ if ( ! current_user_can('manage_options') ) {
308
+ return;
309
+ }
310
+
311
  /* Sanitize input */
312
  $optimus_key = sanitize_text_field($_POST['_optimus_key']);
313
 
316
  return;
317
  }
318
 
 
 
 
319
  /* Delete purchase_time */
320
  self::_delete_purchase_time();
321
 
374
  break;
375
 
376
  case 'locked':
377
+ $msg = '<strong>Optimus</strong> ist kostenlos, der Funktionsumfang ist auf wesentliche Features reduziert.<br /><strong>Optimus HQ</strong> (Premium) beherrscht dagegen mehrere Bildformate, komprimiert größere Dateien, nutzt HTTPS-Verbindung und erlaubt Anfragen außerhalb D-A-CH. Weitere Details auf <a href="http://optimus.io" target="_blank">optimus.io</a><br /><br /><em>Dieser Hinweis hat eine Lebensdauer von 60 Sekunden und erscheint nicht erneut.</em>';
378
  $class = 'error';
379
  break;
380
 
inc/optimus_request.class.php CHANGED
@@ -15,15 +15,6 @@ class Optimus_Request
15
  {
16
 
17
 
18
- /**
19
- * cURL is available
20
- *
21
- * @var boolean
22
- */
23
-
24
- private static $_use_curl = false;
25
-
26
-
27
  /**
28
  * Default remote scheme
29
  *
@@ -37,7 +28,7 @@ class Optimus_Request
37
  * Build optimization for a upload image including previews
38
  *
39
  * @since 0.0.1
40
- * @change 1.3.3
41
  *
42
  * @param array $upload_data Incoming upload information
43
  * @param integer $attachment_id Attachment ID
@@ -56,7 +47,12 @@ class Optimus_Request
56
  }
57
 
58
  /* Skip regenerating */
59
- if ( ! empty($_REQUEST['action']) && $_REQUEST['action'] === 'regeneratethumbnail' ) {
 
 
 
 
 
60
  return $upload_data;
61
  }
62
 
@@ -101,15 +97,13 @@ class Optimus_Request
101
  $diff_filesizes = array();
102
 
103
  /* Set cURL options */
104
- if ( self::$_use_curl = WP_Http_Curl::test() ) {
105
- add_action(
106
- 'http_api_curl',
107
- array(
108
- __CLASS__,
109
- 'set_curl_options'
110
- )
111
- );
112
- }
113
 
114
  /* Set https scheme */
115
  if ( $options['secure_transport'] && Optimus_HQ::is_unlocked() ) {
@@ -276,7 +270,7 @@ class Optimus_Request
276
  * Optimus API request
277
  *
278
  * @since 1.1.4
279
- * @change 1.3.0
280
  *
281
  * @param string $file Image file
282
  * @param array $args Request arguments
@@ -285,32 +279,16 @@ class Optimus_Request
285
 
286
  private static function _do_api_request($file, $args)
287
  {
288
- /* cURL Request */
289
- if ( self::$_use_curl ) {
290
- return wp_safe_remote_post(
291
- sprintf(
292
- '%s://magic.optimus.io/%s?%s',
293
- self::$_remote_scheme,
294
- Optimus_HQ::get_key(),
295
- self::_curl_optimus_task($args)
296
- ),
297
- array(
298
- 'body' => file_get_contents($file),
299
- 'timeout' => 10
300
- )
301
- );
302
- }
303
-
304
- /* Fallback request */
305
  return wp_safe_remote_post(
306
  sprintf(
307
- '%s://api.optimus.io/%s',
308
  self::$_remote_scheme,
309
- Optimus_HQ::get_key()
 
310
  ),
311
  array(
312
- 'body' => $args,
313
- 'timeout' => 10
314
  )
315
  );
316
  }
@@ -337,7 +315,7 @@ class Optimus_Request
337
  $handle,
338
  CURLOPT_HTTPHEADER,
339
  array(
340
- 'Accept: image/jpeg,image/webp,image/png'
341
  )
342
  );
343
  }
@@ -446,7 +424,7 @@ class Optimus_Request
446
  * Return Optimus quota for a plugin type
447
  *
448
  * @since 1.1.0
449
- * @change 1.3.0
450
  *
451
  * @return array Optimus quota
452
  */
@@ -455,16 +433,16 @@ class Optimus_Request
455
  {
456
  /* Quota */
457
  $quota = array(
458
- /* FREE */
459
  false => array(
460
  'image/jpeg' => 20 * 1024
461
  ),
462
 
463
- /* HQ */
464
  true => array(
465
  'image/jpeg' => 1000 * 1024,
466
  'image/webp' => 1000 * 1024,
467
- 'image/png' => 200 * 1024
468
  )
469
  );
470
 
15
  {
16
 
17
 
 
 
 
 
 
 
 
 
 
18
  /**
19
  * Default remote scheme
20
  *
28
  * Build optimization for a upload image including previews
29
  *
30
  * @since 0.0.1
31
+ * @change 1.3.4
32
  *
33
  * @param array $upload_data Incoming upload information
34
  * @param integer $attachment_id Attachment ID
47
  }
48
 
49
  /* Skip regenerating */
50
+ if ( ! empty($_POST['action']) && $_POST['action'] === 'regeneratethumbnail' ) {
51
+ return $upload_data;
52
+ }
53
+
54
+ /* cURL only */
55
+ if ( ! WP_Http_Curl::test() ) {
56
  return $upload_data;
57
  }
58
 
97
  $diff_filesizes = array();
98
 
99
  /* Set cURL options */
100
+ add_action(
101
+ 'http_api_curl',
102
+ array(
103
+ __CLASS__,
104
+ 'set_curl_options'
105
+ )
106
+ );
 
 
107
 
108
  /* Set https scheme */
109
  if ( $options['secure_transport'] && Optimus_HQ::is_unlocked() ) {
270
  * Optimus API request
271
  *
272
  * @since 1.1.4
273
+ * @change 1.3.5
274
  *
275
  * @param string $file Image file
276
  * @param array $args Request arguments
279
 
280
  private static function _do_api_request($file, $args)
281
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
282
  return wp_safe_remote_post(
283
  sprintf(
284
+ '%s://magic.optimus.io/%s?%s',
285
  self::$_remote_scheme,
286
+ Optimus_HQ::get_key(),
287
+ self::_curl_optimus_task($args)
288
  ),
289
  array(
290
+ 'body' => file_get_contents($file),
291
+ 'timeout' => 30
292
  )
293
  );
294
  }
315
  $handle,
316
  CURLOPT_HTTPHEADER,
317
  array(
318
+ 'Accept: image/*'
319
  )
320
  );
321
  }
424
  * Return Optimus quota for a plugin type
425
  *
426
  * @since 1.1.0
427
+ * @change 1.3.5
428
  *
429
  * @return array Optimus quota
430
  */
433
  {
434
  /* Quota */
435
  $quota = array(
436
+ /* Optimus */
437
  false => array(
438
  'image/jpeg' => 20 * 1024
439
  ),
440
 
441
+ /* Optimus HQ */
442
  true => array(
443
  'image/jpeg' => 1000 * 1024,
444
  'image/webp' => 1000 * 1024,
445
+ 'image/png' => 500 * 1024
446
  )
447
  );
448
 
inc/optimus_settings.class.php CHANGED
@@ -128,7 +128,7 @@ class Optimus_Settings
128
  </label>
129
 
130
  <p class="description">
131
- Aktive Option behält EXIF- und IPTC-Daten bzw. Copyright- und Fotoaufnahme-Parameter in Bildern. Die Größenreduzierung fällt geringer aus. [<a href="https://plus.google.com/b/114450218898660299759/114450218898660299759/posts/Wwz7uFHBzFF" target="_blank">Details</a>]
132
  </p>
133
  </fieldset>
134
  </td>
@@ -146,7 +146,7 @@ class Optimus_Settings
146
  </label>
147
 
148
  <p class="description">
149
- Nur Optimus HQ. Modifizierung der Server-Konfigurationsdatei und Überprüfung der Ausgabe erforderlich. Verlangsamt den Optimierungsprozess. [<a href="https://plus.google.com/114450218898660299759/posts/3emb7o4368X" target="_blank">Details</a>]
150
  </p>
151
  </fieldset>
152
  </td>
@@ -164,7 +164,7 @@ class Optimus_Settings
164
  </label>
165
 
166
  <p class="description">
167
- Nur Optimus HQ. Die Kommunikation zum Optimus-Server erfolgt über eine HTTPS-Verbindung. Verlangsamt den Optimierungsprozess. [<a href="https://plus.google.com/b/114450218898660299759/114450218898660299759/posts/5f2f9XKXb4F" target="_blank">Details</a>]
168
  </p>
169
  </fieldset>
170
  </td>
128
  </label>
129
 
130
  <p class="description">
131
+ Nur <a href="https://optimus.io" target="_blank">Optimus HQ</a>. Aktive Option behält EXIF-, Copyright- und Fotoaufnahme-Informationen in Bildern. Die Größenreduzierung fällt geringer aus. [<a href="https://plus.google.com/b/114450218898660299759/114450218898660299759/posts/Wwz7uFHBzFF" target="_blank">Details</a>]
132
  </p>
133
  </fieldset>
134
  </td>
146
  </label>
147
 
148
  <p class="description">
149
+ Nur <a href="https://optimus.io" target="_blank">Optimus HQ</a>. Modifizierung der Server-Konfigurationsdatei und Überprüfung der Ausgabe erforderlich. Verlangsamt den Optimierungsprozess. [<a href="https://plus.google.com/114450218898660299759/posts/3emb7o4368X" target="_blank">Details</a>]
150
  </p>
151
  </fieldset>
152
  </td>
164
  </label>
165
 
166
  <p class="description">
167
+ Nur <a href="https://optimus.io" target="_blank">Optimus HQ</a>. Die Kommunikation zum Optimus-Server erfolgt über eine HTTPS-Verbindung. Verlangsamt den Optimierungsprozess. [<a href="https://plus.google.com/b/114450218898660299759/114450218898660299759/posts/5f2f9XKXb4F" target="_blank">Details</a>]
168
  </p>
169
  </fieldset>
170
  </td>
optimus.php CHANGED
@@ -6,7 +6,7 @@ Author: Sergej M&uuml;ller
6
  Author URI: http://wpcoder.de
7
  Plugin URI: https://optimus.io
8
  License: GPLv2 or later
9
- Version: 1.3.3
10
  */
11
 
12
  /*
6
  Author URI: http://wpcoder.de
7
  Plugin URI: https://optimus.io
8
  License: GPLv2 or later
9
+ Version: 1.3.5
10
  */
11
 
12
  /*
readme.txt CHANGED
@@ -2,7 +2,7 @@
2
  Contributors: sergej.mueller
3
  Tags: images, optimize, compress, progressive, performance, png, jpeg, webp
4
  Requires at least: 3.8
5
- Tested up to: 3.9.1
6
  Stable tag: trunk
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -16,13 +16,13 @@ Effektive Komprimierung der Bilder während des Upload-Vorgangs. Automatisch und
16
  == Description ==
17
 
18
  = (Fast) Magie =
19
- *Optimus* verkleinert die Dateigröße hochgeladener Medien. Abhängig vom Bild und Format ist eine Reduzierung der Größe um bis zu 70 Prozent möglich. Pro Bild lassen sich mehrere Kilobytes einsparen, die der Blogseiten-Performance positiv beitragen. Das Beeindruckende an der Kompressionstechnologie: Die Qualität der Bilder bleibt garantiert erhalten.
20
 
21
 
22
- > #### Optimus HQ mit PREMIUM-Funktionen
23
- > *Optimus* existiert in zwei Varianten:
24
- > 1. Die kostenlos erhältliche Grundversion mit einigen Einschränkungen.
25
- > 2. *Optimus HQ* mit erweitertem Funktionsumgang und unlimitiertem Traffic.
26
  >
27
  > Alle Informationen zum Produkt auf [optimus.io](https://optimus.io)
28
 
@@ -32,12 +32,12 @@ Während der Übertragung der Bilder in die Mediathek schickt das *Optimus*-Plug
32
 
33
  Die Optimierung der Bilder (samt Thumbnails) erfolgt im Hintergrund und ist für Nutzer optisch nahezu nicht wahrzunehmen. Den Kompressionsgewinn pro Datei stellt *Optimus* innerhalb der Mediathek in Form eines Prozentwertes dar, siehe [Screenshot](https://wordpress.org/plugins/optimus/screenshots/).
34
 
35
- Anders als andere Tools rührt *Optimus* die Qualität der Fotos niemals an. Stattdessen werden aus Bilddateien überflüssige Informationen extrahiert, die von Bildprogrammen (mit)gespeichert werden und zur Darstellung überhaupt nicht notwendig sind. Auf diese Art bleibt die Qualität der Grafiken erhalten, die Dateigröße kann um ein Vielfaches verkleinert werden. Auf Wunsch behält *Optimus* alle Autor-, EXIF- und Copyright-Informationen innerhalb der Fotos - der Kompressionsgewinn fällt entsprechend kleiner aus.
36
 
37
  NEU für Optimus HQ: Optionale [Konvertierung](https://plus.google.com/b/114450218898660299759/114450218898660299759/posts/3emb7o4368X) der Bilder ins sparsame [WebP-Bildformat](http://cup.wpcoder.de/webp-jpeg-alternative/).
38
 
39
 
40
- = Pluspunkte =
41
  * [Progressive JPEGs](https://plus.google.com/114450218898660299759/posts/RPW48vHbwoM)
42
  * Verkleinerung der Dateigröße ohne Verlust der Qualität
43
  * Optimierung aller Vorschauvarianten eines Bildes
@@ -48,6 +48,7 @@ NEU für Optimus HQ: Optionale [Konvertierung](https://plus.google.com/b/1144502
48
  * Optimiert für WordPress Mobile Apps und Windows Live Writer
49
  * Vorteilhafterer PageSpeed als Ranking-Faktor
50
  * Geringere Ladezeit der Blogseiten
 
51
  * WordPress Multisite-fähig
52
 
53
 
@@ -58,7 +59,7 @@ NEU für Optimus HQ: Optionale [Konvertierung](https://plus.google.com/b/1144502
58
 
59
  = Tipps =
60
  * Fotos stets als JPEGs statt PNGs speichern. Das PNG-Format ist sinnvoll für Illustrationen, JPEG ist dagegen genau das Richtige für Fotoaufnahmen. Weiterer Grund: Die Größenreduzierung geht bei JPEGs flotter vonstatten.
61
- * Zahlreiche Blogger optimieren ihre Bilder vor dem Upload mit Desktop-Tools wie [ImageOptim](http://playground.ebiene.de/png-bilder-optimieren/). *Optimus* hat den gravierenden Vorteil, dass von WordPress (Theme & Plugins) erstellte Thumbnails (= Vorschaubilder) von *Optimus* ebenfalls behandelt und minimiert werden. Schliesslich sind im Theme fast immer Thumbnails eingebunden und nur selten das Originalbild.
62
 
63
 
64
  = Systemanforderungen =
@@ -69,7 +70,7 @@ NEU für Optimus HQ: Optionale [Konvertierung](https://plus.google.com/b/1144502
69
 
70
  = Speicherbelegung =
71
  * Im Backend: ~ 0,19 MB
72
- * Im Frontend: ~ 0,03 MB
73
 
74
 
75
  = Website =
@@ -85,6 +86,13 @@ NEU für Optimus HQ: Optionale [Konvertierung](https://plus.google.com/b/1144502
85
 
86
  == Changelog ==
87
 
 
 
 
 
 
 
 
88
  = 1.3.3 =
89
  * Kompatibilität zu WooCommerce
90
  * Einführung von Optimus HQ PRO
2
  Contributors: sergej.mueller
3
  Tags: images, optimize, compress, progressive, performance, png, jpeg, webp
4
  Requires at least: 3.8
5
+ Tested up to: 4.0
6
  Stable tag: trunk
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
16
  == Description ==
17
 
18
  = (Fast) Magie =
19
+ *Optimus* verkleinert die Dateigröße hochgeladener Medien. Abhängig vom Bild und Format ist eine Reduzierung der Größe um bis zu 70 Prozent möglich. Pro Bild lassen sich mehrere Kilobytes einsparen diese Sparmaßnahme trägt der Blogseiten-Performance positiv bei. Das Beeindruckende an der Kompressionstechnologie: Die Qualität der Bilder bleibt garantiert erhalten.
20
 
21
 
22
+ > #### Optimus existiert in drei Varianten:
23
+ > 1. *Optimus* als kostenlose Grundversion mit Einschränkungen.
24
+ > 2. *Optimus HQ* mit erweitertem Funktionsumgang für Eigenprojekte.
25
+ > 3. *Optimus HQ PRO* als professionelle Lösung in Kunden-Websites.
26
  >
27
  > Alle Informationen zum Produkt auf [optimus.io](https://optimus.io)
28
 
32
 
33
  Die Optimierung der Bilder (samt Thumbnails) erfolgt im Hintergrund und ist für Nutzer optisch nahezu nicht wahrzunehmen. Den Kompressionsgewinn pro Datei stellt *Optimus* innerhalb der Mediathek in Form eines Prozentwertes dar, siehe [Screenshot](https://wordpress.org/plugins/optimus/screenshots/).
34
 
35
+ Anders als gängige Optimierungstools rührt *Optimus* die Qualität der Fotos niemals an. Stattdessen werden aus Bilddateien überflüssige Informationen extrahiert, die von Bildprogrammen (mit)gespeichert werden und zur Darstellung überhaupt nicht notwendig sind. Auf diese Art bleibt die Qualität der Grafiken erhalten, die Dateigröße kann um ein Vielfaches verkleinert werden. Auf Wunsch behält *Optimus* alle Autor-, EXIF- und Copyright-Informationen innerhalb der Fotos - der Kompressionsgewinn fällt entsprechend kleiner aus.
36
 
37
  NEU für Optimus HQ: Optionale [Konvertierung](https://plus.google.com/b/114450218898660299759/114450218898660299759/posts/3emb7o4368X) der Bilder ins sparsame [WebP-Bildformat](http://cup.wpcoder.de/webp-jpeg-alternative/).
38
 
39
 
40
+ = Features =
41
  * [Progressive JPEGs](https://plus.google.com/114450218898660299759/posts/RPW48vHbwoM)
42
  * Verkleinerung der Dateigröße ohne Verlust der Qualität
43
  * Optimierung aller Vorschauvarianten eines Bildes
48
  * Optimiert für WordPress Mobile Apps und Windows Live Writer
49
  * Vorteilhafterer PageSpeed als Ranking-Faktor
50
  * Geringere Ladezeit der Blogseiten
51
+ * Unterstützung für WooCommerce
52
  * WordPress Multisite-fähig
53
 
54
 
59
 
60
  = Tipps =
61
  * Fotos stets als JPEGs statt PNGs speichern. Das PNG-Format ist sinnvoll für Illustrationen, JPEG ist dagegen genau das Richtige für Fotoaufnahmen. Weiterer Grund: Die Größenreduzierung geht bei JPEGs flotter vonstatten.
62
+ * Bilder vor dem Upload mit Desktop-Tools wie [ImageOptim](https://plus.google.com/b/114450218898660299759/114450218898660299759/posts/A15GfjcFgR9) (Mac) oder [PNGGauntlet](https://plus.google.com/b/114450218898660299759/114450218898660299759/posts/AEwkCSMMoTk) (Win) optimiert? *Optimus* hat den gravierenden Vorteil, dass die von WordPress erstellten Thumbnails (= Vorschaubilder) ebenfalls minimiert werden. Schließlich sind im Theme fast immer Thumbnails und keine Originalbilder eingebunden.
63
 
64
 
65
  = Systemanforderungen =
70
 
71
  = Speicherbelegung =
72
  * Im Backend: ~ 0,19 MB
73
+ * Im Frontend: ~ 0,01 MB
74
 
75
 
76
  = Website =
86
 
87
  == Changelog ==
88
 
89
+ = 1.3.5 =
90
+ * Erhöhung des Limits für PNG-Dateien auf 512 KB (Optimus HQ)
91
+
92
+ = 1.3.4 =
93
+ * Umstellung des Plugins auf die neue Optimus API (cURL only)
94
+ * [Ausführlich auf Google+](https://plus.google.com/114450218898660299759/posts/GYrUK4YeXvU)
95
+
96
  = 1.3.3 =
97
  * Kompatibilität zu WooCommerce
98
  * Einführung von Optimus HQ PRO