/** * Assign form data to user-submitted data. */ function readInputData() { parent::readInputData(); $this->readUserVars(array('institutionName', 'institutionMailingAddress', 'domain', 'ipRanges')); // Check if IP range has been provided $ipRanges = $this->getData('ipRanges'); $ipRangeProvided = false; if (is_array($ipRanges)) { foreach ($ipRanges as $ipRange) { if ($ipRange != '') { $ipRangeProvided = true; break; } } } $subscriptionTypeDao =& DAORegistry::getDAO('SubscriptionTypeDAO'); $subscriptionType =& $subscriptionTypeDao->getSubscriptionType($this->getData('typeId')); // If online or print + online, domain or at least one IP range has been provided if ($subscriptionType->getFormat() != SUBSCRIPTION_TYPE_FORMAT_PRINT) { $this->addCheck(new FormValidatorCustom($this, 'domain', 'required', 'manager.subscriptions.form.domainIPRangeRequired', create_function('$domain, $ipRangeProvided', 'return ($domain != \'\' || $ipRangeProvided) ? true : false;'), array($ipRangeProvided))); } // If provided ensure IP ranges have IP address format; IP addresses may contain wildcards if ($ipRangeProvided) { $this->addCheck(new FormValidatorArrayCustom($this, 'ipRanges', 'required', 'manager.subscriptions.form.ipRangeValid', create_function('$ipRange, $regExp', 'return String::regexp_match($regExp, $ipRange);'), array('/^' . '((([0-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-4][0-9]|[2][5][0-5]|[' . SUBSCRIPTION_IP_RANGE_WILDCARD . '])([.]([0-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-4][0-9]|[2][5][0-5]|[' . SUBSCRIPTION_IP_RANGE_WILDCARD . '])){3}((\\s)*[' . SUBSCRIPTION_IP_RANGE_RANGE . '](\\s)*([0-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-4][0-9]|[2][5][0-5]|[' . SUBSCRIPTION_IP_RANGE_WILDCARD . '])([.]([0-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-4][0-9]|[2][5][0-5]|[' . SUBSCRIPTION_IP_RANGE_WILDCARD . '])){3}){0,1})|(([0-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-4][0-9]|[2][5][0-5])([.]([0-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-4][0-9]|[2][5][0-5])){3}([\\/](([3][0-2]{0,1})|([1-2]{0,1}[0-9])))))' . '$/i'), false, array(), false)); } }