Ejemplo n.º 1
0
			catch (Exception $e)
			{
				$exception->AddMessage(_("Invalid extension"));
			}
			
		    $registry_config = $Registry->GetManifest()->GetSectionConfig();
	    
		    $Validator = new Validator();
		    
		    // Validate additional domain information
		    if (count($registry_config->domain->registration->extra_fields->field) > 0)
		    {
				$display["add_fields"] = UI::GetRegExtraFieldsForSmarty($registry_config);
				
				$DataForm = new DataForm();
				$DataForm->AddXMLValidator($registry_config->domain->registration->extra_fields);
				$errors = $DataForm->Validate($_POST["add_fields"]);
				if ($errors)
					foreach ($errors as $_errmsg) $exception->AddMessage($_errmsg);
		    }
			else
				$display["add_fields"] = false;
				
			
			if ($exception->hasMessages())
				throw $exception;
				
			$full_dmn_name = "{$_SESSION["domaininfo"]["name"]}.{$_SESSION["domaininfo"]["extension"]}";
				
	        if ($_POST["enable_managed_dns"])
			{
Ejemplo n.º 2
0
    function testDataFormValidation()
    {
        $xmlstr = <<<XML
<fields>
\t<field iseditable="1" description="Phone" type="phone" registry_format="+[2].[4-16]" name="Phone" required="1" />
\t<field iseditable="1" type="select" name="asia_identform" description="Form of Identity" required="0">
\t\t<values>
\t\t\t<value name="Certificate of Incorp" value="certificate"/>
\t\t\t<value name="Charter" value="legislation"/>
\t\t\t<value name="Societies Registry" value="societyRegistry"/>
\t\t\t<value name="Political Party Registry" value="politicalPartyRegistry"/>
\t\t\t<value name="Passport/Citizenship ID" value="passport"/>
\t\t\t<value name="Other" value="other"/>
\t\t</values>
\t</field>
\t<!--  required if asia_identform=other -->
\t<field iseditable="1" type="text" name="asia_otheridentform" description="Other Identification Form" required="0" note="Required when form of identity is 'Other'"/>
</fields>\t\t
XML;
        $manifest = simplexml_load_string($xmlstr);
        $dform = new DataForm();
        $dform->AppendFromXML($manifest);
        $dform->AddXMLValidator($manifest);
        $dform->AddValidator(create_function('$name, $value, $data', 'if (!$data["asia_identform"] && !$value) return "identform or otheridentform must be set";'), "asia_otheridentform");
        $err = $dform->Validate(array());
        var_dump($err);
        return;
        $manifest = simplexml_load_string('<fields><field iseditable="0" description="Full name" type="text" name="name" required="1" minlength="3" maxlength="255" /></fields>');
        $err = $dform->ValidateOverManifest($manifest, array("name" => "ma"));
        var_dump($err);
        $dform->Bind(array("name" => "vv"));
        $err = $dform->ValidateOverManifest($manifest, array("name" => "ma"));
        var_dump($err);
    }
Ejemplo n.º 3
0
		else
		{
			// Empty extra
			$extra_data = array();
		}
		
		// Merge extra fields with std POST fields
		$extra_data = array_merge($extra_data, $_POST);
		$extra_data = array_map('trim', $extra_data);
		
		$XmlConfig = $Registry->GetManifest()->GetSectionConfig();
		$trnFields = $XmlConfig->domain->transfer->fields;
		if ($trnFields->children())
		{
			$DataForm = new DataForm();
			$DataForm->AddXMLValidator($trnFields);
			$errors = $DataForm->Validate($extra_data);
			if ($errors)
				foreach ($errors as $_errmsg) $err[] = $_errmsg;
		}
		
		//var_dump($err);
		//var_dump($post_add_data);
		//die();
		
		if (!$err)
		{
			if ($transfer_contacts)
			{
				foreach($transfer_contacts as $v)
				{
 protected function PostExtra()
 {
     $DForm = new DataForm();
     $Validator = new DOMDocument("1.0");
     $Validator->appendChild($Validator->createElement("validator"));
     $Factory = RegistryModuleFactory::GetInstance();
     $tlds = $this->GetTLDs();
     $extra_flatten = array();
     foreach ($tlds as $tld) {
         $Registry = $Factory->GetRegistryByExtension($tld);
         $ConfigXml = $Registry->GetManifest()->GetSectionConfig();
         $fields = $ConfigXml->domain->registration->extra_fields->xpath("field");
         if (count($fields)) {
             foreach ($fields as $field) {
                 $F = dom_import_simplexml($field);
                 $F = $Validator->importNode($F, true);
                 $name = "{$tld}-{$field->attributes()->name}";
                 $F->setAttribute("name", $name);
                 $extra_flatten[$name] = $this->attr["extra"][$tld][(string) $field->attributes()->name];
                 $Validator->documentElement->appendChild($F);
             }
         }
     }
     $manifest = simplexml_import_dom($Validator->documentElement);
     $DForm->AddXMLValidator($manifest);
     $err = $DForm->Validate($extra_flatten);
     if (!$err) {
         $k = "extra";
         $this->{$k} = $this->attr[$k];
     } else {
         $ErrList = new ErrorList();
         foreach ($err as $msg) {
             $ErrList->AddMessage($msg);
         }
         throw $ErrList;
     }
 }