File indexing completed on 2024-12-22 05:36:24
0001 <?php 0002 /** 0003 * ocs-webserver 0004 * 0005 * Copyright 2016 by pling GmbH. 0006 * 0007 * This file is part of ocs-webserver. 0008 * 0009 * This program is free software: you can redistribute it and/or modify 0010 * it under the terms of the GNU Affero General Public License as 0011 * published by the Free Software Foundation, either version 3 of the 0012 * License, or (at your option) any later version. 0013 * 0014 * This program is distributed in the hope that it will be useful, 0015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0017 * GNU Affero General Public License for more details. 0018 * 0019 * You should have received a copy of the GNU Affero General Public License 0020 * along with this program. If not, see <http://www.gnu.org/licenses/>. 0021 **/ 0022 0023 class Local_Validate_NotEmptyInContext extends Zend_Validate_Abstract 0024 { 0025 0026 /** 0027 * Validation failure message key for when the value of the parent field is an empty string 0028 */ 0029 const KEY_NOT_FOUND = 'KeyNotFound'; 0030 0031 /** 0032 * Validation failure message key for when the value is an empty string 0033 */ 0034 const KEY_IS_EMPTY = 'KeyIdEmpty'; 0035 0036 /** 0037 * Validation failure message when parent field is present and the current field has no value 0038 */ 0039 const PARENT_NOT_EMPTY = 'FieldEmpty'; 0040 0041 0042 protected $_messageTemplates = array( 0043 self::KEY_NOT_FOUND => "Key not found in context.", 0044 self::KEY_IS_EMPTY => "Key is empty.", 0045 self::PARENT_NOT_EMPTY => "Field must have a value when parent field is filled out." 0046 ); 0047 0048 /** 0049 * @var string 0050 */ 0051 private $contextKey; 0052 0053 function __construct($contextKey) 0054 { 0055 $this->contextKey = $contextKey; 0056 } 0057 0058 0059 /** 0060 * Returns true if and only if $value meets the validation requirements 0061 * 0062 * If $value fails validation, then this method returns false, and 0063 * getMessages() will return an array of messages that explain why the 0064 * validation failed. 0065 * 0066 * @param mixed $value 0067 * @param mixed $context 0068 * @return boolean 0069 */ 0070 public function isValid($value, $context = null) 0071 { 0072 if ((null === $context) || !is_array($context) || !array_key_exists($this->contextKey, $context)) { 0073 $this->_error(self::KEY_NOT_FOUND); 0074 return false; 0075 } 0076 0077 $parentField = $context[$this->contextKey]; 0078 0079 if (false === empty($parentField) AND empty($value)) { 0080 $this->_error(self::PARENT_NOT_EMPTY); 0081 return false; 0082 } 0083 0084 return true; 0085 } 0086 0087 /** 0088 * @return string 0089 */ 0090 public function getContextKey() 0091 { 0092 return $this->contextKey; 0093 } 0094 0095 /** 0096 * @param string $contextKey 0097 */ 0098 public function setContextKey($contextKey) 0099 { 0100 $this->contextKey = $contextKey; 0101 } 0102 0103 }