diff --git a/wcfsetup/install/files/lib/system/template/TemplateEngine.class.php b/wcfsetup/install/files/lib/system/template/TemplateEngine.class.php index 5bd0e44b0bc..51a8ff83510 100755 --- a/wcfsetup/install/files/lib/system/template/TemplateEngine.class.php +++ b/wcfsetup/install/files/lib/system/template/TemplateEngine.class.php @@ -4,6 +4,7 @@ use Laminas\Diactoros\Stream; use Psr\Http\Message\StreamInterface; +use wcf\data\template\group\TemplateGroup; use wcf\data\template\Template; use wcf\system\cache\builder\TemplateGroupCacheBuilder; use wcf\system\cache\builder\TemplateListenerCodeCacheBuilder; @@ -11,7 +12,6 @@ use wcf\system\exception\SystemException; use wcf\system\Regex; use wcf\system\SingletonFactory; -use wcf\system\WCF; use wcf\util\DirectoryUtil; use wcf\util\HeaderUtil; use wcf\util\StringUtil; @@ -1045,14 +1045,18 @@ protected function getCompileFilePrefix(string $templateName): string private function getSharedTemplateGroupID(): int { if (!isset($this->sharedTemplateGroupID)) { - $sql = "SELECT templateGroupID - FROM wcf1_template_group - WHERE templateGroupFolderName = ?"; - $statement = WCF::getDB()->prepare($sql); - $statement->execute(['_wcf_shared/']); + $templateGroup = \array_find( + $this->templateGroupCache, + static fn(TemplateGroup $group) => $group->templateGroupFolderName === '_wcf_shared/' + ); - $this->sharedTemplateGroupID = $statement->fetchSingleColumn(); + if ($templateGroup === null) { + throw new \RuntimeException('Shared template group not found'); + } + + $this->sharedTemplateGroupID = $templateGroup->templateGroupID; } + return $this->sharedTemplateGroupID; } }