mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-18 15:33:15 +00:00
Remove url_generator from ResourceResolver s
This commit is contained in:
@@ -378,16 +378,14 @@ class Application extends SilexApplication
|
||||
|
||||
$resolvers = $this['alchemy_embed.resource_resolvers'];
|
||||
$resolvers['datafile'] = $resolvers->share(function () {
|
||||
return new DatafilesResolver($this->getApplicationBox(), $this['url_generator']);
|
||||
return new DatafilesResolver($this->getApplicationBox());
|
||||
});
|
||||
$resolvers['permalinks_permalink'] = $resolvers->share(function () {
|
||||
return new PermalinkMediaResolver($this->getApplicationBox(), $this['url_generator']);
|
||||
return new PermalinkMediaResolver($this->getApplicationBox());
|
||||
});
|
||||
$resolvers['media_accessor'] = $resolvers->share(function () {
|
||||
return new MediaAccessorResolver(
|
||||
$this->getApplicationBox(),
|
||||
$this['url_generator'],
|
||||
$this['controller.media_accessor']
|
||||
$this->getApplicationBox(), $this['controller.media_accessor']
|
||||
);
|
||||
});
|
||||
}
|
||||
|
@@ -11,6 +11,7 @@
|
||||
namespace Alchemy\Phrasea\Controller;
|
||||
|
||||
use Alchemy\Embed\Media\Media;
|
||||
use Alchemy\Embed\Media\MediaInformation;
|
||||
use Alchemy\Phrasea\Application;
|
||||
use Alchemy\Phrasea\Application\Helper\ApplicationBoxAware;
|
||||
use Alchemy\Phrasea\Authentication\ACLProvider;
|
||||
@@ -70,17 +71,28 @@ class PermalinkController extends AbstractDelivery
|
||||
|
||||
public function deliverPermaview(Request $request, $sbas_id, $record_id, $subdef)
|
||||
{
|
||||
return $this->doDeliverPermaview($request, $sbas_id, $record_id, $request->query->get('token'), $subdef);
|
||||
return $this->doDeliverPermaview($sbas_id, $record_id, $request->query->get('token'), $subdef);
|
||||
}
|
||||
|
||||
private function doDeliverPermaview(Request $request, $sbas_id, $record_id, $token, $subdefName)
|
||||
private function doDeliverPermaview($sbas_id, $record_id, $token, $subdefName)
|
||||
{
|
||||
|
||||
$databox = $this->findDataboxById($sbas_id);
|
||||
$record = $this->retrieveRecord($databox, $token, $record_id, $subdefName);
|
||||
$metaData = $this->mediaService->getMetaData($request, $record, $subdefName);
|
||||
$subdef = $record->get_subdef($subdefName);
|
||||
|
||||
$information = $this->mediaService->createMediaInformationFromResourceAndRoute(
|
||||
$subdef,
|
||||
'permalinks_permalink',
|
||||
[
|
||||
'sbas_id' => $sbas_id,
|
||||
'record_id' => $record_id,
|
||||
'subdef' => $subdefName,
|
||||
'label' => $record->get_title(),
|
||||
'token' => $token,
|
||||
]
|
||||
);
|
||||
$metaData = $this->mediaService->getMetaData($information);
|
||||
|
||||
return $this->app['twig']->render('overview.html.twig', [
|
||||
'ogMetaData' => $metaData['ogMetaData'],
|
||||
'subdef' => $subdef,
|
||||
@@ -89,19 +101,13 @@ class PermalinkController extends AbstractDelivery
|
||||
'view' => 'overview',
|
||||
'token' => $token,
|
||||
'record' => $record,
|
||||
'recordUrl' => $this->app->url('permalinks_permalink', [
|
||||
'sbas_id' => $sbas_id,
|
||||
'record_id' => $record_id,
|
||||
'subdef' => $subdefName,
|
||||
'label' => $record->get_title(),
|
||||
'token' => $token,
|
||||
])
|
||||
'recordUrl' => $information->getUrl(),
|
||||
]);
|
||||
}
|
||||
|
||||
public function deliverPermaviewOldWay(Request $request, $sbas_id, $record_id, $token, $subdef)
|
||||
{
|
||||
return $this->doDeliverPermaview($request, $sbas_id, $record_id, $token, $subdef);
|
||||
return $this->doDeliverPermaview($sbas_id, $record_id, $token, $subdef);
|
||||
}
|
||||
|
||||
public function deliverPermalink(Request $request, $sbas_id, $record_id, $subdef)
|
||||
|
@@ -12,40 +12,29 @@ namespace Alchemy\Phrasea\Media;
|
||||
use Alchemy\Embed\Media\MediaInformation;
|
||||
use Alchemy\Embed\Media\ResourceResolver;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
|
||||
class DatafilesResolver implements ResourceResolver
|
||||
{
|
||||
/** @var \appbox */
|
||||
private $appbox;
|
||||
/** @var UrlGeneratorInterface */
|
||||
private $urlGenerator;
|
||||
|
||||
public function __construct(\appbox $appbox, UrlGeneratorInterface $urlGenerator)
|
||||
public function __construct(\appbox $appbox)
|
||||
{
|
||||
$this->appbox = $appbox;
|
||||
$this->urlGenerator = $urlGenerator;
|
||||
}
|
||||
|
||||
public function resolve(Request $request, $routeName, array $routeParameters)
|
||||
{
|
||||
$parameters = array_replace(
|
||||
$request->query->all(),
|
||||
array_intersect_key($routeParameters, [
|
||||
$parameters = array_intersect_key($routeParameters, [
|
||||
'sbas_id' => null,
|
||||
'record_id' => null,
|
||||
'subdef' => null,
|
||||
])
|
||||
);
|
||||
]);
|
||||
|
||||
$databox = $this->appbox->get_databox((int) $parameters['sbas_id']);
|
||||
$record = $databox->get_record((int)$parameters['record_id']);
|
||||
$subdef = $record->get_subdef($parameters['subdef']);
|
||||
|
||||
$urlGenerator = $this->urlGenerator;
|
||||
$url = $urlGenerator->generate($routeName, $parameters, $urlGenerator::ABSOLUTE_URL);
|
||||
$embedUrl = $urlGenerator->generate('alchemy_embed_view', ['url' => $url], $urlGenerator::ABSOLUTE_URL);
|
||||
|
||||
return new MediaInformation($subdef, $url, $embedUrl);
|
||||
return new MediaInformation($subdef, $request, $routeName, $routeParameters);
|
||||
}
|
||||
}
|
||||
|
@@ -13,7 +13,6 @@ use Alchemy\Embed\Media\MediaInformation;
|
||||
use Alchemy\Embed\Media\ResourceResolver;
|
||||
use Alchemy\Phrasea\Controller\MediaAccessorController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
|
||||
class MediaAccessorResolver implements ResourceResolver
|
||||
{
|
||||
@@ -21,24 +20,18 @@ class MediaAccessorResolver implements ResourceResolver
|
||||
private $appbox;
|
||||
/** @var MediaAccessorController */
|
||||
private $controller;
|
||||
/** @var UrlGeneratorInterface */
|
||||
private $urlGenerator;
|
||||
|
||||
public function __construct(\appbox $appbox, UrlGeneratorInterface $urlGenerator, MediaAccessorController $controller)
|
||||
public function __construct(\appbox $appbox, MediaAccessorController $controller)
|
||||
{
|
||||
$this->appbox = $appbox;
|
||||
$this->urlGenerator = $urlGenerator;
|
||||
$this->controller = $controller;
|
||||
}
|
||||
|
||||
public function resolve(Request $request, $routeName, array $routeParameters)
|
||||
{
|
||||
$parameters = array_replace(
|
||||
$request->query->all(),
|
||||
array_intersect_key($routeParameters, [
|
||||
$parameters = array_intersect_key($routeParameters, [
|
||||
'token' => null,
|
||||
])
|
||||
);
|
||||
]);
|
||||
|
||||
list ($sbas_id, $record_id, $subdefName) = $this->controller->validateToken($parameters['token']);
|
||||
|
||||
@@ -46,10 +39,6 @@ class MediaAccessorResolver implements ResourceResolver
|
||||
$record = $databox->get_record($record_id);
|
||||
$subdef = $record->get_subdef($subdefName);
|
||||
|
||||
$urlGenerator = $this->urlGenerator;
|
||||
$url = $urlGenerator->generate($routeName, $parameters, $urlGenerator::ABSOLUTE_URL);
|
||||
$embedUrl = $urlGenerator->generate('alchemy_embed_view', ['url' => $url], $urlGenerator::ABSOLUTE_URL);
|
||||
|
||||
return new MediaInformation($subdef, $url, $embedUrl);
|
||||
return new MediaInformation($subdef, $request, $routeName, $routeParameters);
|
||||
}
|
||||
}
|
||||
|
@@ -12,19 +12,15 @@ namespace Alchemy\Phrasea\Media;
|
||||
use Alchemy\Embed\Media\MediaInformation;
|
||||
use Alchemy\Embed\Media\ResourceResolver;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
|
||||
class PermalinkMediaResolver implements ResourceResolver
|
||||
{
|
||||
/** @var \appbox */
|
||||
private $appbox;
|
||||
/** @var UrlGeneratorInterface */
|
||||
private $urlGenerator;
|
||||
|
||||
public function __construct(\appbox $appbox, UrlGeneratorInterface $urlGenerator)
|
||||
public function __construct(\appbox $appbox)
|
||||
{
|
||||
$this->appbox = $appbox;
|
||||
$this->urlGenerator = $urlGenerator;
|
||||
}
|
||||
|
||||
public function resolve(Request $request, $routeName, array $routeParameters)
|
||||
@@ -43,10 +39,6 @@ class PermalinkMediaResolver implements ResourceResolver
|
||||
$record = $databox->get_record((int)$parameters['record_id']);
|
||||
$subdef = $record->get_subdef($parameters['subdef']);
|
||||
|
||||
$urlGenerator = $this->urlGenerator;
|
||||
$url = $urlGenerator->generate($routeName, $parameters, $urlGenerator::ABSOLUTE_URL);
|
||||
$embedUrl = $urlGenerator->generate('alchemy_embed_view', ['url' => $url], $urlGenerator::ABSOLUTE_URL);
|
||||
|
||||
return new MediaInformation($subdef, $url, $embedUrl);
|
||||
return new MediaInformation($subdef, $request, $routeName, $routeParameters);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user