Source of file RegisterMetadataForm.php
Size: 9,389 Bytes - Last Modified: 2021-12-23T10:31:40+00:00
/var/www/docs.ssmods.com/process/src/code/forms/RegisterMetadataForm.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 | <?php /** * @author Rainer Spittel (rainer at silverstripe dot com) * @package geocatalog * @subpackage forms */ /** * Standard RegisterMetadataForm * * This class implements the standard registration form, which contains a mandatory * text fields to register metadata in MCP format (derived ISO19139 format). */ class RegisterMetadataForm extends Form { public function getRecaptchaField() { $field = null; $spamProtector = SpamProtectorManager::get_spam_protector(); if ($spamProtector == "RecaptchaProtector") { $field = new RecaptchaField("Recaptcha", "Please enter text"); $field->jsOptions = array('theme' => 'clean'); $field->addExtraClass("required"); } return $field; } /** * Initiate the standard Metadata catalogue search form. The * additional parameter $defaults defines the default values for the form. * * @param Controller $controller The parent controller, necessary to create the appropriate form action tag. * @param String $name The method on the controller that will return this form object. * @param FieldSet $fields All of the fields in the form - a {@link FieldSet} of {@link FormField} objects. * @param FieldSet $actions All of the action buttons in the form - a {@link FieldSet} of {@link FormAction} objects * @param Validator $validator Override the default validator instance (Default: {@link RequiredFields}) */ public function __construct($controller, $name, FieldSet $fields = null, FieldSet $actions = null, $validator = null) { $recaptchaField = $this->getRecaptchaField(); if (!$fields) { // Create fields //adding extra class for custom validation $title = new TextField('MDTitle', "TITLE"); $title->addExtraClass("required"); $fields = new FieldSet( new CompositeField( $title, new TextareaField('MDAbstract'), new CalendarDateField('MDDateTime1'), new DropdownField('MDDateType1', 'DateType', MDCodeTypes::get_date_types(), ""), // drop down new CalendarDateField('MDDateTime2'), new DropdownField('MDDateType2', 'DateType', MDCodeTypes::get_date_types(), ""), // drop down new CalendarDateField('MDDateTime3'), new DropdownField('MDDateType3', 'DateType', MDCodeTypes::get_date_types(), ""), // drop down new ListboxField('MDTopicCategory', 'Category', MDCodeTypes::get_categories(), "", 8, true) // drop down ), new CompositeField( new DropdownField('MDSpatialRepresentationType', 'Spatial Representation Type', MDCodeTypes::get_spatial_representation_type(), ""), // drop down new TextField('MDGeographicDiscription', 'Geographic Description'), // drop down new TextField('MDWestBound'), // double new TextField('MDEastBound'), // double new TextField('MDSouthBound'), // double new TextField('MDNorthBound'), // double new DropdownField('ISOPlaces', 'ISOPlaces', MDCodeTypes::get_places(), "170;180;-52.57806;-32.41472"), // drop down new DropdownField('Places', 'Places', NewZealandPlaces::get_nzplaces(), "-141;160;-7;-90"), // drop down new DropdownField('OffshoreIslands', 'NZ Offshore islands', NewZealandPlaces::get_nzoffshoreislands(), ""), // drop down new DropdownField('Dependencies', 'NZ Dependencies in the South West Pacific', NewZealandPlaces::get_nzdependencies(), ""), // drop down new DropdownField('Regions', 'Regions', NewZealandPlaces::get_nzregions(), ""), // drop down new DropdownField('TAs', 'TAs', NewZealandPlaces::get_nzta(), "") // drop down ), new CompositeField( new TextField('MDIndividualName'), new TextField('MDOrganisationName'), new TextField('MDPositionName'), new TextField('MDVoice'), new HiddenField('MDVoiceData'), /* new TextField('MDFacsimile'), new TextField('MDDeliveryPoint'), new TextField('MDCity'), new TextField('MDAdministrativeArea'), new TextField('MDPostalCode'), new TextField('MDCountry'), */ new EmailField('MDElectronicMailAddress'), new HiddenField('MDElectronicMailAddressData') ), new CompositeField( new DropdownField('ResourceFormatsList1', 'ResourceFormatsList1', MDCodeTypes::get_resource_formats(), ""), // drop down new TextField('MDResourceFormatName1', 'MDResourceFormatName1', ""), // drop down new TextField('MDResourceFormatVersion1', 'MDResourceFormatVersion1', "") // drop down ), new CompositeField( new DropdownField('ResourceFormatsList2', 'ResourceFormatsList2', MDCodeTypes::get_resource_formats(), ""), // drop down new TextField('MDResourceFormatName2', 'MDResourceFormatName2', ""), // drop down new TextField('MDResourceFormatVersion2', 'MDResourceFormatVersion2', "") // drop down ), new CompositeField( new DropdownField('ResourceFormatsList3', 'ResourceFormatsList3', MDCodeTypes::get_resource_formats(), ""), // drop down new TextField('MDResourceFormatName3', 'MDResourceFormatName3', ""), // drop down new TextField('MDResourceFormatVersion3', 'MDResourceFormatVersion3', "") // drop down ), new CompositeField( new DropdownField('ResourceFormatsList4', 'ResourceFormatsList4', MDCodeTypes::get_resource_formats(), ""), // drop down new TextField('MDResourceFormatName4', 'MDResourceFormatName4', ""), // drop down new TextField('MDResourceFormatVersion4', 'MDResourceFormatVersion4', "") // drop down ), new CompositeField( new DropdownField('ResourceFormatsList5', 'ResourceFormatsList5', MDCodeTypes::get_resource_formats(), ""), // drop down new TextField('MDResourceFormatName5', 'MDResourceFormatName5', ""), // drop down new TextField('MDResourceFormatVersion5', 'MDResourceFormatVersion5', "") // drop down ), new CompositeField( new DropDownField('MDHierarchyLevel', 'MDHierarchyLevel', MDCodeTypes::get_scope_codes_keys(), ""), // drop down new HiddenField('MDHierarchyLevelData', 'MDHierarchyLevelData', ""), new TextField('MDHierarchyLevelName', 'MDHierarchyLevelName', ""), new HiddenField('MDHierarchyLevelNameData', 'MDHierarchyLevelNameData', ""), new TextField('MDParentIdentifier', 'MDParentIdentifier', "") ), new CompositeField( new TextField('CIOnlineLinkage', 'CIOnlineLinkage', ""), new HiddenField('CIOnlineLinkageData', 'CIOnlineLinkageData', ""), new DropdownField('CIOnlineProtocol', 'CIOnlineProtocol', MDCodeTypes::get_online_resource_protocol(), ""), // drop down new TextField('CIOnlineName', 'CIOnlineName', ""), new TextField('CIOnlineDescription', 'CIOnlineDescription', ""), new DropdownField('CIOnlineFunction', 'CIOnlineFunction', MDCodeTypes::get_online_resource_function(), "") // drop down ), new CompositeField( new DropdownField('useLimitation', 'License', MDCodeTypes::get_use_limitation(), "") // drop down ) ); } if ($recaptchaField) { $fields->push($recaptchaField); } if (!$actions) { $actions = new FieldSet( new FormAction('doRegisterMetadata', 'Submit') ); } if (!$validator) { $validator = new RequiredFields( //make sure that MDTitle and MDAbstract is filled and MDElectronicMailAddress is a valid email-address 'MDTitle', 'MDAbstract', 'MDElectronicMailAddress', 'MDDateTime', 'MDTopicCategory' ); } $validator->setJavascriptValidationHandler('none'); parent::__construct($controller, $name, $fields, $actions, $validator); } public function forTemplate() { return $this->renderWith(array( $this->class, 'Form' )); } } |