Ejemplo n.º 1
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);
    }