Skip to content

Commit

Permalink
Fix coding standard and support hofff/contao-content 4.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
dmolineus committed Sep 25, 2024
1 parent b2a3dc3 commit ba812b2
Show file tree
Hide file tree
Showing 7 changed files with 33 additions and 34 deletions.
12 changes: 6 additions & 6 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@
"require": {
"php": "^8.2",
"contao/core-bundle": "^4.13 || ^5.3",
"doctrine/dbal": "^3.4",
"hofff/contao-content": "^2.1 || ^3.0",
"doctrine/dbal": "^3.8",
"hofff/contao-content": "^3.0 || ^4.0",
"hofff/contao-navigation": "^2.0",
"menatwork/contao-multicolumnwizard-bundle": "^3.5",
"symfony/config": "^5.4 || ^6.4",
Expand All @@ -53,6 +53,9 @@
"backboneit/contao-navigation-article": "self.version",
"contao-legacy/backboneit_navigation_article": "self.version"
},
"conflict": {
"contao/manager-plugin": "<2.1 || >= 3.0"
},
"minimum-stability": "dev",
"prefer-stable": true,
"autoload": {
Expand All @@ -62,10 +65,10 @@
},
"config": {
"allow-plugins": {
"contao-community-alliance/composer-plugin": true,
"contao-components/installer": true,
"contao/manager-plugin": true,
"dealerdirect/phpcodesniffer-composer-installer": true,
"contao-community-alliance/composer-plugin": true,
"php-http/discovery": true
},
"sort-packages": true
Expand All @@ -76,8 +79,5 @@
"dev-2.x": "2.0.x-dev"
},
"contao-manager-plugin": "Hofff\\Contao\\NavigationArticle\\ContaoManager\\Plugin"
},
"conflict": {
"contao/manager-plugin": "<2.1 || >= 3.0"
}
}
2 changes: 1 addition & 1 deletion src/DependencyInjection/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public function getConfigTreeBuilder(): TreeBuilder
->booleanNode('reference_articles_only')
->info(
'By default it\'s only possible to select articles marked as references. '
. 'By disabling this setting you can select all articles'
. 'By disabling this setting you can select all articles',
)
->defaultTrue()
->end()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@ public function load(array $configs, ContainerBuilder $container): void
{
$loader = new XmlFileLoader(
$container,
new FileLocator(__DIR__ . '/../Resources/config')
new FileLocator(__DIR__ . '/../Resources/config'),
);

$config = $this->processConfiguration(new Configuration(), $configs);

$container->setParameter(
'hofff_contao_navigation_article.reference_articles_only',
$config['reference_articles_only']
$config['reference_articles_only'],
);

$loader->load('listener.xml');
Expand Down
21 changes: 11 additions & 10 deletions src/EventListener/NavigationArticleDCAListener.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
use Contao\StringUtil;
use Contao\System;
use Contao\User;
use Doctrine\DBAL\ArrayParameterType;
use Doctrine\DBAL\Connection;
use MenAtWork\MultiColumnWizardBundle\Contao\Widgets\MultiColumnWizard;

Expand All @@ -24,17 +25,14 @@

final class NavigationArticleDCAListener
{
private Connection $connection;

/** @var array<int,list<array<string,mixed>>> */
private array $sets = [];

/** If true only reference articles (hofff_content_hide) are provides as options. */
private bool $referencesOnly;

public function __construct(Connection $connection, bool $referencesOnly)
public function __construct(private Connection $connection, bool $referencesOnly)
{
$this->connection = $connection;
$this->referencesOnly = $referencesOnly;
}

Expand Down Expand Up @@ -92,7 +90,7 @@ public function getArticles(MultiColumnWizard $dataContainer): array
if ($user instanceof BackendUser && $user->isAdmin) {
if ($rootPages) {
$query->andWhere('a.pid IN(:root)');
$query->setParameter('root', array_unique($rootPages), Connection::PARAM_INT_ARRAY);
$query->setParameter('root', array_unique($rootPages), ArrayParameterType::INTEGER);
}
} else {
$pids = $this->filterPids($rootPages, $user);
Expand All @@ -101,7 +99,7 @@ public function getArticles(MultiColumnWizard $dataContainer): array
}

$query->andWhere('a.pid IN(:root)');
$query->setParameter('root', $pids, Connection::PARAM_INT_ARRAY);
$query->setParameter('root', $pids, ArrayParameterType::INTEGER);
}

// Edit the result
Expand All @@ -128,7 +126,7 @@ public function getArticles(MultiColumnWizard $dataContainer): array
*
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function loadForPage($rows, DataContainer $dataContainer): array
public function loadForPage(array|string $rows, DataContainer $dataContainer): array
{
$query = 'SELECT j.*
FROM tl_hofff_navi_art AS j
Expand All @@ -141,7 +139,7 @@ public function loadForPage($rows, DataContainer $dataContainer): array
}

/** @param array<int,array<string,mixed>>|string $rows */
public function saveForPage($rows, DataContainer $dataContainer): void
public function saveForPage(array|string $rows, DataContainer $dataContainer): void
{
$rows = StringUtil::deserialize($rows, true);
$this->sets[(int) $dataContainer->id] = [];
Expand All @@ -165,7 +163,7 @@ public function submitPage(DataContainer $dataContainer): void
{
$this->connection->executeStatement(
'DELETE FROM tl_hofff_navi_art WHERE page = :page',
['page' => $dataContainer->id]
['page' => $dataContainer->id],
);

if (! isset($this->sets[(int) $dataContainer->id])) {
Expand All @@ -181,7 +179,9 @@ public function submitPage(DataContainer $dataContainer): void
private function getRootPages(int $intPid): array
{
// Limit pages to the website root
$database = Database::getInstance();
$database = Database::getInstance();

/** @psalm-suppress TooManyArguments */
$article = $database->prepare('SELECT pid FROM tl_article WHERE id=?')->limit(1)->execute($intPid);
$rootPages = [];

Expand All @@ -202,6 +202,7 @@ private function getRootPages(int $intPid): array
private function getPageId(int $pid): int
{
if (Input::get('act') === 'overrideAll') {
/** @psalm-suppress RiskyCast */
return (int) Input::get('id');
}

Expand Down
23 changes: 11 additions & 12 deletions src/EventListener/NavigationArticleListener.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

use Contao\ArticleModel;
use Contao\CoreBundle\Framework\ContaoFramework;
use Contao\CoreBundle\Security\Authentication\Token\TokenChecker;
use Contao\StringUtil;
use Doctrine\DBAL\Connection;
use Hofff\Contao\Content\Renderer\ArticleRenderer;
Expand All @@ -20,24 +21,22 @@

final class NavigationArticleListener
{
private Connection $connection;

private ContaoFramework $contaoFramework;

/** @var array<int, array<int, list<array<string, mixed>>>> */
private array $articles = [];

public function __construct(Connection $connection, ContaoFramework $contaoFramework)
{
$this->connection = $connection;
$this->contaoFramework = $contaoFramework;
public function __construct(
private Connection $connection,
private ContaoFramework $contaoFramework,
private TokenChecker $tokenChecker,
) {
}

public function __invoke(ItemEvent $event): void
{
$navi = $event->moduleModel();
$page = $event->item();

/** @psalm-suppress RedundantCastGivenDocblockType */
$articles = $this->getNavigationArticles((int) $navi->id, (int) $page['id']);
if (! $articles) {
return;
Expand All @@ -57,7 +56,7 @@ public function __invoke(ItemEvent $event): void
continue;
}

$renderer = new ArticleRenderer();
$renderer = new ArticleRenderer($this->tokenChecker);
$renderer->setArticle($models[$article['article']]);
$renderer->setRenderContainer((bool) $article['container']);
$renderer->setExcludeFromSearch((bool) $article['nosearch']);
Expand Down Expand Up @@ -122,9 +121,9 @@ private function getArticleIdsFromConfiguration(array $articles): array
array_unique(
array_map(
static fn (array $article) => (int) $article['article'],
$articles
)
)
$articles,
),
),
);
}
}
1 change: 1 addition & 0 deletions src/Resources/config/listener.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
<service id="Hofff\Contao\NavigationArticle\EventListener\NavigationArticleListener" public="true">
<argument type="service" id="database_connection" />
<argument type="service" id="contao.framework" />
<argument type="service" id="contao.security.token_checker"/>
<tag name="kernel.event_listener" event="Hofff\Contao\Navigation\Event\ItemEvent"/>
</service>

Expand Down
4 changes: 1 addition & 3 deletions src/Resources/contao/dca/tl_module.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,5 @@
'label' => &$GLOBALS['TL_LANG']['tl_module']['hofff_navi_art_enable'],
'exclude' => true,
'inputType' => 'checkbox',
'eval' => [
'tl_class' => 'cbx',
],
'eval' => ['tl_class' => 'cbx'],
];

0 comments on commit ba812b2

Please sign in to comment.