50 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/lib/Spyc.php';
 | |
| 
 | |
| function presets($_action, $_data = null)
 | |
| {
 | |
|   if ($_SESSION['mailcow_cc_role'] !== 'admin') {
 | |
|     $_SESSION['return'][] = [
 | |
|       'type' => 'danger',
 | |
|       'log' => [__FUNCTION__, $_action, $_data_log],
 | |
|       'msg' => 'access_denied',
 | |
|     ];
 | |
| 
 | |
|     return false;
 | |
|   }
 | |
| 
 | |
|   global $lang;
 | |
|   if ($_action === 'get') {
 | |
|     $kind = strtolower(trim($_data));
 | |
|     $langSection = 'admin';
 | |
| 
 | |
|     if (!in_array($kind, ['admin-rspamd', 'mailbox-sieve'], true)) {
 | |
|       return [];
 | |
|     }
 | |
| 
 | |
|     if ($kind === 'mailbox-sieve') {
 | |
|       $langSection = 'mailbox';
 | |
|     }
 | |
| 
 | |
|     $presets = [];
 | |
|     foreach (glob(__DIR__ . '/presets/' . $kind . '/*.yml') as $filename) {
 | |
|       $preset = Spyc::YAMLLoad($filename);
 | |
| 
 | |
|       /* get translated headlines */
 | |
|       if (isset($preset['headline']) && strpos($preset['headline'], 'lang.') === 0) {
 | |
|         $langTextName = trim(substr($preset['headline'], 5));
 | |
|         if (isset($lang[$langSection][$langTextName])) {
 | |
|           $preset['headline'] = $lang[$langSection][$langTextName];
 | |
|         }
 | |
|       }
 | |
| 
 | |
|       $presets[] = $preset;
 | |
|     }
 | |
| 
 | |
|     return $presets;
 | |
|   }
 | |
| 
 | |
|   return [];
 | |
| }
 | 
