<?php function presets($_action, $_kind) { switch ($_action) { case 'get': if ($_SESSION['mailcow_cc_role'] != "admin" && $_SESSION['mailcow_cc_role'] != "domainadmin") { 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; }