return isset($value) && !($value == '');
}
+ /**
+ * Validate values for this field.
+ * Both the Latitude and the Longitude fields need to be filled in.
+ *
+ * @param array $values The entered values for the lat. and long.
+ * @return string|bool Error message or false.
+ */
+ public function field_validation($values) {
+ $valuecount = 0;
+ // The lat long class has two values that need to be checked.
+ foreach ($values as $value) {
+ if (isset($value->value) && !($value->value == '')) {
+ $valuecount++;
+ }
+ }
+ // If we have nothing filled in or both filled in then everything is okay.
+ if ($valuecount == 0 || $valuecount == 2) {
+ return false;
+ }
+ // If we get here then only one field has been filled in.
+ return get_string('latlongboth', 'data');
+ }
}
$string['jstemplate'] = 'Javascript template';
$string['latitude'] = 'Latitude';
$string['latlong'] = 'Latitude/longitude';
+$string['latlongboth'] = 'Both the Latitude and the Longitude must be filled in.';
$string['latlongdownloadallhint'] = 'Download link for all entries as KML';
$string['latlongkmllabelling'] = 'How to label items in KML files (Google Earth)';
$string['latlonglinkservicesdisplayed'] = 'Link-out services to display';
// Empty form checking - you can't submit an empty form.
$emptyform = true;
$requiredfieldsfilled = true;
+ $fieldsvalidated = true;
// Store the notifications.
$result->generalnotifications = array();
$field = data_get_field($fieldrecord, $mod);
if (isset($submitteddata[$fieldrecord->id])) {
+ // Field validation check.
+ if (method_exists($field, 'field_validation')) {
+ $errormessage = $field->field_validation($submitteddata[$fieldrecord->id]);
+ if ($errormessage) {
+ $result->fieldnotifications[$field->field->name][] = $errormessage;
+ $fieldsvalidated = false;
+ }
+ }
foreach ($submitteddata[$fieldrecord->id] as $fieldname => $value) {
if ($field->notemptyfield($value->value, $value->fieldname)) {
// The field has content and the form is not empty.
$result->generalnotifications[] = get_string('emptyaddform', 'data');
}
- $result->validated = $requiredfieldsfilled && !$emptyform;
+ $result->validated = $requiredfieldsfilled && !$emptyform && $fieldsvalidated;
return $result;
}