Source of file WildcardDomainField.php

Size: 1,066 Bytes - Last Modified: 2017-09-25T23:24:15+00:00

/var/www/docs.ssmods.com/process/src/src/Forms/WildcardDomainField.php

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
<?php
namespace SilverStripe\Subsites\Forms;

use SilverStripe\Forms\TextField;

/**
 * A text field that accepts only valid domain names, but allows the wildcard (*) character
 */
class WildcardDomainField extends TextField
{
    /**
     * Validate this field as a valid hostname
     *
     * @param Validator $validator
     * @return bool
     */
    public function validate($validator)
    {
        if ($this->checkHostname($this->Value())) {
            return true;
        }

        $validator->validationError(
            $this->getName(),
            _t('DomainNameField.INVALID_DOMAIN', 'Invalid domain name'),
            'validation'
        );
        return false;
    }

    /**
     * Check if the given hostname is valid.
     *
     * @param string $hostname
     * @return bool True if this hostname is valid
     */
    public function checkHostname($hostname)
    {
        return (bool)preg_match('/^([a-z0-9\*]+[\-\.\:])*([a-z0-9\*]+)$/', $hostname);
    }

    public function Type()
    {
        return 'text wildcarddomain';
    }
}