2
0

functions.presets.inc.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. function presets($_action, $_kind) {
  3. switch ($_action) {
  4. case 'get':
  5. if ($_SESSION['mailcow_cc_role'] != "admin" && $_SESSION['mailcow_cc_role'] != "domainadmin") {
  6. return false;
  7. }
  8. $presets = array();
  9. $kind = strtolower(trim($_kind));
  10. $lang_base = 'admin';
  11. $presets_path = __DIR__ . '/presets/' . $kind;
  12. if (!in_array($kind, ['rspamd', 'sieve'], true)) {
  13. return array();
  14. }
  15. if ($kind === 'sieve') {
  16. $lang_base = 'mailbox';
  17. }
  18. foreach (glob($presets_path . '/*.yml') as $filename) {
  19. $presets[] = getPresetFromFilePath($filename, $lang_base);
  20. }
  21. return $presets;
  22. break;
  23. }
  24. return array();
  25. }
  26. function getPresetFromFilePath($filePath, $lang_base) {
  27. global $lang;
  28. $preset = Spyc::YAMLLoad($filePath);
  29. $preset = ['name' => basename($filePath, '.yml')] + $preset;
  30. /* get translated headlines */
  31. if (isset($preset['headline']) && strpos($preset['headline'], 'lang.') === 0) {
  32. $langTextName = trim(substr($preset['headline'], 5));
  33. if (isset($lang[$lang_base][$langTextName])) {
  34. $preset['headline'] = $lang[$lang_base][$langTextName];
  35. }
  36. }
  37. return $preset;
  38. }