From 2aa5fa8eb722b1d57c0f88792010c3f5f44fcfa6 Mon Sep 17 00:00:00 2001 From: Marcel Werk Date: Tue, 8 Sep 2026 13:42:17 +0200 Subject: [PATCH 01/10] Register sitemap objects through an event instead of object types --- com.woltlab.wcf/objectType.xml | 58 ++------ com.woltlab.wcf/objectTypeDefinition.xml | 1 + .../files/acp/templates/sitemapEdit.tpl | 2 +- .../files/acp/templates/sitemapList.tpl | 36 +++-- .../lib/acp/form/SitemapEditForm.class.php | 98 ++++-------- .../lib/acp/page/SitemapListPage.class.php | 56 ++++--- .../files/lib/bootstrap/com.woltlab.wcf.php | 34 +++++ .../type/SitemapObjectTypeAction.class.php | 9 +- .../sitemap/SitemapObjectCollecting.class.php | 48 ++++++ .../sitemaps/DisableSitemapObject.class.php | 39 +++++ .../sitemaps/EnableSitemapObject.class.php | 39 +++++ ...ectTypePackageInstallationPlugin.class.php | 1 + .../system/sitemap/SitemapHandler.class.php | 139 ++++++++++++++++++ .../AbstractSitemapObjectObjectType.class.php | 5 +- .../ArticleCategorySitemapObject.class.php | 2 +- .../object/ArticleSitemapObject.class.php | 4 +- .../object/ISitemapObjectObjectType.class.php | 6 +- .../MultilingualPageSitemapObject.class.php | 4 +- .../object/RegisteredSitemapObject.class.php | 125 ++++++++++++++++ .../object/SimplePageSitemapObject.class.php | 4 +- .../object/UserSitemapObject.class.php | 2 +- .../worker/SitemapRebuildWorker.class.php | 92 ++++-------- 22 files changed, 571 insertions(+), 233 deletions(-) create mode 100644 wcfsetup/install/files/lib/event/sitemap/SitemapObjectCollecting.class.php create mode 100644 wcfsetup/install/files/lib/system/endpoint/controller/core/sitemaps/DisableSitemapObject.class.php create mode 100644 wcfsetup/install/files/lib/system/endpoint/controller/core/sitemaps/EnableSitemapObject.class.php create mode 100644 wcfsetup/install/files/lib/system/sitemap/SitemapHandler.class.php create mode 100644 wcfsetup/install/files/lib/system/sitemap/object/RegisteredSitemapObject.class.php diff --git a/com.woltlab.wcf/objectType.xml b/com.woltlab.wcf/objectType.xml index 98a85379f0a..96005e4c674 100644 --- a/com.woltlab.wcf/objectType.xml +++ b/com.woltlab.wcf/objectType.xml @@ -1621,48 +1621,6 @@ wcf\system\category\MediaCategoryType - - - com.woltlab.wcf.sitemap.object.user - com.woltlab.wcf.sitemap.object - wcf\system\sitemap\object\UserSitemapObject - 0.5 - monthly - 259200 - - - com.woltlab.wcf.sitemap.object.articleCategory - com.woltlab.wcf.sitemap.object - wcf\system\sitemap\object\ArticleCategorySitemapObject - 0.5 - weekly - 2592000 - - - com.woltlab.wcf.sitemap.object.article - com.woltlab.wcf.sitemap.object - wcf\system\sitemap\object\ArticleSitemapObject - 0.5 - monthly - 259200 - - - com.woltlab.wcf.sitemap.object.simplePage - com.woltlab.wcf.sitemap.object - wcf\system\sitemap\object\SimplePageSitemapObject - 0.5 - monthly - 604800 - - - com.woltlab.wcf.sitemap.object.multilingualPage - com.woltlab.wcf.sitemap.object - wcf\system\sitemap\object\MultilingualPageSitemapObject - 0.5 - monthly - 604800 - - com.woltlab.wcf.trophy.category @@ -1798,6 +1756,22 @@ + + + com.woltlab.wcf.sitemap.object + + + com.woltlab.wcf.sitemap.object + + + com.woltlab.wcf.sitemap.object + + + com.woltlab.wcf.sitemap.object + + + com.woltlab.wcf.sitemap.object + com.woltlab.wcf.rebuildData diff --git a/com.woltlab.wcf/objectTypeDefinition.xml b/com.woltlab.wcf/objectTypeDefinition.xml index 8ea654c528d..f3bd5c6159b 100644 --- a/com.woltlab.wcf/objectTypeDefinition.xml +++ b/com.woltlab.wcf/objectTypeDefinition.xml @@ -205,6 +205,7 @@ wcf\system\condition\IObjectListCondition + com.woltlab.wcf.sitemap.object wcf\system\sitemap\object\ISitemapObjectObjectType diff --git a/wcfsetup/install/files/acp/templates/sitemapEdit.tpl b/wcfsetup/install/files/acp/templates/sitemapEdit.tpl index b07984cf399..4bcdd8ad849 100755 --- a/wcfsetup/install/files/acp/templates/sitemapEdit.tpl +++ b/wcfsetup/install/files/acp/templates/sitemapEdit.tpl @@ -3,7 +3,7 @@

{lang}wcf.acp.sitemap.edit{/lang}

-

{lang}wcf.acp.sitemap.objectType.{$formObject->objectType}{/lang}

+

{$sitemapObject->getName()}