From 3c90d2c5d800ca943e4cc38a0d12015dcb471eea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hyacinthe=20Compaor=C3=A9?= <131278191+compaoreh338@users.noreply.github.com> Date: Fri, 19 Sep 2025 17:35:03 +0000 Subject: [PATCH 01/11] FEAT: v12 --- Classes/Controller/GalleryController.php | 25 ++++++++++---------- Classes/Persistence/Matcher.php | 7 +++--- Classes/ViewHelpers/ImageStackViewHelper.php | 20 +++++++++++++++- Classes/ViewHelpers/LoadAssetsViewHelper.php | 24 +++++++++++-------- composer.json | 2 +- ext_localconf.php | 2 +- ext_tables.php | 2 +- 7 files changed, 51 insertions(+), 31 deletions(-) diff --git a/Classes/Controller/GalleryController.php b/Classes/Controller/GalleryController.php index 2b18bb97..c7358cbb 100644 --- a/Classes/Controller/GalleryController.php +++ b/Classes/Controller/GalleryController.php @@ -32,13 +32,11 @@ class GalleryController extends ActionController { protected ImageGalleryRepository $galleryRepository; - protected DemandFactory $demandFactory; - protected OrderFactory $orderFactory; + protected CategoryRepository $categoryRepository; protected array $configuration = array(); - protected $settings = []; protected array $allowedColumns = [ @@ -48,11 +46,16 @@ class GalleryController extends ActionController 'uid', ]; - public function initializeAction(): void - { - $this->galleryRepository = GeneralUtility::makeInstance(ImageGalleryRepository::class); - $this->orderFactory = GeneralUtility::makeInstance(OrderFactory::class); - $this->demandFactory = GeneralUtility::makeInstance(DemandFactory::class); + public function __construct( + ImageGalleryRepository $galleryRepository, + DemandFactory $demandFactory, + OrderFactory $orderFactory, + CategoryRepository $categoryRepository + ) { + $this->galleryRepository = $galleryRepository; + $this->demandFactory = $demandFactory; + $this->orderFactory = $orderFactory; + $this->categoryRepository = $categoryRepository; } /** @@ -68,7 +71,7 @@ public function listAction() $images = $this->galleryRepository->findByDemand($this->getDemand(), (array)$this->getOrderings(),0,0); $identifiers = GeneralUtility::trimExplode(',', $this->settings['categories'], TRUE); - $categories = $this->getCategoryRepository()->findByIdentifiers($identifiers); + $categories = $this->categoryRepository->findByIdentifiers($identifiers); // Assign template variables $this->view->assign('settings', $this->settings); $this->view->assign('data', $this->configurationManager->getcontentObject()->data); @@ -83,10 +86,6 @@ protected function getOrderings(): \Fab\NaturalGallery\Persistence\Order } - protected function getCategoryRepository(): CategoryRepository - { - return GeneralUtility::makeInstance(CategoryRepository::class); - } protected function getDemand(): array { diff --git a/Classes/Persistence/Matcher.php b/Classes/Persistence/Matcher.php index 24e80f21..f2d6bb34 100644 --- a/Classes/Persistence/Matcher.php +++ b/Classes/Persistence/Matcher.php @@ -265,13 +265,12 @@ public function getIn(): array /** * @param $fieldNameAndPath * @param $operand - * @param bool $addWildCard * @return $this */ - public function like($fieldNameAndPath, $operand, bool $addWildCard = true): self + public function like($fieldNameAndPath, $operand): self { - $wildCardSymbol = $addWildCard ? '%' : ''; - $this->like[] = ['fieldNameAndPath' => $fieldNameAndPath, 'operand' => $wildCardSymbol . $operand . $wildCardSymbol]; + // Add wildcards by default for LIKE queries + $this->like[] = ['fieldNameAndPath' => $fieldNameAndPath, 'operand' => '%' . $operand . '%']; return $this; } diff --git a/Classes/ViewHelpers/ImageStackViewHelper.php b/Classes/ViewHelpers/ImageStackViewHelper.php index 928adb0a..90b8609a 100644 --- a/Classes/ViewHelpers/ImageStackViewHelper.php +++ b/Classes/ViewHelpers/ImageStackViewHelper.php @@ -20,6 +20,8 @@ use TYPO3\CMS\Core\Resource\ProcessedFile; use TYPO3\CMS\Core\Resource\ResourceFactory; use TYPO3\CMS\Core\Utility\GeneralUtility; +use TYPO3\CMS\Core\Site\SiteFinder; +use TYPO3\CMS\Core\Context\Context; use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper; /** @@ -60,7 +62,7 @@ public function render(): string },$metadataCategories); } - $baseUrl = GeneralUtility::getIndpEnv('TYPO3_SITE_URL'); + $baseUrl = $this->getSiteUrl(); $item = [ 'thumbnail' => $baseUrl . $thumbnailFile->getPublicUrl(), 'enlarged' => $baseUrl . $enlargedFile->getPublicUrl(), @@ -112,4 +114,20 @@ public function getSettings() { return $this->templateVariableContainer->get('settings'); } + + /** + * Get the site URL + * @return string + */ + protected function getSiteUrl(): string + { + $siteFinder = GeneralUtility::makeInstance(SiteFinder::class); + + // Get current page ID from context or fallback to 1 + $context = GeneralUtility::makeInstance(Context::class); + $pageId = $context->getPropertyFromAspect('frontend.page', 'id', 1); + + $site = $siteFinder->getSiteByPageId($pageId); + return (string)$site->getBase(); + } } diff --git a/Classes/ViewHelpers/LoadAssetsViewHelper.php b/Classes/ViewHelpers/LoadAssetsViewHelper.php index 84fd4fb4..0cad6d00 100644 --- a/Classes/ViewHelpers/LoadAssetsViewHelper.php +++ b/Classes/ViewHelpers/LoadAssetsViewHelper.php @@ -28,6 +28,18 @@ */ class LoadAssetsViewHelper extends AbstractViewHelper { + /** + * @var PageRenderer + */ + protected PageRenderer $pageRenderer; + + /** + * @param PageRenderer $pageRenderer + */ + public function __construct(PageRenderer $pageRenderer) + { + $this->pageRenderer = $pageRenderer; + } /** * @return void @@ -78,9 +90,9 @@ protected function loadByCorePageRender(array $asset): void $fileNameAndPath = PathUtility::stripPathSitePrefix($fileNameAndPath); if ($asset['type'] === 'js') { - $this->getPageRenderer()->addJsFooterFile($fileNameAndPath); + $this->pageRenderer->addJsFooterFile($fileNameAndPath); } elseif ($asset['type'] === 'css') { - $this->getPageRenderer()->addCssFile($fileNameAndPath); + $this->pageRenderer->addCssFile($fileNameAndPath); } } @@ -125,14 +137,6 @@ protected function resolveFileForApplicationContext(array $asset): string return $resolvedFile; } - /** - * @return PageRenderer - */ - protected function getPageRenderer(): PageRenderer - { - return GeneralUtility::makeInstance(PageRenderer::class); - } - /** * Returns an instance of the Frontend object. * diff --git a/composer.json b/composer.json index 4824d873..f65ebb9b 100644 --- a/composer.json +++ b/composer.json @@ -27,6 +27,6 @@ } }, "require": { - "typo3/cms-core": "^11.5" + "typo3/cms-core": "^11.5 | ^12" } } diff --git a/ext_localconf.php b/ext_localconf.php index 9f1a08e2..163a0518 100644 --- a/ext_localconf.php +++ b/ext_localconf.php @@ -2,7 +2,7 @@ use Fab\NaturalGallery\Controller\GalleryController; -defined('TYPO3_MODE') or die(); +defined('TYPO3') or die(); call_user_func( function () { diff --git a/ext_tables.php b/ext_tables.php index 99e5a011..fa8d6037 100644 --- a/ext_tables.php +++ b/ext_tables.php @@ -1,5 +1,5 @@ Date: Mon, 22 Sep 2025 10:07:38 +0000 Subject: [PATCH 02/11] fixup! FEAT: v12 --- composer.json | 2 +- ext_emconf.php | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index f65ebb9b..7018d477 100644 --- a/composer.json +++ b/composer.json @@ -19,7 +19,7 @@ } }, "replace": { - "fab/natural_gallery": "self.version" + "fab/natural-gallery": "self.version" }, "extra": { "typo3/cms": { diff --git a/ext_emconf.php b/ext_emconf.php index 6ca3c064..45932676 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -1,5 +1,7 @@ 'Natural Gallery', 'description' => 'A lazy load, infinite scroll and natural layout list gallery', From 952daaba43842a23c87e0fbf5de74415afe048e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hyacinthe=20Compaor=C3=A9?= <131278191+compaoreh338@users.noreply.github.com> Date: Mon, 22 Sep 2025 10:11:47 +0000 Subject: [PATCH 03/11] fixup! fixup! FEAT: v12 --- Classes/Controller/GalleryController.php | 7 +-- .../Domain/Repository/CategoryRepository.php | 13 +++-- .../Repository/ImageGalleryRepository.php | 47 ++++--------------- Classes/ViewHelpers/ImageStackViewHelper.php | 5 +- Configuration/TCA/Overrides/tt_content.php | 3 ++ composer.json | 2 +- ext_emconf.php | 2 +- ext_localconf.php | 2 +- ext_tables.php | 6 --- 9 files changed, 31 insertions(+), 56 deletions(-) create mode 100644 Configuration/TCA/Overrides/tt_content.php diff --git a/Classes/Controller/GalleryController.php b/Classes/Controller/GalleryController.php index c7358cbb..79651210 100644 --- a/Classes/Controller/GalleryController.php +++ b/Classes/Controller/GalleryController.php @@ -61,12 +61,12 @@ public function __construct( /** * @return void|string */ - public function listAction() + public function listAction(): \Psr\Http\Message\ResponseInterface { if (!isset($this->settings['imagesPerRow'])) { - return 'Please save your plugin settings in the BE beforehand.'; + return $this->htmlResponse('Please save your plugin settings in the BE beforehand.'); } $images = $this->galleryRepository->findByDemand($this->getDemand(), (array)$this->getOrderings(),0,0); @@ -74,9 +74,10 @@ public function listAction() $categories = $this->categoryRepository->findByIdentifiers($identifiers); // Assign template variables $this->view->assign('settings', $this->settings); - $this->view->assign('data', $this->configurationManager->getcontentObject()->data); + $this->view->assign('data', $this->request->getAttribute('currentContentObject')->data); $this->view->assign('images', $images); $this->view->assign('categories', $categories); + return $this->htmlResponse(); } protected function getOrderings(): \Fab\NaturalGallery\Persistence\Order diff --git a/Classes/Domain/Repository/CategoryRepository.php b/Classes/Domain/Repository/CategoryRepository.php index f6e3ab21..6412aabe 100644 --- a/Classes/Domain/Repository/CategoryRepository.php +++ b/Classes/Domain/Repository/CategoryRepository.php @@ -35,6 +35,9 @@ class CategoryRepository * Initialize Repository */ protected string $tableName = 'sys_category'; + public function __construct(private \TYPO3\CMS\Core\Database\ConnectionPool $connectionPool) + { + } /** * @throws Exception @@ -58,7 +61,7 @@ public function findByIdentifiers(array $identifiers): array|QueryResultInterfac public function findFileCategories($uid): array { - $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('sys_file_metadata'); + $queryBuilder = $this->connectionPool->getQueryBuilderForTable('sys_file_metadata'); $queryBuilder->getRestrictions()->removeAll(); $results = []; if ($uid){ @@ -72,9 +75,9 @@ public function findFileCategories($uid): array $queryBuilder->expr()->eq('sys_category.uid', 'sys_category_record_mm.uid_local') ) ->where( - $queryBuilder->expr()->eq('sys_category_record_mm.uid_foreign', $queryBuilder->createNamedParameter($uid, \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('sys_category_record_mm.tablenames', $queryBuilder->createNamedParameter('sys_file_metadata', \PDO::PARAM_STR)) , - $queryBuilder->expr()->eq('sys_category_record_mm.fieldname', $queryBuilder->createNamedParameter('categories', \PDO::PARAM_STR)) + $queryBuilder->expr()->eq('sys_category_record_mm.uid_foreign', $queryBuilder->createNamedParameter($uid, \TYPO3\CMS\Core\Database\Connection::PARAM_INT)), + $queryBuilder->expr()->eq('sys_category_record_mm.tablenames', $queryBuilder->createNamedParameter('sys_file_metadata', \TYPO3\CMS\Core\Database\Connection::PARAM_STR)) , + $queryBuilder->expr()->eq('sys_category_record_mm.fieldname', $queryBuilder->createNamedParameter('categories', \TYPO3\CMS\Core\Database\Connection::PARAM_STR)) ); $results = $query->execute()->fetchAllAssociative(); @@ -86,7 +89,7 @@ public function findFileCategories($uid): array protected function getQueryBuilder(): QueryBuilder { /** @var ConnectionPool $connectionPool */ - $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class); + $connectionPool = $this->connectionPool; return $connectionPool->getQueryBuilderForTable($this->tableName); } } diff --git a/Classes/Domain/Repository/ImageGalleryRepository.php b/Classes/Domain/Repository/ImageGalleryRepository.php index eefb2743..6af5f3cf 100644 --- a/Classes/Domain/Repository/ImageGalleryRepository.php +++ b/Classes/Domain/Repository/ImageGalleryRepository.php @@ -17,6 +17,9 @@ class ImageGalleryRepository protected string $tableName = 'sys_file'; protected array $settings; + public function __construct(private \TYPO3\CMS\Core\Database\ConnectionPool $connectionPool) + { + } public function getDefaultData(string $field):string { @@ -102,60 +105,28 @@ public function findByDemand(array|Matcher $demand = [], array $orderings = [], 'sys_file', 'sys_file_metadata', 'sys_file_metadata', - $queryBuilder->expr()->andX( - $queryBuilder->expr()->eq('sys_file.uid', 'sys_file_metadata.file'), - $queryBuilder->expr()->lte('sys_file_metadata.t3ver_state', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('sys_file_metadata.t3ver_wsid', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)), - $queryBuilder->expr()->orX( - $queryBuilder->expr()->eq('sys_file_metadata.t3ver_oid', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('sys_file_metadata.t3ver_state', $queryBuilder->createNamedParameter(4, \PDO::PARAM_INT)) - ), - $queryBuilder->expr()->in('sys_file_metadata.sys_language_uid', [0, -1]) - ) + $queryBuilder->expr()->and($queryBuilder->expr()->eq('sys_file.uid', 'sys_file_metadata.file'), $queryBuilder->expr()->lte('sys_file_metadata.t3ver_state', $queryBuilder->createNamedParameter(0, \TYPO3\CMS\Core\Database\Connection::PARAM_INT)), $queryBuilder->expr()->eq('sys_file_metadata.t3ver_wsid', $queryBuilder->createNamedParameter(0, \TYPO3\CMS\Core\Database\Connection::PARAM_INT)), $queryBuilder->expr()->or($queryBuilder->expr()->eq('sys_file_metadata.t3ver_oid', $queryBuilder->createNamedParameter(0, \TYPO3\CMS\Core\Database\Connection::PARAM_INT)), $queryBuilder->expr()->eq('sys_file_metadata.t3ver_state', $queryBuilder->createNamedParameter(4, \TYPO3\CMS\Core\Database\Connection::PARAM_INT))), $queryBuilder->expr()->in('sys_file_metadata.sys_language_uid', [0, -1])) ) ->leftJoin( 'sys_file_metadata', 'sys_category_record_mm', 'sys_category_record_mm0', - $queryBuilder->expr()->andX( - $queryBuilder->expr()->eq('sys_file_metadata.uid', 'sys_category_record_mm0.uid_foreign'), - $queryBuilder->expr()->eq('sys_category_record_mm0.tablenames', $queryBuilder->createNamedParameter('sys_file_metadata')), - $queryBuilder->expr()->eq('sys_category_record_mm0.fieldname', $queryBuilder->createNamedParameter('categories')) - ) + $queryBuilder->expr()->and($queryBuilder->expr()->eq('sys_file_metadata.uid', 'sys_category_record_mm0.uid_foreign'), $queryBuilder->expr()->eq('sys_category_record_mm0.tablenames', $queryBuilder->createNamedParameter('sys_file_metadata')), $queryBuilder->expr()->eq('sys_category_record_mm0.fieldname', $queryBuilder->createNamedParameter('categories'))) ) ->leftJoin( 'sys_category_record_mm0', 'sys_category', 'sys_category0', - $queryBuilder->expr()->andX( - $queryBuilder->expr()->eq('sys_category_record_mm0.uid_local', 'sys_category0.uid'), - $queryBuilder->expr()->eq('sys_category0.deleted', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)), - $queryBuilder->expr()->lte('sys_category0.t3ver_state', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('sys_category0.t3ver_wsid', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)), - $queryBuilder->expr()->orX( - $queryBuilder->expr()->eq('sys_category0.t3ver_oid', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('sys_category0.t3ver_state', $queryBuilder->createNamedParameter(4, \PDO::PARAM_INT)) - ), - $queryBuilder->expr()->eq('sys_category0.hidden', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)), - $queryBuilder->expr()->lte('sys_category0.starttime', $queryBuilder->createNamedParameter($timestamp, \PDO::PARAM_INT)), - $queryBuilder->expr()->orX( - $queryBuilder->expr()->eq('sys_category0.endtime', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)), - $queryBuilder->expr()->gt('sys_category0.endtime', $queryBuilder->createNamedParameter($timestamp, \PDO::PARAM_INT)) - ), - $queryBuilder->expr()->in('sys_category0.sys_language_uid', [0, -1]) - ) + $queryBuilder->expr()->and($queryBuilder->expr()->eq('sys_category_record_mm0.uid_local', 'sys_category0.uid'), $queryBuilder->expr()->eq('sys_category0.deleted', $queryBuilder->createNamedParameter(0, \TYPO3\CMS\Core\Database\Connection::PARAM_INT)), $queryBuilder->expr()->lte('sys_category0.t3ver_state', $queryBuilder->createNamedParameter(0, \TYPO3\CMS\Core\Database\Connection::PARAM_INT)), $queryBuilder->expr()->eq('sys_category0.t3ver_wsid', $queryBuilder->createNamedParameter(0, \TYPO3\CMS\Core\Database\Connection::PARAM_INT)), $queryBuilder->expr()->or($queryBuilder->expr()->eq('sys_category0.t3ver_oid', $queryBuilder->createNamedParameter(0, \TYPO3\CMS\Core\Database\Connection::PARAM_INT)), $queryBuilder->expr()->eq('sys_category0.t3ver_state', $queryBuilder->createNamedParameter(4, \TYPO3\CMS\Core\Database\Connection::PARAM_INT))), $queryBuilder->expr()->eq('sys_category0.hidden', $queryBuilder->createNamedParameter(0, \TYPO3\CMS\Core\Database\Connection::PARAM_INT)), $queryBuilder->expr()->lte('sys_category0.starttime', $queryBuilder->createNamedParameter($timestamp, \TYPO3\CMS\Core\Database\Connection::PARAM_INT)), $queryBuilder->expr()->or($queryBuilder->expr()->eq('sys_category0.endtime', $queryBuilder->createNamedParameter(0, \TYPO3\CMS\Core\Database\Connection::PARAM_INT)), $queryBuilder->expr()->gt('sys_category0.endtime', $queryBuilder->createNamedParameter($timestamp, \TYPO3\CMS\Core\Database\Connection::PARAM_INT))), $queryBuilder->expr()->in('sys_category0.sys_language_uid', [0, -1])) ) ->where( - $queryBuilder->expr()->andX( - $queryBuilder->expr()->eq('sys_file.type', $queryBuilder->createNamedParameter(2, \PDO::PARAM_INT)), - $queryBuilder->expr()->in('sys_file.uid', (array)$uids) - ) + $queryBuilder->expr()->and($queryBuilder->expr()->eq('sys_file.type', $queryBuilder->createNamedParameter(2, \TYPO3\CMS\Core\Database\Connection::PARAM_INT)), $queryBuilder->expr()->in('sys_file.uid', (array)$uids)) ) ->orderBy('sys_file.name', 'ASC'); if ($categoryConditions) { $queryBuilder->andWhere( - $queryBuilder->expr()->eq('sys_category0.uid', $queryBuilder->createNamedParameter((int)$categoryConditions, \PDO::PARAM_INT)) + $queryBuilder->expr()->eq('sys_category0.uid', $queryBuilder->createNamedParameter((int)$categoryConditions, \TYPO3\CMS\Core\Database\Connection::PARAM_INT)) ); } @@ -215,7 +186,7 @@ public function findByUids(array $uids): array protected function getQueryBuilder(): QueryBuilder { /** @var ConnectionPool $connectionPool */ - $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class); + $connectionPool = $this->connectionPool; return $connectionPool->getQueryBuilderForTable($this->tableName); } diff --git a/Classes/ViewHelpers/ImageStackViewHelper.php b/Classes/ViewHelpers/ImageStackViewHelper.php index 90b8609a..9d6e0ded 100644 --- a/Classes/ViewHelpers/ImageStackViewHelper.php +++ b/Classes/ViewHelpers/ImageStackViewHelper.php @@ -30,6 +30,9 @@ class ImageStackViewHelper extends AbstractViewHelper { + public function __construct(private \TYPO3\CMS\Core\Context\Context $context) + { + } /** * @return string */ @@ -124,7 +127,7 @@ protected function getSiteUrl(): string $siteFinder = GeneralUtility::makeInstance(SiteFinder::class); // Get current page ID from context or fallback to 1 - $context = GeneralUtility::makeInstance(Context::class); + $context = $this->context; $pageId = $context->getPropertyFromAspect('frontend.page', 'id', 1); $site = $siteFinder->getSiteByPageId($pageId); diff --git a/Configuration/TCA/Overrides/tt_content.php b/Configuration/TCA/Overrides/tt_content.php new file mode 100644 index 00000000..11bef81a --- /dev/null +++ b/Configuration/TCA/Overrides/tt_content.php @@ -0,0 +1,3 @@ + 'Natural Gallery', diff --git a/ext_localconf.php b/ext_localconf.php index 163a0518..5c0f35ac 100644 --- a/ext_localconf.php +++ b/ext_localconf.php @@ -8,7 +8,7 @@ function () { \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( - 'Fab.natural_gallery', + 'NaturalGallery', 'Pi1', [ GalleryController::class => 'list', diff --git a/ext_tables.php b/ext_tables.php index fa8d6037..bf50b48e 100644 --- a/ext_tables.php +++ b/ext_tables.php @@ -3,12 +3,6 @@ die ('Access denied.'); } -\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin( - 'Fab.natural_gallery', - 'Pi1', - 'Natural Gallery' -); - $extensionName = \TYPO3\CMS\Core\Utility\GeneralUtility::underscoredToUpperCamelCase('natural_gallery'); $pluginSignature = strtolower($extensionName) . '_pi1'; From f0aef34f086f5935577848b10374bcfba0d1cb9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hyacinthe=20Compaor=C3=A9?= <131278191+compaoreh338@users.noreply.github.com> Date: Mon, 22 Sep 2025 10:29:34 +0000 Subject: [PATCH 04/11] fixup! fixup! fixup! FEAT: v12 --- Configuration/Services.yaml | 15 +++++++++++++++ Configuration/TCA/Overrides/tt_content.php | 2 +- Resources/Private/Templates/Gallery/List.html | 4 ++-- composer.json | 5 +---- ext_emconf.php | 2 -- ext_localconf.php | 2 +- 6 files changed, 20 insertions(+), 10 deletions(-) diff --git a/Configuration/Services.yaml b/Configuration/Services.yaml index 2b8a2ef6..77961f20 100644 --- a/Configuration/Services.yaml +++ b/Configuration/Services.yaml @@ -3,3 +3,18 @@ services: autowire: true autoconfigure: true public: false + + Fab\NaturalGallery\Controller\: + resource: '../Classes/Controller/' + tags: ['controller.service_arguments'] + + Fab\NaturalGallery\Domain\Repository\: + resource: '../Classes/Domain/Repository/' + tags: ['tx_extbase.persistence.repository'] + + Fab\NaturalGallery\Persistence\: + resource: '../Classes/Persistence/' + + Fab\NaturalGallery\ViewHelpers\: + resource: '../Classes/ViewHelpers/' + tags: ['typo3.fluid.viewhelper'] diff --git a/Configuration/TCA/Overrides/tt_content.php b/Configuration/TCA/Overrides/tt_content.php index 11bef81a..288eab82 100644 --- a/Configuration/TCA/Overrides/tt_content.php +++ b/Configuration/TCA/Overrides/tt_content.php @@ -1,3 +1,3 @@ - + - diff --git a/Resources/Public/StyleSheets/natural-gallery.full.css b/Resources/Public/StyleSheets/natural-gallery.full.css index 90f85a80..90f6332b 100644 --- a/Resources/Public/StyleSheets/natural-gallery.full.css +++ b/Resources/Public/StyleSheets/natural-gallery.full.css @@ -1,662 +1 @@ -/*! PhotoSwipe main CSS by Dmitry Semenov | photoswipe.com | MIT license */ -/* - Styles for basic PhotoSwipe functionality (sliding area, open/close transitions) -*/ -/* pswp = photoswipe */ -.pswp { - display: none; - position: absolute; - width: 100%; - height: 100%; - left: 0; - top: 0; - overflow: hidden; - -ms-touch-action: none; - touch-action: none; - z-index: 1500; - -webkit-text-size-adjust: 100%; - /* create separate layer, to avoid paint on window.onscroll in webkit/blink */ - -webkit-backface-visibility: hidden; - outline: none; } - .pswp * { - -webkit-box-sizing: border-box; - box-sizing: border-box; } - .pswp img { - max-width: none; } - -/* style is added when JS option showHideOpacity is set to true */ -.pswp--animate_opacity { - /* 0.001, because opacity:0 doesn't trigger Paint action, which causes lag at start of transition */ - opacity: 0.001; - will-change: opacity; - /* for open/close transition */ - -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); - transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); } - -.pswp--open { - display: block; } - -.pswp--zoom-allowed .pswp__img { - /* autoprefixer: off */ - cursor: -webkit-zoom-in; - cursor: -moz-zoom-in; - cursor: zoom-in; } - -.pswp--zoomed-in .pswp__img { - /* autoprefixer: off */ - cursor: -webkit-grab; - cursor: -moz-grab; - cursor: grab; } - -.pswp--dragging .pswp__img { - /* autoprefixer: off */ - cursor: -webkit-grabbing; - cursor: -moz-grabbing; - cursor: grabbing; } - -/* - Background is added as a separate element. - As animating opacity is much faster than animating rgba() background-color. -*/ -.pswp__bg { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - background: #000; - opacity: 0; - -webkit-transform: translateZ(0); - transform: translateZ(0); - -webkit-backface-visibility: hidden; - will-change: opacity; } - -.pswp__scroll-wrap { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - overflow: hidden; } - -.pswp__container, -.pswp__zoom-wrap { - -ms-touch-action: none; - touch-action: none; - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; } - -/* Prevent selection and tap highlights */ -.pswp__container, -.pswp__img { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; } - -.pswp__zoom-wrap { - position: absolute; - width: 100%; - -webkit-transform-origin: left top; - -ms-transform-origin: left top; - transform-origin: left top; - /* for open/close transition */ - -webkit-transition: -webkit-transform 333ms cubic-bezier(0.4, 0, 0.22, 1); - transition: transform 333ms cubic-bezier(0.4, 0, 0.22, 1); } - -.pswp__bg { - will-change: opacity; - /* for open/close transition */ - -webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); - transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); } - -.pswp--animated-in .pswp__bg, -.pswp--animated-in .pswp__zoom-wrap { - -webkit-transition: none; - transition: none; } - -.pswp__container, -.pswp__zoom-wrap { - -webkit-backface-visibility: hidden; } - -.pswp__item { - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - overflow: hidden; } - -.pswp__img { - position: absolute; - width: auto; - height: auto; - top: 0; - left: 0; } - -/* - stretched thumbnail or div placeholder element (see below) - style is added to avoid flickering in webkit/blink when layers overlap -*/ -.pswp__img--placeholder { - -webkit-backface-visibility: hidden; } - -/* - div element that matches size of large image - large image loads on top of it -*/ -.pswp__img--placeholder--blank { - background: #222; } - -.pswp--ie .pswp__img { - width: 100% !important; - height: auto !important; - left: 0; - top: 0; } - -/* - Error message appears when image is not loaded - (JS option errorMsg controls markup) -*/ -.pswp__error-msg { - position: absolute; - left: 0; - top: 50%; - width: 100%; - text-align: center; - font-size: 14px; - line-height: 16px; - margin-top: -8px; - color: #CCC; } - -.pswp__error-msg a { - color: #CCC; - text-decoration: underline; } -/*! PhotoSwipe Default UI CSS by Dmitry Semenov | photoswipe.com | MIT license */ -/* - - Contents: - - 1. Buttons - 2. Share modal and links - 3. Index indicator ("1 of X" counter) - 4. Caption - 5. Loading indicator - 6. Additional styles (root element, top bar, idle state, hidden state, etc.) - -*/ -/* - - 1. Buttons - - */ -/*