ORIENT/modules/system/classes/SystemController.php

74 lines
2.3 KiB
PHP
Raw Normal View History

<?php namespace System\Classes;
2015-02-23 08:55:06 +00:00
use Lang;
use Response;
use Exception;
use SystemException;
2015-01-28 07:03:35 +00:00
use ApplicationException;
2015-02-23 08:55:06 +00:00
use Illuminate\Routing\Controller as ControllerBase;
/**
* The is the master controller for system related routing.
* It is currently only responsible for serving up the asset combiner contents.
*
* @see System\Classes\CombineAssets Asset combiner class
* @package october\system
* @author Alexey Bobkov, Samuel Georges, Luke Towers
*/
class SystemController extends ControllerBase
{
/**
* Combines JavaScript and StyleSheet assets.
* @param string $name Combined file code
* @return string Combined content.
*/
public function combine($name)
{
2014-10-18 09:58:50 +00:00
try {
if (!strpos($name, '-')) {
throw new ApplicationException(Lang::get('system::lang.combiner.not_found', ['name' => $name]));
}
2014-10-18 23:58:18 +00:00
2014-10-18 09:58:50 +00:00
$parts = explode('-', $name);
2014-10-18 09:58:50 +00:00
$cacheId = $parts[0];
2014-10-18 23:58:18 +00:00
$combiner = CombineAssets::instance();
2014-10-18 23:58:18 +00:00
return $combiner->getContents($cacheId);
} catch (Exception $ex) {
return Response::make('/* '.e($ex->getMessage()).' */', 500);
2014-10-18 09:58:50 +00:00
}
}
/**
* Resizes an image using the provided configuration
* and returns a redirect to the resized image
*
* @param string $identifier The identifier used to retrieve the image configuration
* @return RedirectResponse
*/
2020-08-09 02:18:11 +00:00
public function resizer(string $identifier)
{
2020-08-09 02:18:11 +00:00
// The URL-encoded URL to the resized image has to be passed as a GET variable
// because of Laravel rawurldecode's the requested URL before passing it to the routing engine
// @see https://github.com/laravel/framework/pull/4338
$encodedUrl = input('t');
$resizedUrl = ImageResizer::getValidResizedUrl($identifier, $encodedUrl);
if (empty($resizedUrl)) {
return response('Invalid identifier or redirect URL', 400);
}
// Attempt to process the resize
try {
$resizer = ImageResizer::fromIdentifier($identifier);
$resizer->resize();
} catch (SystemException $ex) {
2020-08-09 02:18:11 +00:00
// If the resizing failed it was most likely because it is in progress or has already finished
}
2020-08-09 02:18:11 +00:00
return redirect()->to($resizedUrl);
}
2014-10-18 09:58:50 +00:00
}