Skip to content
Snippets Groups Projects
Commit 99f62250 authored by Georgi's avatar Georgi
Browse files

Merge branch 'feature_sitemap_rootline_check' into 'master'

[BUGFIX] Check rootline when generating sitemap

See merge request !34
parents 852ac6c3 8774e605
No related branches found
No related tags found
1 merge request!34[BUGFIX] Check rootline when generating sitemap
......@@ -31,7 +31,10 @@ class AccessPageListEventListener {
*/
public function __invoke(AccessPageListEvent $event) {
$pageList = $event->getPageList();
$additionalPageList = $this->sitemapService->generatePagesList($event->getSysLanguageUid());
$additionalPageList = $this->sitemapService->generatePagesList(
$event->getSysLanguageUid(), $event->getSite()->getRootPageId()
);
ArrayUtility::mergeRecursiveWithOverrule($pageList, $additionalPageList);
$event->setPageList($pageList);
}
......
......@@ -28,14 +28,15 @@ class SitemapService {
* Generate a pageList array for the sitemap generation
*
* @param int $sysLanguageUid
* @param int $rootPageId
* @return array
*/
public function generatePagesList(int $sysLanguageUid): array {
public function generatePagesList(int $sysLanguageUid, int $rootPageId = 0): array {
$pageList = [];
// find sites where job detail plugin is added
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
->getQueryBuilderForTable('tt_content');
$databaseResource = $queryBuilder->select('pid', 'pages')
$databaseResource = $queryBuilder->select('pid', 'pages', 'tstamp')
->from('tt_content')
->where(
$queryBuilder->expr()->andX(
......@@ -55,11 +56,13 @@ class SitemapService {
)
->execute();
$rows = $databaseResource->fetchAll();
$context = GeneralUtility::makeInstance(Context::class);
foreach ($rows as $row) {
while ($row = $databaseResource->fetch()) {
try {
$site = GeneralUtility::makeInstance(SiteFinder::class)->getSiteByPageId($row['pid']);
if ($rootPageId > 0 && $site->getRootPageId() !== $rootPageId) {
continue;
}
$jobs = $this->getJobsByPid($row['pages'], $sysLanguageUid);
foreach ($jobs as $job) {
$url = $site->getRouter($context)->generateUri(
......@@ -73,7 +76,8 @@ class SitemapService {
);
$pageList[] = [
'url' => htmlspecialchars($url),
'title' => ''
'title' => '',
'SYS_LASTCHANGED' => $row['tstamp'],
];
}
} catch (SiteNotFoundException $exception) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment