1234567891011121314151617181920212223242526272829303132333435363738 |
- <?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;
- }
|