From ec9061579d77a11acc61cdd2436b037e6af6f857 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 13 Feb 2018 12:20:45 +0100 Subject: [translation] Add support for global translation plugins Until now, modules could only supply extensions for translating module-related additional dictionaries. Now a module can provide a 'translation-global.inc.php' that will add additional translation sections to any module. --- modules-available/translation/page.inc.php | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/modules-available/translation/page.inc.php b/modules-available/translation/page.inc.php index a5cdebed..e41d4786 100644 --- a/modules-available/translation/page.inc.php +++ b/modules-available/translation/page.inc.php @@ -53,11 +53,30 @@ class Page_Translation extends Page private function loadCustomHandler($moduleName) { $path = 'modules/' . $moduleName . '/hooks/translation.inc.php'; - if (!file_exists($path)) - return false; $HANDLER = array(); - require $path; - return $HANDLER; + if (file_exists($path)) { + require $path; + } + $backup = $HANDLER; + foreach (glob('modules/*/hooks/translation-global.inc.php', GLOB_NOSORT) as $path) { + $HANDLER = array(); + require $path; + if (empty($HANDLER['subsections'])) + continue; + foreach ($HANDLER['subsections'] as $sub) { + $suf = ''; + while (isset($backup['subsections']) && in_array($sub . $suf, $backup['subsections'])) { + $suf = mt_rand(); + } + $backup['subsections'][] = $sub . $suf; + if (isset($HANDLER['grep_' . $sub])) { + $backup['grep_' . $sub . $suf] = $HANDLER['grep_' . $sub]; + } + } + } + if (empty($backup)) + return false; + return $backup; } /** @@ -81,7 +100,7 @@ class Page_Translation extends Page { User::load(); - if (!User::hasPermission('superadmin')) { + if (!User::isLoggedIn()) { Message::addError('main.no-permission'); Util::redirect('?do=Main'); } -- cgit v1.2.3-55-g7522