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 = $this['alchemy_embed.resource_resolvers'];
|
||||||
$resolvers['datafile'] = $resolvers->share(function () {
|
$resolvers['datafile'] = $resolvers->share(function () {
|
||||||
return new DatafilesResolver($this->getApplicationBox(), $this['url_generator']);
|
return new DatafilesResolver($this->getApplicationBox());
|
||||||
});
|
});
|
||||||
$resolvers['permalinks_permalink'] = $resolvers->share(function () {
|
$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 () {
|
$resolvers['media_accessor'] = $resolvers->share(function () {
|
||||||
return new MediaAccessorResolver(
|
return new MediaAccessorResolver(
|
||||||
$this->getApplicationBox(),
|
$this->getApplicationBox(), $this['controller.media_accessor']
|
||||||
$this['url_generator'],
|
|
||||||
$this['controller.media_accessor']
|
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@@ -11,6 +11,7 @@
|
|||||||
namespace Alchemy\Phrasea\Controller;
|
namespace Alchemy\Phrasea\Controller;
|
||||||
|
|
||||||
use Alchemy\Embed\Media\Media;
|
use Alchemy\Embed\Media\Media;
|
||||||
|
use Alchemy\Embed\Media\MediaInformation;
|
||||||
use Alchemy\Phrasea\Application;
|
use Alchemy\Phrasea\Application;
|
||||||
use Alchemy\Phrasea\Application\Helper\ApplicationBoxAware;
|
use Alchemy\Phrasea\Application\Helper\ApplicationBoxAware;
|
||||||
use Alchemy\Phrasea\Authentication\ACLProvider;
|
use Alchemy\Phrasea\Authentication\ACLProvider;
|
||||||
@@ -70,17 +71,28 @@ class PermalinkController extends AbstractDelivery
|
|||||||
|
|
||||||
public function deliverPermaview(Request $request, $sbas_id, $record_id, $subdef)
|
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);
|
$databox = $this->findDataboxById($sbas_id);
|
||||||
$record = $this->retrieveRecord($databox, $token, $record_id, $subdefName);
|
$record = $this->retrieveRecord($databox, $token, $record_id, $subdefName);
|
||||||
$metaData = $this->mediaService->getMetaData($request, $record, $subdefName);
|
|
||||||
$subdef = $record->get_subdef($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', [
|
return $this->app['twig']->render('overview.html.twig', [
|
||||||
'ogMetaData' => $metaData['ogMetaData'],
|
'ogMetaData' => $metaData['ogMetaData'],
|
||||||
'subdef' => $subdef,
|
'subdef' => $subdef,
|
||||||
@@ -89,19 +101,13 @@ class PermalinkController extends AbstractDelivery
|
|||||||
'view' => 'overview',
|
'view' => 'overview',
|
||||||
'token' => $token,
|
'token' => $token,
|
||||||
'record' => $record,
|
'record' => $record,
|
||||||
'recordUrl' => $this->app->url('permalinks_permalink', [
|
'recordUrl' => $information->getUrl(),
|
||||||
'sbas_id' => $sbas_id,
|
|
||||||
'record_id' => $record_id,
|
|
||||||
'subdef' => $subdefName,
|
|
||||||
'label' => $record->get_title(),
|
|
||||||
'token' => $token,
|
|
||||||
])
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function deliverPermaviewOldWay(Request $request, $sbas_id, $record_id, $token, $subdef)
|
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)
|
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\MediaInformation;
|
||||||
use Alchemy\Embed\Media\ResourceResolver;
|
use Alchemy\Embed\Media\ResourceResolver;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
|
||||||
|
|
||||||
class DatafilesResolver implements ResourceResolver
|
class DatafilesResolver implements ResourceResolver
|
||||||
{
|
{
|
||||||
/** @var \appbox */
|
/** @var \appbox */
|
||||||
private $appbox;
|
private $appbox;
|
||||||
/** @var UrlGeneratorInterface */
|
|
||||||
private $urlGenerator;
|
|
||||||
|
|
||||||
public function __construct(\appbox $appbox, UrlGeneratorInterface $urlGenerator)
|
public function __construct(\appbox $appbox)
|
||||||
{
|
{
|
||||||
$this->appbox = $appbox;
|
$this->appbox = $appbox;
|
||||||
$this->urlGenerator = $urlGenerator;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function resolve(Request $request, $routeName, array $routeParameters)
|
public function resolve(Request $request, $routeName, array $routeParameters)
|
||||||
{
|
{
|
||||||
$parameters = array_replace(
|
$parameters = array_intersect_key($routeParameters, [
|
||||||
$request->query->all(),
|
'sbas_id' => null,
|
||||||
array_intersect_key($routeParameters, [
|
'record_id' => null,
|
||||||
'sbas_id' => null,
|
'subdef' => null,
|
||||||
'record_id' => null,
|
]);
|
||||||
'subdef' => null,
|
|
||||||
])
|
|
||||||
);
|
|
||||||
|
|
||||||
$databox = $this->appbox->get_databox((int) $parameters['sbas_id']);
|
$databox = $this->appbox->get_databox((int) $parameters['sbas_id']);
|
||||||
$record = $databox->get_record((int)$parameters['record_id']);
|
$record = $databox->get_record((int)$parameters['record_id']);
|
||||||
$subdef = $record->get_subdef($parameters['subdef']);
|
$subdef = $record->get_subdef($parameters['subdef']);
|
||||||
|
|
||||||
$urlGenerator = $this->urlGenerator;
|
return new MediaInformation($subdef, $request, $routeName, $routeParameters);
|
||||||
$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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -13,7 +13,6 @@ use Alchemy\Embed\Media\MediaInformation;
|
|||||||
use Alchemy\Embed\Media\ResourceResolver;
|
use Alchemy\Embed\Media\ResourceResolver;
|
||||||
use Alchemy\Phrasea\Controller\MediaAccessorController;
|
use Alchemy\Phrasea\Controller\MediaAccessorController;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
|
||||||
|
|
||||||
class MediaAccessorResolver implements ResourceResolver
|
class MediaAccessorResolver implements ResourceResolver
|
||||||
{
|
{
|
||||||
@@ -21,24 +20,18 @@ class MediaAccessorResolver implements ResourceResolver
|
|||||||
private $appbox;
|
private $appbox;
|
||||||
/** @var MediaAccessorController */
|
/** @var MediaAccessorController */
|
||||||
private $controller;
|
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->appbox = $appbox;
|
||||||
$this->urlGenerator = $urlGenerator;
|
|
||||||
$this->controller = $controller;
|
$this->controller = $controller;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function resolve(Request $request, $routeName, array $routeParameters)
|
public function resolve(Request $request, $routeName, array $routeParameters)
|
||||||
{
|
{
|
||||||
$parameters = array_replace(
|
$parameters = array_intersect_key($routeParameters, [
|
||||||
$request->query->all(),
|
'token' => null,
|
||||||
array_intersect_key($routeParameters, [
|
]);
|
||||||
'token' => null,
|
|
||||||
])
|
|
||||||
);
|
|
||||||
|
|
||||||
list ($sbas_id, $record_id, $subdefName) = $this->controller->validateToken($parameters['token']);
|
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);
|
$record = $databox->get_record($record_id);
|
||||||
$subdef = $record->get_subdef($subdefName);
|
$subdef = $record->get_subdef($subdefName);
|
||||||
|
|
||||||
$urlGenerator = $this->urlGenerator;
|
return new MediaInformation($subdef, $request, $routeName, $routeParameters);
|
||||||
$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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -12,19 +12,15 @@ namespace Alchemy\Phrasea\Media;
|
|||||||
use Alchemy\Embed\Media\MediaInformation;
|
use Alchemy\Embed\Media\MediaInformation;
|
||||||
use Alchemy\Embed\Media\ResourceResolver;
|
use Alchemy\Embed\Media\ResourceResolver;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
|
||||||
|
|
||||||
class PermalinkMediaResolver implements ResourceResolver
|
class PermalinkMediaResolver implements ResourceResolver
|
||||||
{
|
{
|
||||||
/** @var \appbox */
|
/** @var \appbox */
|
||||||
private $appbox;
|
private $appbox;
|
||||||
/** @var UrlGeneratorInterface */
|
|
||||||
private $urlGenerator;
|
|
||||||
|
|
||||||
public function __construct(\appbox $appbox, UrlGeneratorInterface $urlGenerator)
|
public function __construct(\appbox $appbox)
|
||||||
{
|
{
|
||||||
$this->appbox = $appbox;
|
$this->appbox = $appbox;
|
||||||
$this->urlGenerator = $urlGenerator;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function resolve(Request $request, $routeName, array $routeParameters)
|
public function resolve(Request $request, $routeName, array $routeParameters)
|
||||||
@@ -43,10 +39,6 @@ class PermalinkMediaResolver implements ResourceResolver
|
|||||||
$record = $databox->get_record((int)$parameters['record_id']);
|
$record = $databox->get_record((int)$parameters['record_id']);
|
||||||
$subdef = $record->get_subdef($parameters['subdef']);
|
$subdef = $record->get_subdef($parameters['subdef']);
|
||||||
|
|
||||||
$urlGenerator = $this->urlGenerator;
|
return new MediaInformation($subdef, $request, $routeName, $routeParameters);
|
||||||
$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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user