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