Here is an example of applying a couple of rules to a field - this field must be filled in, it will only accept well formed email addresses, and there can be no duplicates in the system:
...
<field id="email" type="text" multiLingual="0">
<title lang="da">Email</title>
<title lang="en">Email</title>
<rules>
<required/>
<email/>
<unique/>
</rules>
</field>
...The following rules can be applied to any field in your XML. It is
your own responsibility not to add contradicting or meaningless rules,
like adding numeric and lettersonly to the
same field or adding email to a date field.
alphanumericLetters and numbers. No commas allowed. Scandinavian characters, like æ, ø and å are not allowed.
emailA well formed email address.
lettersonlyLetters only. A to Z upper or lowercase. Scandinavian characters, like æ, ø and å are not allowed.
mimetypesCan be applied to fields of type file or
image and adapts a slightly different syntax, as the
rule element has children:
...
<field id="illustration" type="image" multiLingual="0">
<title lang="da">Illustration</title>
<title lang="en">Illustration</title>
<rules>
<mimetypes>
<valid>image/jpeg</valid>
<valid>image/png</valid>
<valid>image/gif</valid>
</mimetypes>
</rules>
</field>
...Moski2.net tries to determine the mime type of the uploaded file in two ways:
The browser sends along a suggested mime type (which can't really be trusted since it is typically just derived from the file name extension).
Using the PHP extension fileinfo (which will be moved to the base PHP distribution in 5.3). This actually reads the file and tries to determine the mime type from the bytes in the file.
By default Moski2.net will only trust what is revealed by
2), but if you want to also trust what is suggested by the
browser, set the trustBrowser attribute to
1:
...
<field id="illustration" type="image" multiLingual="0">
<title lang="da">Illustration</title>
<title lang="en">Illustration</title>
<rules>
<mimetypes trustBrowser="1">
<valid>image/jpeg</valid>
<valid>image/png</valid>
<valid>image/gif</valid>
</mimetypes>
</rules>
</field>
...numericNumbers only. Decimal comma (dot) is allowed.
nonzeroA number other than zero. No commas allowed.
regexA regular expression that the input must match. The syntax is that of JavaScript regex, as described at http://www.w3schools.com/jsref/jsref_obj_regexp.asp.
The regex rule has content, contrary to most
other rules - you simply add a string of regex code
in the regex element:
...
<field id="mylowercase" type="text" multiLingual="0">
<title lang="da">Små bogstaver</title>
<title lang="en">Lowercase</title>
<rules>
<required/>
<regex>/^[a-z]+$/</regex>
</rules>
</field>
...requiredThe field must be filled in with something.
uniqueUsed to ensure that what ever is entered in this field is unique amongst the records of this type.
Can not be used with external content types.