Merge branch 'fix-error' into 'develop'
chore: 🔖 release v7.1.1
See merge request ldc-web/projets/sitemap-generator!7
This commit is contained in:
commit
1f789eca23
4 changed files with 51 additions and 43 deletions
|
|
@ -6,6 +6,10 @@ All notable changes to `sitemap-generator` will be documented in this file.
|
|||
- This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
|
||||
- Commits respect [Conventionnal commits](https://www.conventionalcommits.org/en/v1.0.0/) & use [Gitmoji](https://gitmoji.dev/).
|
||||
|
||||
## **[v7.1.1] - 24/08/2026**
|
||||
|
||||
- Improve error catch in `uwil:sitemap:refresh` command
|
||||
|
||||
## **[v7.1.0] - 23/06/2026**
|
||||
|
||||
- Added the possibility to get models with nullable relations.
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ If you discover any security related issues, please email <equipe.web@ldc.fr> in
|
|||
|
||||
# Changelog
|
||||
|
||||
Latest version v5.0.1.
|
||||
Latest version v7.1.1.
|
||||
|
||||
See the [CHANGELOG.md](CHANGELOG.md) file for details.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "uwil/sitemap-generator",
|
||||
"description": "Create sitemap.xml",
|
||||
"version": "7.1.0",
|
||||
"version": "7.1.1",
|
||||
"require": {
|
||||
"illuminate/support": "~11|~12|~13",
|
||||
"laravel/framework": "~11|~12|~13",
|
||||
|
|
|
|||
|
|
@ -37,43 +37,43 @@ class GenerateSitemapCommand extends Command
|
|||
{
|
||||
$this->info('Generating Sitemap..');
|
||||
|
||||
$sitemap = Sitemap::create();
|
||||
|
||||
foreach (config('sitemap-generator.singlePages') as $page) {
|
||||
foreach (config('sitemap-generator.supported_locales') as $locale) {
|
||||
$sitemap->add(SitemapHelper::generateUrl(
|
||||
SitemapHelper::getURLFromRouteNameTranslated($locale, $page),
|
||||
getAlternate: fn ($locale) => SitemapHelper::getURLFromRouteNameTranslated($locale, $page)
|
||||
));
|
||||
}
|
||||
}
|
||||
foreach (config('sitemap-generator.cruds') as $crud) {
|
||||
$modelFilters = $crud['modelFilters'] ?? [];
|
||||
$relationsFilters = $crud['relationFilters'] ?? [];
|
||||
$allowNullRelations = $crud['allowNullRelations'] ?? [];
|
||||
|
||||
$query = $crud['model']::query()
|
||||
->when($modelFilters, function (Builder $q) use ($modelFilters) {
|
||||
$q->where($modelFilters);
|
||||
});
|
||||
|
||||
if (! empty($relationsFilters)) {
|
||||
$query->where(function (Builder $q) use ($relationsFilters, $allowNullRelations) {
|
||||
foreach ($relationsFilters as $relation => $filter) {
|
||||
if (in_array($relation, $allowNullRelations, true)) {
|
||||
$q->whereDoesntHave($relation)
|
||||
->orWhereHas($relation, $filter);
|
||||
} else {
|
||||
$q->whereHas($relation, $filter);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$sitemap->add($query->get());
|
||||
}
|
||||
|
||||
try {
|
||||
$sitemap = Sitemap::create();
|
||||
|
||||
foreach (config('sitemap-generator.singlePages') as $page) {
|
||||
foreach (config('sitemap-generator.supported_locales') as $locale) {
|
||||
$sitemap->add(SitemapHelper::generateUrl(
|
||||
SitemapHelper::getURLFromRouteNameTranslated($locale, $page),
|
||||
getAlternate: fn($locale) => SitemapHelper::getURLFromRouteNameTranslated($locale, $page)
|
||||
));
|
||||
}
|
||||
}
|
||||
foreach (config('sitemap-generator.cruds') as $crud) {
|
||||
$modelFilters = $crud['modelFilters'] ?? [];
|
||||
$relationsFilters = $crud['relationFilters'] ?? [];
|
||||
$allowNullRelations = $crud['allowNullRelations'] ?? [];
|
||||
|
||||
$query = $crud['model']::query()
|
||||
->when($modelFilters, function (Builder $q) use ($modelFilters) {
|
||||
$q->where($modelFilters);
|
||||
});
|
||||
|
||||
if (! empty($relationsFilters)) {
|
||||
$query->where(function (Builder $q) use ($relationsFilters, $allowNullRelations) {
|
||||
foreach ($relationsFilters as $relation => $filter) {
|
||||
if (in_array($relation, $allowNullRelations, true)) {
|
||||
$q->whereDoesntHave($relation)
|
||||
->orWhereHas($relation, $filter);
|
||||
} else {
|
||||
$q->whereHas($relation, $filter);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$sitemap->add($query->get());
|
||||
}
|
||||
|
||||
if ($this->option('dry-run')) {
|
||||
$this->renderTable($sitemap);
|
||||
return 0;
|
||||
|
|
@ -86,13 +86,17 @@ class GenerateSitemapCommand extends Command
|
|||
}
|
||||
|
||||
$sitemap->writeToFile($dest);
|
||||
} catch (SitemapException $e) {
|
||||
$this->error('An error occured while generating sitemap');
|
||||
} catch (\Throwable $e) {
|
||||
if ($e instanceof SitemapException) {
|
||||
$this->error('Sitemap generation error');
|
||||
} else {
|
||||
$this->error('Unexpected error while generating sitemap');
|
||||
}
|
||||
|
||||
$this->error($e->getMessage());
|
||||
\report($e);
|
||||
if (config('app.debug')) {
|
||||
dump($e);
|
||||
}
|
||||
|
||||
return 1;
|
||||
} //end try
|
||||
|
||||
$this->info('A new sitemap.xml was generated');
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue