示例#1
0
 /** The constructor
  * @access public
  * @param array $options
  * @return void
  */
 public function __construct(array $options = null)
 {
     $types = new PublicationTypes();
     $type_options = $types->getTypes();
     parent::__construct($options);
     $this->setName('publication');
     $title = new Zend_Form_Element_Text('title');
     $title->setLabel('Publication title: ')->setRequired(true)->addFilters(array('StripTags', 'StringTrim'))->setAttrib('size', 50)->addErrorMessage('Please enter a publication title.');
     $authors = new Zend_Form_Element_Text('authors');
     $authors->setLabel('Author names: ')->setRequired(true)->addFilters(array('StripTags', 'StringTrim'))->setAttrib('size', 50)->addErrorMessage('You must enter either an author\'s or an editor\'s name.');
     $editors = new Zend_Form_Element_Text('editors');
     $editors->setLabel('Editor names: ')->setRequired(false)->addFilters(array('StripTags', 'StringTrim'))->setAttrib('size', 50);
     $publisher = new Zend_Form_Element_Text('publisher');
     $publisher->setLabel('Publisher: ')->addFilters(array('StripTags', 'StringTrim'))->setRequired(true)->setAttrib('size', 50)->addErrorMessage('You must enter a publisher.');
     $publication_place = new Zend_Form_Element_Text('publication_place');
     $publication_place->setLabel('Publication place: ')->addFilters(array('StripTags', 'StringTrim'))->setRequired(true)->addValidator('Alnum', false, array('allowWhiteSpace' => true))->setAttrib('size', 70)->addErrorMessage('You must enter place of publication.');
     $publication_year = new Zend_Form_Element_Text('publication_year');
     $publication_year->setLabel('Publication year: ')->setRequired(true)->addValidator('Digits')->addFilters(array('StripTags', 'StringTrim'))->setAttrib('size', 20)->addErrorMessage('You must enter year of publication.');
     $vol_no = new Zend_Form_Element_Text('vol_no');
     $vol_no->setLabel('Volume number: ')->setRequired(false)->addValidator('Alnum', false, array('allowWhiteSpace' => true))->setAttrib('size', 20)->addFilters(array('StripTags', 'StringTrim'));
     $edition = new Zend_Form_Element_Text('edition');
     $edition->setLabel('Edition: ')->setRequired(false)->addValidator('Alnum', false, array('allowWhiteSpace' => true))->addFilters(array('StripTags', 'StringTrim'))->setAttrib('size', 20);
     $in_publication = new Zend_Form_Element_Text('in_publication');
     $in_publication->setLabel('In publication: ')->addFilters(array('StripTags', 'StringTrim'))->setRequired(false)->setAttrib('size', 50);
     $publication_type = new Zend_Form_Element_Select('publication_type');
     $publication_type->setLabel('Publication type: ')->setRequired(false)->addFilters(array('StripTags', 'StringTrim'))->setAttrib('class', 'input-xxlarge selectpicker show-menu-arrow')->addMultiOptions(array(null => 'Choose type', 'Available types' => $type_options))->addValidator('InArray', false, array(array_keys($type_options)));
     $ISBN = new Zend_Form_Element_Text('ISBN');
     $ISBN->setLabel('ISBN (allows people to look it up on Amazon): ')->setRequired(false)->addFilters(array('StripTags', 'StringTrim'))->setAttrib('size', 40)->addValidator('Isbn');
     $BIAB = new Zend_Form_Element_Text('biab');
     $BIAB->setLabel('British and Irish Archaeological Bibliography number:')->setRequired(false)->addFilters(array('StripTags', 'StringTrim'))->setAttrib('size', 40);
     $DOI = new Zend_Form_Element_Text('doi');
     $DOI->setLabel('DOI (Digital Object Identifier): ')->setRequired(false)->addFilters(array('StripTags', 'StringTrim'))->setAttrib('size', 40);
     //Submit button
     $submit = new Zend_Form_Element_Submit('submit');
     $this->addElements(array($title, $authors, $publisher, $publication_place, $publication_year, $vol_no, $edition, $in_publication, $editors, $publication_type, $ISBN, $BIAB, $DOI, $submit));
     $this->addDisplayGroup(array('title', 'authors', 'publisher', 'publication_place', 'publication_year', 'vol_no', 'edition', 'in_publication', 'editors', 'publication_type', 'ISBN', 'biab', 'doi'), 'details');
     $this->addDisplayGroup(array('submit'), 'buttons');
     $this->details->setLegend('Publication details: ');
     parent::init();
 }
示例#2
0
 /**
  *  loadPublicationTypes - get number values for word values of publication types
  */
 function loadPublicationTypes()
 {
     static $biblioTypes = array();
     static $publicationTypes = null;
     if ($biblioTypes) {
         // done
     } else {
         $includePath = dirname(__FILE__) . '/';
         require_once $includePath . 'PublicationTypes.php';
         $publicationTypes = new PublicationTypes();
         $biblioTypes = $publicationTypes->loadPublicationTypes();
     }
     return $biblioTypes;
 }