mirror of
				https://github.com/Icinga/icingaweb2.git
				synced 2025-10-31 11:24:51 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			72 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /* Icinga Web 2 | (c) 2013-2015 Icinga Development Team | GPLv2+ */
 | |
| 
 | |
| namespace Icinga\Web\Form;
 | |
| 
 | |
| use BadMethodCallException;
 | |
| use Zend_Translate_Adapter;
 | |
| use Zend_Validate_NotEmpty;
 | |
| use Zend_Validate_File_MimeType;
 | |
| use Icinga\Web\Form\Validator\DateTimeValidator;
 | |
| use Icinga\Web\Form\Validator\ReadablePathValidator;
 | |
| use Icinga\Web\Form\Validator\WritablePathValidator;
 | |
| 
 | |
| class ErrorLabeller extends Zend_Translate_Adapter
 | |
| {
 | |
|     protected $messages;
 | |
| 
 | |
|     public function __construct($options = array())
 | |
|     {
 | |
|         if (! isset($options['element'])) {
 | |
|             throw new BadMethodCallException('Option "element" is missing');
 | |
|         }
 | |
| 
 | |
|         $this->messages = $this->createMessages($options['element']);
 | |
|     }
 | |
| 
 | |
|     public function isTranslated($messageId, $original = false, $locale = null)
 | |
|     {
 | |
|         return array_key_exists($messageId, $this->messages);
 | |
|     }
 | |
| 
 | |
|     public function translate($messageId, $locale = null)
 | |
|     {
 | |
|         if (array_key_exists($messageId, $this->messages)) {
 | |
|             return $this->messages[$messageId];
 | |
|         }
 | |
| 
 | |
|         return $messageId;
 | |
|     }
 | |
| 
 | |
|     protected function createMessages($element)
 | |
|     {
 | |
|         $label = $element->getLabel() ?: $element->getName();
 | |
| 
 | |
|         return array(
 | |
|             Zend_Validate_NotEmpty::IS_EMPTY            => sprintf(t('%s is required and must not be empty'), $label),
 | |
|             Zend_Validate_File_MimeType::FALSE_TYPE     => sprintf(
 | |
|                 t('%s (%%value%%) has a false MIME type of "%%type%%"'),
 | |
|                 $label
 | |
|             ),
 | |
|             Zend_Validate_File_MimeType::NOT_DETECTED   => sprintf(t('%s (%%value%%) has no MIME type'), $label),
 | |
|             WritablePathValidator::NOT_WRITABLE         => sprintf(t('%s is not writable', 'config.path'), $label),
 | |
|             WritablePathValidator::DOES_NOT_EXIST       => sprintf(t('%s does not exist', 'config.path'), $label),
 | |
|             ReadablePathValidator::NOT_READABLE         => sprintf(t('%s is not readable', 'config.path'), $label),
 | |
|             DateTimeValidator::INVALID_DATETIME_FORMAT  => sprintf(
 | |
|                 t('%s not in the expected format: %%value%%'),
 | |
|                 $label
 | |
|             )
 | |
|         );
 | |
|     }
 | |
| 
 | |
|     protected function _loadTranslationData($data, $locale, array $options = array())
 | |
|     {
 | |
|         // nonsense, required as being abstract otherwise...
 | |
|     }
 | |
| 
 | |
|     public function toString()
 | |
|     {
 | |
|         return 'ErrorLabeller'; // nonsense, required as being abstract otherwise...
 | |
|     }
 | |
| }
 |