Skip to content

Commit

Permalink
Release version 4.1.0 (#92)
Browse files Browse the repository at this point in the history
Merge pull request #92 from short-pixel-optimizer/updates
  • Loading branch information
pdobrescu authored Mar 28, 2023
2 parents 88d6347 + 35b3451 commit 770e4f9
Show file tree
Hide file tree
Showing 46 changed files with 3,088 additions and 418 deletions.
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ So `[file_modified id=870]` would display the last time the file with ID 870 was

If you want more control over the format used to display the time, you can use the format option, so `[file_modified id=870 format=Y-m-d]` would display the file modification date but not the time. The format string uses [standard PHP date() formatting tags](http://php.net/manual/en/function.date.php).

## Disable background removal
If you don't want to utilize the background removal feature, add `add_filter('emr/feature/background', '__return_false' );` to your functions.php

***

See [Enable Media Replace](http://wordpress.org/plugins/enable-media-replace/) at WordPress.org for more information.
2 changes: 1 addition & 1 deletion build/shortpixel/composer.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"name":"EnableMediaReplace\/shortpixelmodules","description":"ShortPixel submodules","type":"function","autoload":{"psr-4":{"EnableMediaReplace\\ShortPixelLogger":"log\/src","EnableMediaReplace\\Notices":"notices\/src","EnableMediaReplace\\FileSystem":"filesystem\/src"}}}
{"name":"EnableMediaReplace\/shortpixelmodules","description":"ShortPixel submodules","type":"function","autoload":{"psr-4":{"EnableMediaReplace\\ShortPixelLogger":"log\/src","EnableMediaReplace\\Notices":"notices\/src","EnableMediaReplace\\Replacer":"replacer\/src","EnableMediaReplace\\FileSystem":"filesystem\/src"}}}
11 changes: 10 additions & 1 deletion build/shortpixel/filesystem/src/Model/File/FileModel.php
Original file line number Diff line number Diff line change
Expand Up @@ -416,6 +416,15 @@ public function getMime()
if ($this->exists() && ! $this->is_virtual() )
{
$this->mime = wp_get_image_mime($this->fullpath);
if (false === $this->mime)
{
$image_data = wp_check_filetype_and_ext($this->getFullPath(), $this->getFileName());
if (is_array($image_data) && isset($image_data['type']) && strlen($image_data['type']) > 0)
{
$this->mime = $image_data['type'];
}

}
}
else
$this->mime = false;
Expand Down Expand Up @@ -591,7 +600,7 @@ private function relativeToFullPath($path)
public function getPermissions()
{
if (is_null($this->permissions))
$this->permissions = fileperms($this->fullpath) & 0777;
$this->permissions = fileperms($this->getFullPath()) & 0777;

return $this->permissions;
}
Expand Down
21 changes: 19 additions & 2 deletions build/shortpixel/notices/src/css/notices.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion build/shortpixel/notices/src/css/notices.css.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

30 changes: 25 additions & 5 deletions build/shortpixel/notices/src/css/notices.scss
Original file line number Diff line number Diff line change
@@ -1,16 +1,36 @@

.shortpixel.shortpixel-notice
{
//padding: 18px;
//min-height: 50px;
padding: 8px;

min-height: 75px;
padding: 8px;
display: flex;
align-items: center;
background: #fff;
padding: 1px 12px;
box-shadow: 0 1px 1px rgba(0,0,0,0.04);
border: 1px solid #c3c4c7;
margin: 15px 0;
border-left-width: 4px;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
margin: 5px 15px 2px;
border-left-color: #72aee6;
position: relative;

span
{
vertical-align: middle;
&.icon {
margin: 0 25px 0 0;
width: 80px;
}
&.content
{
padding: 8px 0;
word-wrap: break-word;
overflow: hidden;
//display: flex; // magically fixes verticality issues
}
}

img
{
display:inline-block;
Expand Down
18 changes: 18 additions & 0 deletions build/shortpixel/replacer/composer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"name": "shortpixel/replacer",
"description": "Content Replacer",
"version": 1.1,
"type": "library",
"license": "MIT",
"authors": [
{
"name": "Bas",
"email": "[email protected]"
}
],
"minimum-stability": "dev",
"require": {},
"autoload": {
"psr-4": { "ShortPixel\\Replacer\\" : "src" }
}
}
61 changes: 61 additions & 0 deletions build/shortpixel/replacer/src/Modules/Elementor.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<?php
namespace EnableMediaReplace\Replacer\Modules;

class Elementor
{
private static $instance;

protected $queryKey = 'elementor';

public static function getInstance()
{
if (is_null(self::$instance))
self::$instance = new Elementor();

return self::$instance;
}

public function __construct()
{
if ($this->elementor_is_active()) // elementor is active
{
add_filter('shortpixel/replacer/custom_replace_query', array($this, 'addElementor'), 10, 4); // custom query for elementor \ // problem
// @todo Fix this for SPIO
//add_action('enable-media-replace-upload-done', array($this, 'removeCache') );
}
}

public function addElementor($items, $base_url, $search_urls, $replace_urls)
{
$base_url = $this->addSlash($base_url);
$el_search_urls = $search_urls; //array_map(array($this, 'addslash'), $search_urls);
$el_replace_urls = $replace_urls; //array_map(array($this, 'addslash'), $replace_urls);
$items[$this->queryKey] = array('base_url' => $base_url, 'search_urls' => $el_search_urls, 'replace_urls' => $el_replace_urls);
return $items;
}

public function addSlash($value)
{
global $wpdb;
$value= ltrim($value, '/'); // for some reason the left / isn't picked up by Mysql.
$value= str_replace('/', '\/', $value);
$value = $wpdb->esc_like(($value)); //(wp_slash) / str_replace('/', '\/', $value);

return $value;
}

protected function elementor_is_active()
{
$bool = false;

if (defined('ELEMENTOR_VERSION'))
$bool = true;

return apply_filters('emr/externals/elementor_is_active', $bool); // manual override
}

public function removeCache()
{
\Elementor\Plugin::$instance->files_manager->clear_cache();
}
}
50 changes: 50 additions & 0 deletions build/shortpixel/replacer/src/Modules/WpBakery.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<?php
namespace EnableMediaReplace\Replacer\Modules;
// Note! This class doubles as integration for both Visual Composer *and* WP Bakery. They both need URLENCODE.
class WpBakery
{
private static $instance;

protected $queryKey = 'wpbakery';

public static function getInstance()
{
if (is_null(self::$instance))
self::$instance = new WpBakery();

return self::$instance;
}

public function __construct()
{
if ($this->bakery_is_active()) // elementor is active
{
add_filter('shortpixel/replacer/custom_replace_query', array($this, 'addURLEncoded'), 10, 4); // custom query for elementor \ // problem
}
}

public function addUrlEncoded($items, $base_url, $search_urls, $replace_urls)
{
$base_url = $this->addEncode($base_url);
$el_search_urls = array_map(array($this, 'addEncode'), $search_urls);
$el_replace_urls = array_map(array($this, 'addEncode'), $replace_urls);
$items[$this->queryKey] = array('base_url' => $base_url, 'search_urls' => $el_search_urls, 'replace_urls' => $el_replace_urls);
return $items;
}

public function addEncode($value)
{
return urlencode($value);
}

protected function bakery_is_active()
{
$bool = false;

// did_action -> wpbakery , VCV_version -> detect Visual Composer
if (did_action('vc_plugins_loaded') || defined('VCV_VERSION'))
$bool = true;

return apply_filters('emr/externals/urlencode_is_active', $bool); // manual override
}
}
71 changes: 71 additions & 0 deletions build/shortpixel/replacer/src/Modules/YoastSeo.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
<?php
namespace EnableMediaReplace\Replacer\Modules;
use EnableMediaReplace\ShortPixelLogger\ShortPixelLogger as Log;

// Integration to reset indexes of Yoast (used for Og:image) when something is converted.
class YoastSeo
{

private $yoastTable;
private static $instance;

public static function getInstance()
{
if (is_null(self::$instance))
self::$instance = new YoastSeo();

return self::$instance;
}

public function __construct()
{
if (true === $this->yoast_is_active()) // elementor is active
{
global $wpdb;
$this->yoastTable = $wpdb->prefix . 'yoast_indexable';

add_action('shortpixel/replacer/replace_urls', array($this, 'removeIndexes'),10,2);
}
}

public function removeIndexes($search_urls, $replace_urls)
{
global $wpdb;

$sql = 'DELETE FROM ' . $this->yoastTable . ' WHERE ';
$prepare = array();

$base = isset($search_urls['base']) ? $search_urls['base'] : null;
$file = isset($search_urls['file']) ? $search_urls['file'] : null;

if (! is_null($base))
{
$querySQL = $sql . ' twitter_image like %s or open_graph_image like %s ';
$querySQL = $wpdb->prepare($querySQL, '%' . $base . '%', '%' . $base . '%');

$wpdb->query($querySQL);
}

if (! is_null($file))
{
$querySQL = $sql . ' twitter_image like %s or open_graph_image like %s ';
$querySQL = $wpdb->prepare($querySQL, '%' . $file . '%', '%' . $file . '%');

$wpdb->query($querySQL);
}

}

protected function yoast_is_active()
{
if (defined('WPSEO_VERSION'))
{
return true;
}
return false;
}




}
Loading

0 comments on commit 770e4f9

Please sign in to comment.