/** The constructor * @access public * @param array $options * @return void */ public function __construct(array $options = null) { $institutions = new Institutions(); $inst_options = $institutions->getInsts(); $rulers = new Rulers(); $ruler_options = $rulers->getRomanRulers(); $discs = new DiscoMethods(); $disc_options = $discs->getOptions(); $periods = new Periods(); $period_options = $periods->getPeriodFrom(); $periods = new Periods(); $periodword_options = $periods->getPeriodFromWords(); $reasons = new Findofnotereasons(); $reason_options = $reasons->getReasons(); $rallies = new Rallies(); $rally_options = $rallies->getRallies(); $counties = new OsCounties(); $county_options = $counties->getCountiesID(); $regions = new OsRegions(); $region_options = $regions->getRegionsID(); $terminalDates = new TerminalReasons(); $termOptions = $terminalDates->getReasons(); $qualityRatings = new DataQuality(); $qualityStreet = $qualityRatings->getRatings(); $current_year = date('Y'); $years = range(1650, $current_year); $years_list = array_combine($years, $years); $reeces = new Reeces(); $reece_options = $reeces->getReeces(); $siteclasses = new ArchaeologicalSiteClass(); $siteclass_options = $siteclasses->getOptions(); $contexts = new ArchaeologicalContexts(); $context_options = $contexts->getOptions(); $features = new ArchaeologicalFeatures(); $feature_options = $features->getOptions(); parent::__construct($options); $this->setName('AdvancedHoards'); $old_findID = new Zend_Form_Element_Text('old_findID'); $old_findID->setLabel('Find number: ')->addFilters(array('StringTrim', 'StripTags'))->addValidator('StringLength', false, array(3, 20))->addErrorMessage('Please enter a valid number!'); $objecttype = new Zend_Form_Element_Hidden('objecttype'); $objecttype->setValue('HOARD')->addFilters(array('StringTrim', 'StripTags'))->addErrorMessage('Please enter a valid object type!'); $description = new Zend_Form_Element_Text('description'); $description->setLabel('Hoard description contains: ')->addFilters(array('StringTrim', 'StripTags'))->addErrorMessage('Please enter a valid term'); //Find of note $findofnote = new Zend_Form_Element_Checkbox('note'); $findofnote->setLabel('Find of Note: ')->addFilters(array('StringTrim', 'StripTags'))->setUncheckedValue(null); //Reason for find of note $findofnotereason = new Zend_Form_Element_Select('reason'); $findofnotereason->setLabel('Reason for noteworthy status: ')->addFilters(array('StringTrim', 'StripTags'))->addMultiOptions(array(null => 'Choose reason', 'Available reasons' => $reason_options))->setAttribs(array('class' => 'input-xxlarge selectpicker show-menu-arrow')); //Institution $institution = new Zend_Form_Element_Select('institution'); $institution->setLabel('Recording institution: ')->addFilters(array('StringTrim', 'StripTags'))->addMultiOptions(array(null => 'Choose institution', 'Available institutions' => $inst_options))->setAttribs(array('class' => 'input-medium selectpicker show-menu-arrow')); $notes = new Zend_Form_Element_Text('notes'); $notes->setLabel('Notes: ')->addFilters(array('StringTrim', 'StripTags')); $broadperiod = new Zend_Form_Element_Select('broadperiod'); $broadperiod->setLabel('Broad period: ')->addFilters(array('StringTrim', 'StripTags'))->addMultiOptions(array(null => 'Choose period from', 'Available periods' => $periodword_options))->setAttribs(array('class' => 'input-xlarge selectpicker show-menu-arrow')); $objdate1subperiod = new Zend_Form_Element_Select('fromsubperiod'); $objdate1subperiod->setLabel('Sub period from: ')->addMultiOptions(array(null => 'Choose sub-period from', 'Available sub period from' => array('1' => 'Early', '2' => 'Middle', '3' => 'Late')))->addFilters(array('StringTrim', 'StripTags'))->setOptions(array('separator' => ''))->setAttribs(array('class' => 'input-xlarge selectpicker show-menu-arrow')); //Period from: Assigned via dropdown $objdate1period = new Zend_Form_Element_Select('periodFrom'); $objdate1period->setLabel('Period from: ')->addFilters(array('StringTrim', 'StripTags'))->addMultiOptions(array(null => 'Choose period from', 'Available periods' => $period_options))->setAttribs(array('class' => 'input-xlarge selectpicker show-menu-arrow')); $objdate2subperiod = new Zend_Form_Element_Select('tosubperiod'); $objdate2subperiod->setLabel('Sub period to: ')->addMultiOptions(array(null => 'Choose sub-period from', 'Available subperiods' => array('1' => 'Early', '2' => 'Middle', '3' => 'Late')))->setDisableTranslator(true)->addFilters(array('StringTrim', 'StripTags'))->setOptions(array('separator' => ''))->setAttribs(array('class' => 'input-xlarge selectpicker show-menu-arrow')); //Period to: Assigned via dropdown $objdate2period = new Zend_Form_Element_Select('periodTo'); $objdate2period->setLabel('Period to: ')->addFilters(array('StringTrim', 'StripTags'))->addMultiOptions(array(null => 'Choose period to', 'Available periods' => $period_options))->setAttribs(array('class' => 'input-xlarge selectpicker show-menu-arrow')); $from = new Zend_Form_Element_Text('fromdate'); $from->setLabel('Start date: ')->addFilters(array('StringTrim', 'StripTags'))->addValidators(array('NotEmpty', 'Int'))->addErrorMessage('Please enter a valid date')->setAttribs(array('placeholder' => 'Positive for AD, negative for BC'))->setDescription('If you want to search for a date range, ' . 'enter a start date in this box and and end in the ' . 'box below. You do not need to add AD or BC'); $to = new Zend_Form_Element_Text('todate'); $to->setLabel('End date: ')->addFilters(array('StringTrim', 'StripTags'))->addValidators(array('NotEmpty', 'Int'))->addErrorMessage('Please enter a valid date')->setAttribs(array('placeholder' => 'Positive for AD, negative for BC')); $workflow = new Zend_Form_Element_Select('workflow'); $workflow->setLabel('Workflow stage: ')->addFilters(array('StringTrim', 'StripTags'))->addValidator('Int')->setAttribs(array('class' => 'input-medium selectpicker show-menu-arrow')); if (in_array($this->_role, $this->_higherlevel)) { $workflow->addMultiOptions(array(null => 'Available Workflow stages', 'Choose Worklow stage' => array('1' => 'Quarantine', '2' => 'On review', '4' => 'Awaiting validation', '3' => 'Published'))); } if (in_array($this->_role, $this->_restricted)) { $workflow->addMultiOptions(array(null => 'Available Workflow stages', 'Choose Worklow stage' => array('4' => 'Awaiting validation', '3' => 'Published'))); } $treasure = new Zend_Form_Element_Checkbox('treasure'); $treasure->setLabel('Treasure find: ')->addFilters(array('StringTrim', 'StripTags'))->setUncheckedValue(null); $treasureID = new Zend_Form_Element_Text('TID'); $treasureID->setLabel('Treasure ID number: ')->addFilters(array('StringTrim', 'StripTags')); //Rally details $rally = new Zend_Form_Element_Checkbox('rally'); $rally->setLabel('Rally find: ')->addValidator('Int')->addFilters(array('StringTrim', 'StripTags'))->setUncheckedValue(null); $rallyID = new Zend_Form_Element_Select('rallyID'); $rallyID->setLabel('Found at this rally: ')->addFilters(array('StringTrim', 'StripTags'))->addMultiOptions(array(null => 'Choose a rally', 'Available rallies' => $rally_options))->setAttribs(array('class' => 'input-xlarge selectpicker show-menu-arrow')); $other_ref = new Zend_Form_Element_Text('otherRef'); $other_ref->setLabel('Other reference: ')->addFilters(array('StringTrim', 'StripTags')); $smrRef = new Zend_Form_Element_Text('smrRef'); $smrRef->setLabel('SMR reference: ')->addFilters(array('StringTrim', 'StripTags')); $county = new Zend_Form_Element_Select('countyID'); $county->setLabel('County: ')->addValidators(array('NotEmpty'))->addFilters(array('StringTrim', 'StripTags'))->addMultiOptions(array(null => 'Choose county', 'Available counties' => $county_options))->setAttribs(array('class' => 'input-xxlarge selectpicker show-menu-arrow')); $district = new Zend_Form_Element_Select('districtID'); $district->setLabel('District: ')->addMultiOptions(array(null => 'Choose district after county'))->setRegisterInArrayValidator(false)->addFilters(array('StringTrim', 'StripTags'))->setAttribs(array('class' => 'input-xxlarge selectpicker show-menu-arrow')); $parish = new Zend_Form_Element_Select('parishID'); $parish->setLabel('Parish: ')->setRegisterInArrayValidator(false)->addFilters(array('StringTrim', 'StripTags'))->addMultiOptions(array(null => 'Choose parish after county'))->setAttribs(array('class' => 'input-xxlarge selectpicker show-menu-arrow')); $regionID = new Zend_Form_Element_Select('regionID'); $regionID->setLabel('European region: ')->setRegisterInArrayValidator(false)->addValidator('Int')->addMultiOptions(array(null => 'Choose a region for a wide result', 'Choose region' => $region_options))->setAttribs(array('class' => 'input-xlarge selectpicker show-menu-arrow')); $gridref = new Zend_Form_Element_Text('gridref'); $gridref->setLabel('Grid reference: ')->addValidators(array('NotEmpty', 'ValidGridRef'))->addFilters(array('StringTrim', 'StripTags')); $fourFigure = new Zend_Form_Element_Text('fourFigure'); $fourFigure->setLabel('Four figure grid reference: ')->addValidators(array('NotEmpty'))->addFilters(array('StringTrim', 'StripTags')); $idBy = new Zend_Form_Element_Text('idBy'); $idBy->setLabel('Primary identifier: ')->addValidators(array('NotEmpty'))->addFilters(array('StringTrim', 'StripTags')); $identifierID = new Zend_Form_Element_Hidden('identifierID'); $identifierID->addFilters(array('StringTrim', 'StripTags')); $created = new Zend_Form_Element_Text('createdBefore'); $created->setLabel('Date record created on or before: ')->addFilters(array('StringTrim', 'StripTags')); $created2 = new Zend_Form_Element_Text('createdAfter'); $created2->setLabel('Date record created on or after: ')->addFilters(array('StringTrim', 'StripTags')); $updated = new Zend_Form_Element_Text('updatedBefore'); $updated->setLabel('Date record updated on or before: ')->addFilters(array('StringTrim', 'StripTags')); $updated2 = new Zend_Form_Element_Text('updatedAfter'); $updated2->setLabel('Date record updated on or after: ')->addFilters(array('StringTrim', 'StripTags')); $finder = new Zend_Form_Element_Text('finder'); $finder->setLabel('Found by: ')->addFilters(array('StringTrim', 'StripTags')); $finderID = new Zend_Form_Element_Hidden('finderID'); $finderID->addFilters(array('StringTrim', 'StripTags')); $recordby = new Zend_Form_Element_Text('recordername'); $recordby->setLabel('Recorded by: ')->addValidators(array('NotEmpty'))->addFilters(array('StringTrim', 'StripTags'))->setAttrib('autoComplete', 'true'); $recorderID = new Zend_Form_Element_Hidden('recorderID'); $recorderID->addFilters(array('StringTrim', 'StripTags')); $discoverydate = new Zend_Form_Element_Select('discovered'); $discoverydate->setLabel('Year of discovery')->setMultiOptions(array(null => 'Choose a year of discovery', 'Date range' => $years_list))->addValidator('Int')->addFilters(array('StringTrim', 'StripTags'))->setAttribs(array('class' => 'input-xlarge selectpicker show-menu-arrow')); //Submit button $submit = new Zend_Form_Element_Submit('submit'); $submit->setLabel('Submit your search'); $woeid = new Zend_Form_Element_Text('woeid'); $woeid->setLabel('Where on earth ID: ')->addValidator('Int')->addFilters(array('StripTags', 'StringTrim')); $elevation = new Zend_Form_Element_Text('elevation'); $elevation->setLabel('Elevation: ')->addValidator('Int')->addFilters(array('StripTags', 'StringTrim')); $lastRulerID = new Zend_Form_Element_Select('lastRulerID'); $lastRulerID->setLabel('Last Ruler: ')->addValidator('Int')->addMultiOptions(array(null => 'Choose primary ruler', 'Available rulers' => $ruler_options))->addFilters(array('StringTrim', 'StripTags'))->setAttribs(array('class' => 'input-xlarge selectpicker show-menu-arrow'))->setDescription('You need to pick a broad period first')->setRegisterInArrayValidator(false); $termDate1 = new Zend_Form_Element_Text('fromTerminalYear'); $termDate1->setLabel('Terminal year from: ')->setAttribs(array('placeholder' => 'Positive for AD, negative for BC')); $termDate2 = new Zend_Form_Element_Text('toTerminalYear'); $termDate2->setLabel('Terminal year to: ')->setAttribs(array('placeholder' => 'Positive for AD, negative for BC')); $qualityRatingNum = new Zend_Form_Element_Select('qualityRatingNumismatic'); $qualityRatingNum->setLabel('Coin data quality rating: ')->addMultiOptions(array(null => 'Choose quality rating', 'Available options' => $qualityStreet))->addValidator('Int')->addValidator('InArray', false, array(array_keys($qualityStreet)))->addFilters(array('StringTrim', 'StripTags'))->setAttribs(array('class' => 'input-xlarge selectpicker show-menu-arrow')); $qualityRatingArch = new Zend_Form_Element_Select('qualityRatingArchaeological'); $qualityRatingArch->setLabel('Archaeology data quality rating: ')->addMultiOptions(array(null => 'Choose quality rating', 'Available options' => $qualityStreet))->addValidator('Int')->addValidator('InArray', false, array(array_keys($qualityStreet)))->addFilters(array('StringTrim', 'StripTags'))->setAttribs(array('class' => 'input-xlarge selectpicker show-menu-arrow')); $qualityRatingFindspot = new Zend_Form_Element_Select('qualityRatingFindspot'); $qualityRatingFindspot->setLabel('Findspot data quality rating: ')->addMultiOptions(array(null => 'Choose quality rating', 'Available options' => $qualityStreet))->addValidator('Int')->addValidator('InArray', false, array(array_keys($qualityStreet)))->addFilters(array('StringTrim', 'StripTags'))->setAttribs(array('class' => 'input-xlarge selectpicker show-menu-arrow')); $terminalReasonID = new Zend_Form_Element_Select('terminalReasonID'); $terminalReasonID->setLabel('Terminal date reasoning: ')->addMultiOptions(array(null => 'Choose terminal reasoning', 'Available options' => $termOptions))->addValidator('Int')->addFilters(array('StringTrim', 'StripTags'))->setAttribs(array('class' => 'input-xlarge selectpicker show-menu-arrow')); $excavatedYear1 = new Zend_Form_Element_Text('excavatedYear1'); $excavatedYear1->setLabel('Excavated year first date: ')->setAttribs(array('placeholder' => 'Positive for AD, negative for BC')); $excavatedYear2 = new Zend_Form_Element_Text('excavatedYear2'); $excavatedYear2->setLabel('Excavated year end date: ')->setAttribs(array('placeholder' => 'Positive for AD, negative for BC')); $archaeologicalDescription = new Zend_Form_Element_Text('archaeologyDescription'); $archaeologicalDescription->setLabel('Archaeological description contains: '); //Period from: Assigned via dropdown $archdate1period = new Zend_Form_Element_Select('archaeologyPeriodFrom'); $archdate1period->setLabel('Period from: ')->addFilters(array('StringTrim', 'StripTags'))->addMultiOptions(array(null => 'Choose period from', 'Available periods' => $period_options))->setAttribs(array('class' => 'input-xlarge selectpicker show-menu-arrow')); //Period to: Assigned via dropdown $archdate2period = new Zend_Form_Element_Select('archaeologyPeriodTo'); $archdate2period->setLabel('Period to: ')->addFilters(array('StringTrim', 'StripTags'))->addMultiOptions(array(null => 'Choose period to', 'Available periods' => $period_options))->setAttribs(array('class' => 'input-xlarge selectpicker show-menu-arrow')); $siteDateYear1 = new Zend_Form_Element_Text('siteDateYear1'); $siteDateYear1->setLabel('Site date from: ')->setAttribs(array('placeholder' => 'Positive for AD, negative for BC')); $siteDateYear2 = new Zend_Form_Element_Text('siteDateYear2'); $siteDateYear2->setLabel('Site date to: ')->setAttribs(array('placeholder' => 'Positive for AD, negative for BC')); $featureDateYear1 = new Zend_Form_Element_Text('featureDateYear1'); $featureDateYear1->setLabel('Feature date from: ')->setAttribs(array('placeholder' => 'Positive for AD, negative for BC')); $featureDateYear2 = new Zend_Form_Element_Text('featureDateYear2'); $featureDateYear2->setLabel('Feature date to: ')->setAttribs(array('placeholder' => 'Positive for AD, negative for BC')); $knownSite = new Zend_Form_Element_Checkbox('knownSite'); $knownSite->setLabel('Known site: ')->setUncheckedValue(null); $excavated = new Zend_Form_Element_Checkbox('excavated'); $excavated->setLabel('Excavated: ')->setUncheckedValue(null); $siteclass = new Zend_Form_Element_Select('siteClassID'); $siteclass->setLabel('Site class: ')->addMultioptions(array(null => 'Choose class of site', 'Available classes' => $siteclass_options))->addFilters(array('StripTags', 'StringTrim'))->addValidator('InArray', false, array(array_keys($siteclass_options)))->addValidator('Int')->setAttrib('class', 'input-xlarge selectpicker show-menu-arrow'); $arch_context = new Zend_Form_Element_Select('siteContextID'); $arch_context->setLabel('Context: ')->addMultioptions(array(null => 'Choose a context', 'Available contexts' => $context_options))->addFilters(array('StripTags', 'StringTrim'))->addValidator('InArray', false, array(array_keys($context_options)))->addValidator('Int')->setAttrib('class', 'input-xlarge selectpicker show-menu-arrow'); $arch_feature = new Zend_Form_Element_Select('featureID'); $arch_feature->setLabel('Feature: ')->addMultioptions(array(null => 'Choose a feature', 'Available features' => $feature_options))->addFilters(array('StripTags', 'StringTrim'))->addValidator('InArray', false, array(array_keys($feature_options)))->addValidator('Int')->setAttrib('class', 'input-xlarge selectpicker show-menu-arrow'); $quantityCoins = new Zend_Form_Element_Text('quantityCoins'); $quantityCoins->setLabel('Quantity of coins in hoard: '); $quantityCoins->setDescription('This searches for an exact quantity. ' . 'To search for a range use advanced search syntax in the simple ' . 'search box'); $quantityArtefacts = new Zend_Form_Element_Text('quantityArtefacts'); $quantityArtefacts->setLabel('Quantity of artefacts in hoard: '); $quantityArtefacts->setDescription('This searches for an exact quantity. ' . 'To search for a range use advanced search syntax in the simple ' . 'search box'); $quantityContainers = new Zend_Form_Element_Text('quantityContainers'); $quantityContainers->setLabel('Quantity of containers in hoard: '); $quantityContainers->setDescription('This searches for an exact quantity. ' . 'To search for a range use advanced search syntax in the simple ' . 'search box'); $legacyID = new Zend_Form_Element_Text('legacyID'); $legacyID->setLabel('Legacy hoard database number: '); //Reece $reece = new Zend_Form_Element_Select('reeceID'); $reece->setLabel('Reece period: ')->addFilters(array('StripTags', 'StringTrim'))->addMultiOptions(array(null => 'Choose Reece period', 'Available Reece periods' => $reece_options))->addValidator('InArray', false, array(array_keys($reece_options)))->setAttrib('class', 'input-xxlarge selectpicker show-menu-arrow'); $hash = new Zend_Form_Element_Hash('csrf'); $hash->setValue($this->_salt)->setTimeout(4800); if (in_array($this->_role, $this->_restricted)) { $this->addElements(array($old_findID, $objecttype, $broadperiod, $description, $from, $to, $workflow, $findofnote, $findofnotereason, $rally, $rallyID, $other_ref, $notes, $objdate1period, $termDate1, $objdate2period, $county, $regionID, $district, $parish, $fourFigure, $treasure, $treasureID, $discoverydate, $created, $created2, $updated, $updated2, $submit, $elevation, $woeid, $institution, $hash, $smrRef, $lastRulerID, $termDate2, $terminalReasonID, $qualityRatingNum, $qualityRatingArch, $qualityRatingFindspot, $archaeologicalDescription, $excavatedYear1, $excavatedYear2, $featureDateYear1, $featureDateYear2, $knownSite, $excavated, $siteclass, $arch_context, $arch_feature, $quantityArtefacts, $quantityCoins, $quantityContainers, $legacyID, $reece, $archdate1period, $archdate2period)); } else { $this->addElements(array($old_findID, $objecttype, $broadperiod, $description, $from, $to, $workflow, $findofnote, $findofnotereason, $rally, $rallyID, $other_ref, $notes, $objdate1period, $objdate2period, $county, $regionID, $district, $parish, $fourFigure, $elevation, $woeid, $treasure, $treasureID, $discoverydate, $created, $created2, $updated, $updated2, $idBy, $finder, $finderID, $recordby, $recorderID, $identifierID, $lastRulerID, $submit, $institution, $archaeologicalDescription, $smrRef, $hash, $termDate1, $termDate2, $terminalReasonID, $qualityRatingNum, $qualityRatingArch, $qualityRatingFindspot, $excavatedYear1, $excavatedYear2, $featureDateYear1, $featureDateYear2, $siteclass, $arch_context, $arch_feature, $knownSite, $excavated, $quantityArtefacts, $quantityCoins, $quantityContainers, $legacyID, $reece, $archdate1period, $archdate2period)); } $this->addDisplayGroup(array('old_findID', 'objecttype', 'description', 'notes', 'note', 'reason', 'treasure', 'TID', 'rally', 'rallyID', 'workflow', 'otherRef', 'smrRef', 'quantityArtefacts', 'quantityCoins', 'quantityContainers'), 'details'); $this->details->setLegend('Main details: '); $this->addDisplayGroup(array('broadperiod', 'periodFrom', 'periodTo', 'fromdate', 'todate'), 'temporaldetails'); $this->temporaldetails->setLegend('Dates and periods: '); $this->addDisplayGroup(array('lastRulerID', 'reeceID', 'fromTerminalYear', 'toTerminalYear', 'terminalReasonID', 'legacyID', 'qualityRatingNumismatic'), 'numismatics'); $this->numismatics->setLegend('Numismatic analysis: '); $this->addDisplayGroup(array('knownSite', 'excavated', 'archaeologyPeriodFrom', 'archaeologyPeriodTo', 'archaeologyDescription', 'excavatedYear1', 'excavatedYear2', 'siteClassID', 'siteContextID', 'featureID', 'featureDateYear1', 'featureDateYear2', 'qualityRatingArchaeological'), 'archaeology'); $this->archaeology->setLegend('Archaeological context: '); $this->addDisplayGroup(array('countyID', 'regionID', 'districtID', 'parishID', 'fourFigure', 'elevation', 'woeid', 'qualityRatingFindspot'), 'Spatial'); $this->Spatial->setLegend('Spatial details: '); if (in_array($this->_role, $this->_restricted)) { $this->addDisplayGroup(array('institution', 'createdAfter', 'createdBefore', 'updatedAfter', 'updatedBefore', 'discovered'), 'Discovery'); } else { $this->addDisplayGroup(array('institution', 'finder', 'idBy', 'identifierID', 'recordername', 'recorderID', 'createdAfter', 'createdBefore', 'updatedAfter', 'updatedBefore', 'discovered'), 'Discovery'); } $this->Discovery->setLegend('Discovery details: '); $this->addDisplayGroup(array('submit'), 'buttons'); parent::init(); }
/** The constructor * @access public * @param array $options * @return void */ public function __construct(array $options = null) { ## GET OPTIONS TO POPULATE MENUS ## //Get periods for select menu $periods = new Periods(); $period_options = $periods->getPeriodFrom(); $periodword_options = $periods->getPeriodFromWords(); //Get terminal reasons for select menu $terminalreasons = new TerminalReasons(); $terminalreason_options = $terminalreasons->getReasons(); //Get coin data quality ratings for select menu $qualityrating = new DataQuality(); $qualityrating_options = $qualityrating->getRatings(); //Get Find of note reason options for select menu $reasons = new Findofnotereasons(); $reason_options = $reasons->getReasons(); //Get primary materials for multiselect $primarymaterials = new Materials(); $materials_options = $primarymaterials->getPrimaries(); //Get discovery methods for select menu $discs = new DiscoMethods(); $disc_options = $discs->getOptions(); //Get Rally data for select menu $rallies = new Rallies(); $rally_options = $rallies->getRallies(); //Get Subsequent actions for select menu $actions = new SubsequentActions(); $actionsDD = $actions->getSubActionsDD(); //Get the reece periods for inclusion $reece = new Reeces(); $reeces = $reece->getReeces(); //End of select options construction $this->addElementPrefixPath('Pas_Filter', 'Pas/Filter/', 'filter'); parent::__construct($options); $this->setName('hoards'); ## UNIQUE ID FIELDS ## $secuid = new Zend_Form_Element_Hidden('secuid'); $secuid->addFilters(array('StripTags', 'StringTrim'))->addValidator('Alnum'); $old_hoardID = new Zend_Form_Element_Hidden('hoardID'); $old_hoardID->addFilters(array('StripTags', 'StringTrim')); ## HOARD DATING ## //Broadperiod: $broadperiod = new Zend_Form_Element_Select('broadperiod'); $broadperiod->setLabel('Broad period: ')->setRequired(true)->addFilters(array('StripTags', 'StringTrim'))->addMultiOptions(array(null => 'Choose broadperiod', 'Available periods' => $periodword_options))->addErrorMessage('You must enter a broad period.')->addValidator('InArray', false, array(array_keys($periodword_options)))->setAttribs(array('class' => 'input-xlarge selectpicker show-menu-arrow'))->setOrder(1); //Sub period from: Assigned via dropdown $hoardsubperiod1 = new Zend_Form_Element_Select('subperiod1'); $hoardsubperiod1->setLabel('Sub period from: ')->setRequired(false)->addFilters(array('StripTags', 'StringTrim', 'Null'))->addMultiOptions(array(null => 'Choose a subperiod', 'Valid sub periods' => array('1' => 'Early', '2' => 'Middle', '3' => 'Late')))->setAttribs(array('class' => 'selectpicker show-menu-arrow'))->setOrder(2); //Period from: Assigned via dropdown $hoardperiod1 = new Zend_Form_Element_Select('period1'); $hoardperiod1->setLabel('Period from: ')->setRequired(false)->addFilters(array('StripTags', 'StringTrim', 'Null'))->addMultiOptions(array(null => 'Choose a period from', 'Available periods' => $period_options))->addValidator('InArray', false, array(array_keys($period_options)))->addValidator('Int')->setAttribs(array('class' => 'input-xlarge selectpicker show-menu-arrow'))->setOrder(3); //Sub period to: Assigned via dropdown $hoardsubperiod2 = new Zend_Form_Element_Select('subperiod2'); $hoardsubperiod2->setLabel('Sub period to: ')->setRequired(false)->addFilters(array('StripTags', 'StringTrim', 'Null'))->addMultiOptions(array(null => 'Choose a subperiod', 'Valid sub periods' => array('1' => 'Early', '2' => 'Middle', '3' => 'Late')))->addValidator('Digits')->setAttribs(array('class' => 'selectpicker show-menu-arrow'))->setOrder(4); //Period to: Assigned via dropdown $hoardperiod2 = new Zend_Form_Element_Select('period2'); $hoardperiod2->setLabel('Period to: ')->setRequired(false)->addFilters(array('StripTags', 'StringTrim', 'Null'))->addMultiOptions(array(null => 'Choose period to', 'Available periods' => $period_options))->addValidator('InArray', false, array(array_keys($period_options)))->addValidator('Int')->setAttribs(array('class' => 'input-xlarge selectpicker show-menu-arrow'))->setOrder(5); //Date from: Free text Integer +ve or -ve $numdate1 = new Zend_Form_Element_Text('numdate1'); $numdate1->setLabel('Date from: ')->setAttrib('size', 10)->setAttribs(array('placeholder' => 'Year in format YYYY'))->addFilters(array('StripTags', 'StringTrim', 'Null'))->addValidator('Int')->setOrder(6); //Date to: Free text Integer +ve or -ve $numdate2 = new Zend_Form_Element_Text('numdate2'); $numdate2->setLabel('Date to: ')->setAttrib('size', 10)->setAttribs(array('placeholder' => 'Year in format YYYY'))->addFilters(array('StripTags', 'StringTrim', 'Null'))->addValidator('Int')->setOrder(7); ## COIN DATING ## //Ruler of latest coins in hoard: $lastruler = new Zend_Form_Element_Select('lastrulerID'); $lastruler->setLabel('Last ruler: ')->setRequired(false)->addFilters(array('StripTags', 'StringTrim', 'Null'))->addMultiOptions(array(null => 'Choose ruler after broad period'))->setRegisterInArrayValidator(false)->setAttribs(array('class' => 'input-xlarge selectpicker show-menu-arrow'))->setOrder(8); //Ruler of latest coins in hoard: $lastreeceperiod = new Zend_Form_Element_Select('reeceID'); $lastreeceperiod->setLabel('Last Reece period: ')->setRequired(false)->addFilters(array('StripTags', 'StringTrim', 'Null'))->addMultiOptions(array(null => 'Choose Reece period', 'Available periods' => $reeces))->setRegisterInArrayValidator(false)->setAttribs(array('class' => 'input-xlarge selectpicker show-menu-arrow'))->setOrder(9); //Date from: Free text Integer +ve or -ve $terminaldate1 = new Zend_Form_Element_Text('terminalyear1'); $terminaldate1->setLabel('Terminal date from: ')->setAttrib('size', 10)->setAttribs(array('placeholder' => 'Year in format YYYY'))->addFilters(array('StripTags', 'StringTrim', 'Null'))->addValidator('Int')->setOrder(10); //Date to: Free text Integer +ve or -ve $terminaldate2 = new Zend_Form_Element_Text('terminalyear2'); $terminaldate2->setLabel('Terminal date to: ')->setAttrib('size', 10)->setAttribs(array('placeholder' => 'Year in format YYYY'))->addFilters(array('StripTags', 'StringTrim', 'Null'))->addValidator('Int')->setOrder(11); //Reason for terminal coin dating $terminalreason = new Zend_Form_Element_Select('terminalreason'); $terminalreason->setLabel('Terminal reason: ')->setRequired(false)->addFilters(array('StripTags', 'StringTrim', 'Null'))->addMultiOptions(array(null => 'Choose a reasoning', 'Available reasons' => $terminalreason_options))->addValidator('InArray', false, array(array_keys($terminalreason_options)))->setAttrib('class', 'input-xlarge selectpicker show-menu-arrow')->addValidator('Int')->setOrder(12); ## HOARD DETAILS ## //Hoard description $description = new Pas_Form_Element_CKEditor('description'); $description->setLabel('Hoard description: ')->setRequired(false)->addFilters(array('StringTrim', 'BasicHtml', 'EmptyParagraph', 'WordChars'))->setOrder(13); //Object notes $notes = new Pas_Form_Element_CKEditor('notes'); $notes->setLabel('Notes: ')->setRequired(false)->addFilters(array('StringTrim', 'BasicHtml', 'EmptyParagraph', 'WordChars'))->setOrder(14); //Coin data quality rating $coindataquality = new Zend_Form_Element_Select('qualityrating'); $coindataquality->setLabel('Coin data quality rating: ')->setRequired(false)->addFilters(array('StripTags', 'StringTrim', 'Null'))->addMultiOptions(array(null => 'Choose a rating', 'Available ratings' => $qualityrating_options))->addValidator('InArray', false, array(array_keys($qualityrating_options)))->setAttrib('class', 'input-large selectpicker show-menu-arrow')->setDescription('This data quality field can only be completed by hoards project staff')->addValidator('Int')->setOrder(15); //Find of note $findofnote = new Zend_Form_Element_Checkbox('findofnote'); $findofnote->setLabel('Find of Note: ')->setRequired(false)->setCheckedValue('1')->setUncheckedValue(null)->addFilters(array('StripTags', 'StringTrim', 'Null'))->addValidator('NotEmpty', 'Int')->setOrder(16); //Reason for find of note $findofnotereason = new Zend_Form_Element_Select('findofnotereason'); $findofnotereason->setLabel('Why this find is considered noteworthy: ')->setRequired(false)->addFilters(array('StripTags', 'StringTrim', 'Null'))->addMultiOptions(array(null => 'Choose a reasoning', 'Available reasons' => $reason_options))->addValidator('InArray', false, array(array_keys($reason_options)))->setAttrib('class', 'input-xxlarge selectpicker show-menu-arrow')->addValidator('Int')->setOrder(17); //Treasure: enumerator 1/0 $treasure = new Zend_Form_Element_Checkbox('treasure'); $treasure->setLabel('Treasure: ')->setRequired(false)->setCheckedValue('1')->setUncheckedValue(null)->addFilters(array('StripTags', 'StringTrim', 'Null'))->setOrder(18); //Treasure ID $treasureID = new Zend_Form_Element_Text('treasureID'); $treasureID->setLabel('Treasure number: ')->setRequired(false)->setAttribs(array('placeholder' => 'T numbers are in the format of YYYYT1234', 'class' => 'span6'))->addValidator('Alnum', false, array('allowWhiteSpace' => false))->addFilters(array('StripTags', 'StringTrim', 'StringToUpper'))->setOrder(19); ## QUANTITIES ## $quantityCoins = new Zend_Form_Element_Text('quantityCoins'); $quantityCoins->setLabel('Quantity of coins: ')->addValidator('Int')->setOrder(20); $quantityArtefacts = new Zend_Form_Element_Text('quantityArtefacts'); $quantityArtefacts->setLabel('Quantity of artefacts: ')->addValidator('Int')->setOrder(21); $quantityContainers = new Zend_Form_Element_Text('quantityContainers'); $quantityContainers->setLabel('Quantity of containers: ')->addValidator('Int')->setOrder(22); ## MATERIALS ## //Materials $materials = new Zend_Form_Element_Multiselect('materials'); $materials->setLabel('Primary materials: ')->addMultiOptions($materials_options)->setAttrib('class', 'multiselect')->setDescription('Primary materials of coins and artefacts in the hoard')->addFilters(array('Null'))->setOrder(23); ## RECORDING DETAILS ## //Recorder $recorderID = new Zend_Form_Element_Hidden('recorderID'); $recorderID->addFilters(array('StripTags', 'StringTrim', 'Null'))->setOrder(24); $recordername = new Zend_Form_Element_Text('recordername'); $recordername->setLabel('Recorded by: ')->addFilters(array('StripTags', 'StringTrim', 'Null'))->setOrder(25); //Primary Identifier $idBy = new Zend_Form_Element_Text('idBy'); $idBy->setLabel('Primary identifier: ')->addFilters(array('StripTags', 'StringTrim', 'Null'))->setOrder(26); $identifier1ID = new Zend_Form_Element_Hidden('identifier1ID'); $identifier1ID->addFilters(array('StripTags', 'StringTrim', 'Null'))->setOrder(27); $id2by = new Zend_Form_Element_Text('id2by'); $id2by->setLabel('Secondary Identifier: ')->addFilters(array('StripTags', 'StringTrim', 'Null'))->setOrder(28); //Secondary Identifier $identifier2ID = new Zend_Form_Element_Hidden('identifier2ID'); $identifier2ID->setRequired(false)->addFilters(array('StripTags', 'StringTrim', 'Null'))->setOrder(29); ## DISCOVERER DETAILS ## //Finder $finder1ID = new Zend_Form_Element_Hidden('finder1ID'); $finder1ID->setRequired(false)->addFilters(array('StripTags', 'StringTrim', 'Null'))->setOrder(30); $hiddenfield = new Zend_Form_Element_Hidden('hiddenfield'); $hiddenfield->setValue(2)->setOrder(31); $finder1 = new Zend_Form_Element_Text('finder1'); $finder1->setLabel('Found by: ')->addFilters(array('StripTags', 'StringTrim', 'Null'))->setDescription('To make a new finder/identifier appear, you ' . 'first need to create them from the people menu on ' . 'the left hand side')->setOrder(32); $addFinderButton = new Zend_Form_Element_Button('addFinder'); $addFinderButton->setLabel('Add Additional Finder')->setAttribs(array('class' => 'btn btn-info')); $addFinderButton->setOrder(50); $removeFinderButton = new Zend_Form_Element_Button('removeFinder'); $removeFinderButton->setLabel('Remove Last Finder')->setAttribs(array('class' => 'btn btn-warning hidden')); $removeFinderButton->setOrder(51); ## DISCOVERY INFORMATION ## //Discovery method $discmethod = new Zend_Form_Element_Select('discmethod'); $discmethod->setLabel('Discovery method: ')->setRequired(false)->setValue(1)->addFilters(array('StripTags', 'StringTrim', 'Null'))->addValidator('Int')->addValidator('inArray', true, array(array_keys($disc_options)))->addMultiOptions(array(null => 'Choose method of discovery', 'Available methods' => $disc_options))->setAttribs(array('class' => 'input-xxlarge selectpicker show-menu-arrow'))->setOrder(52); //Discovery circumstances $disccircum = new Zend_Form_Element_Text('disccircum'); $disccircum->setLabel('Discovery circumstances: ')->setAttrib('size', 50)->setAttrib('class', 'span6')->addFilters(array('StripTags', 'StringTrim', 'Null'))->setOrder(53); //Date found from $datefound1 = new Zend_Form_Element_Text('datefound1'); $datefound1->setLabel('First discovery date: ')->setAttrib('size', 10)->addFilters(array('StripTags', 'StringTrim', 'Null'))->setOrder(54); //Date found to $datefound2 = new Zend_Form_Element_Text('datefound2'); $datefound2->setLabel('Second discovery date: ')->setAttrib('size', 10)->addFilters(array('StripTags', 'StringTrim', 'Null'))->setOrder(55); //Rally details $rally = new Zend_Form_Element_Checkbox('rally'); $rally->setLabel('Rally find: ')->setCheckedValue('1')->setUncheckedValue(null)->addFilters(array('StripTags', 'StringTrim', 'Null'))->addValidator('Int')->setOrder(56); $rallyID = new Zend_Form_Element_Select('rallyID'); $rallyID->setLabel('Found at this rally: ')->addFilters(array('StripTags', 'StringTrim', 'Null'))->addMultiOptions(array(null => 'Choose rally name', 'Available rallies' => $rally_options))->addValidator('InArray', false, array(array_keys($rally_options)))->setAttribs(array('class' => 'input-xxlarge selectpicker show-menu-arrow'))->addValidator('Int')->setOrder(57); ## OTHER REFERENCE NUMBERS ## //Legacy hoard ID $legacy_ref = new Zend_Form_Element_Text('legacyID'); $legacy_ref->setLabel('Legacy hoard ID: ')->setAttrib('size', 5)->addFilters(array('StripTags', 'StringTrim', 'Null'))->setOrder(58)->disabled = true; //Other reference number $other_ref = new Zend_Form_Element_Text('other_ref'); $other_ref->setLabel('Other reference: ')->setAttrib('size', 50)->addFilters(array('StripTags', 'StringTrim', 'Null'))->setOrder(59); //HER reference number $smrrefno = new Zend_Form_Element_Text('smrrefno'); $smrrefno->setLabel('Historic Environment Record number: ')->setAttrib('size', 30)->addFilters(array('StripTags', 'StringTrim', 'Null'))->setOrder(60); //Museum accession number $musaccno = new Zend_Form_Element_Text('musaccno'); $musaccno->setLabel('Museum accession number: ')->setAttrib('size', 50)->addFilters(array('StripTags', 'StringTrim', 'Null'))->setOrder(61); //Current location of object $curr_loc = new Zend_Form_Element_Text('curr_loc'); $curr_loc->setLabel('Current location: ')->setAttrib('class', 'span6')->addFilters(array('StripTags', 'StringTrim', 'Null'))->setOrder(62); //Current location of object $subs_action = new Zend_Form_Element_Select('subs_action'); $subs_action->setLabel('Subsequent action: ')->addFilters(array('StripTags', 'StringTrim', 'Null'))->setAttrib('class', 'span6')->addMultiOptions(array(null => 'Choose a subsequent action', 'Available options' => $actionsDD))->setValue(1)->addValidator('InArray', false, array(array_keys($actionsDD)))->addValidator('Int')->setAttribs(array('class' => 'input-xxlarge selectpicker show-menu-arrow'))->setOrder(63); ## Quantities ## $quantityCoins = new Zend_Form_Element_Text('quantityCoins'); $quantityCoins->setLabel('Quantity of coins: ')->addValidator('Int')->setValue(null); $quantityArtefacts = new Zend_Form_Element_Text('quantityArtefacts'); $quantityArtefacts->setLabel('Quantity of artefacts: ')->addValidator('Int')->setValue(null); $quantityContainers = new Zend_Form_Element_Text('quantityContainers'); $quantityContainers->setLabel('Quantity of containers: ')->addValidator('Int')->setValue(null); ## SUBMIT BUTTON ## $submit = new Zend_Form_Element_Submit('submit'); $submit->setOrder(67); $this->addElements(array($secuid, $old_hoardID, $broadperiod, $hoardperiod1, $hoardperiod2, $hoardsubperiod1, $hoardsubperiod2, $numdate1, $numdate2, $lastruler, $lastreeceperiod, $terminaldate1, $terminaldate2, $terminalreason, $description, $notes, $coindataquality, $findofnote, $findofnotereason, $treasure, $treasureID, $quantityArtefacts, $quantityCoins, $quantityContainers, $materials, $recorderID, $recordername, $idBy, $id2by, $identifier1ID, $identifier2ID, $finder1, $finder1ID, $hiddenfield, $addFinderButton, $removeFinderButton, $discmethod, $disccircum, $datefound1, $datefound2, $rally, $rallyID, $legacy_ref, $other_ref, $smrrefno, $musaccno, $curr_loc, $subs_action, $submit)); $this->addDisplayGroup(array('broadperiod', 'subperiod1', 'period1', 'subperiod2', 'period2', 'numdate1', 'numdate2'), 'hoarddating'); $this->hoarddating->setLegend('Hoard dating'); $this->addDisplayGroup(array('lastrulerID', 'reeceID', 'terminalyear1', 'terminalyear2', 'terminalreason'), 'coindating'); $this->coindating->setLegend('Coin dating'); $this->addDisplayGroup(array('description', 'notes', 'qualityrating', 'findofnote', 'findofnotereason', 'treasure', 'treasureID'), 'hoarddetails'); $this->hoarddetails->setLegend('Hoard details'); $this->addDisplayGroup(array('quantityCoins', 'quantityArtefacts', 'quantityContainers'), 'quantities'); $this->quantities->setLegend('Quantities'); $this->addDisplayGroup(array('materials'), 'primarymaterials'); $this->primarymaterials->setLegend('Materials'); $this->addDisplayGroup(array('recordername', 'recorderID', 'idBy', 'identifier1ID', 'id2by', 'identifier2ID'), 'recorders'); $this->recorders->setLegend('Recording details'); $this->addDisplayGroup(array('finder1', 'finder1ID', 'hiddenfield', 'addFinder', 'removeFinder'), 'discoverers'); $this->discoverers->setLegend('Discoverer details'); $this->addDisplayGroup(array('disccircum', 'discmethod', 'datefound1', 'datefound2', 'rally', 'rallyID'), 'discovery'); $this->discovery->setLegend('Discovery details'); $this->addDisplayGroup(array('legacyID', 'other_ref', 'smrrefno', 'musaccno', 'curr_loc', 'subs_action'), 'references'); $this->references->setLegend('Reference numbers'); $this->addDisplayGroup(array('submit'), 'buttons'); parent::init(); $addFinderButton->removeDecorator('Label'); $addFinderButtonDecorator = $addFinderButton->getDecorator('HtmlTag'); $addFinderButtonDecorator->setOption('id', 'addFinderDiv'); $removeFinderButton->removeDecorator('Label'); $person = new Pas_User_Details(); $role = $person->getRole(); $projectTeam = array('hoard', 'admin'); if (!in_array($role, $projectTeam)) { $coindataquality->disabled = true; } }