| 123456789101112131415161718192021222324252627282930313233343536373839 | 
							- <?php
 
- function presets($_action, $_kind) {
 
-   global $lang;
 
-   switch ($_action) {
 
-     case 'get':
 
-       if ($_SESSION['mailcow_cc_role'] != "admin") {
 
-         return false;
 
-       }
 
-       $presets = array();
 
-       $kind = strtolower(trim($_kind));
 
-       $lang_base = 'admin';
 
-       $presets_path = __DIR__ . '/presets/' . $kind;
 
-       if (!in_array($kind, ['rspamd', 'sieve'], true)) {
 
-         return array();
 
-       }
 
-       if ($kind === 'sieve') {
 
-         $lang_base = 'mailbox';
 
-       }
 
-       foreach (glob($presets_path . '/*.yml') as $filename) {
 
-         $presets[] = getPresetFromFilePath($filename, $lang_base);
 
-       }
 
-       return $presets;
 
-     break;
 
-   }
 
-   return array();
 
- }
 
- function getPresetFromFilePath($filePath, $lang_base) {
 
-   global $lang;
 
-   $preset = Spyc::YAMLLoad($filePath);
 
-   $preset = ['name' => basename($filePath, '.yml')] + $preset;
 
-   /* get translated headlines */
 
-   if (isset($preset['headline']) && strpos($preset['headline'], 'lang.') === 0) {
 
-     $langTextName = trim(substr($preset['headline'], 5));
 
-     if (isset($lang[$lang_base][$langTextName])) {
 
-       $preset['headline'] = $lang[$lang_base][$langTextName];
 
-     }
 
-   }
 
-   return $preset;
 
- }
 
 
  |