diff --git a/composer.json b/composer.json index 0a080aa..b875d59 100644 --- a/composer.json +++ b/composer.json @@ -9,7 +9,7 @@ } ], "require": { - "imbo/imboclient": "~1.0" + "imbo/imboclient": "~2.0" }, "autoload": { "classmap": [ diff --git a/lib/core/DrPublishApiClient.php b/lib/core/DrPublishApiClient.php index 1f3e724..1ee0a60 100644 --- a/lib/core/DrPublishApiClient.php +++ b/lib/core/DrPublishApiClient.php @@ -641,16 +641,27 @@ public static function resizeImboImage($src, $width, $height) { $imboUrl = ImboImageUrl::factory($src); $imageIdentifier = $imboUrl->getImageIdentifier(); - $transformations = $imboUrl->getQuery()->get('t'); - - $imboUrl = self::getImboClient()->getImageUrl($imageIdentifier); - foreach ($transformations as $transformation) { - if (strpos($transformation, 'maxSize') === false) { - $imboUrl->addTransformation($transformation); + $transformations = (array) $imboUrl->getQuery()->get('t'); + $imboClient = self::getImboClient(); + + if ($imboClient) { + $user = $imboUrl->getUser(); + $originalUser = $imboClient->getUser(); + if (!empty($user)) { + $imboClient->setUser($user); + } + $imboUrl = $imboClient->getImageUrl($imageIdentifier); + $imboClient->setUser($originalUser); + foreach ($transformations as $transformation) { + if (strpos($transformation, 'maxSize') === false) { + $imboUrl->addTransformation($transformation); + } } + + return $imboUrl->maxSize($width, $height)->resize($width); } - return $imboUrl->maxSize($width, $height)->resize($width); + return null; } public static function setImboClient($imboClient) { @@ -660,13 +671,22 @@ public static function setImboClient($imboClient) { public static function getImboClient() { if (!self::$imboClient) { $imboConfig = self::getConfigOption('imbo'); - $imboClient = ImboClient\ImboClient::factory($imboConfig); - self::setImboClient($imboClient); + if ($imboConfig) { + $imboClient = ImboClient\ImboClient::factory($imboConfig); + self::setImboClient($imboClient); + } } return self::$imboClient; } + public static function setImboConfig($config) { + if (!is_array(self::$configs)) { + self::$configs = array(); + } + self::$configs['imbo'] = $config; + } + public function getCurlInfo() { return $this->curlInfo;