• Main Page
  • Modules
  • Classes
  • Files
  • File List

controllers/grid/settings/contributor/form/ContributorForm.inc.php

00001 <?php
00002 
00016 import('lib.pkp.classes.form.Form');
00017 
00018 class ContributorForm extends Form {
00020    var $contributorId;
00021 
00025    function ContributorForm($contributorId = null) {
00026       $this->contributorId = $contributorId;
00027       parent::Form('controllers/grid/settings/contributor/form/contributorForm.tpl');
00028 
00029       // Validation checks for this form
00030       $this->addCheck(new FormValidator($this, 'institution', 'required', 'manager.setup.form.contributors.institutionRequired'));
00031       $this->addCheck(new FormValidatorUrl($this, 'url', 'required', 'manager.emails.form.contributors.urlRequired'));
00032       $this->addCheck(new FormValidatorPost($this));
00033    }
00034 
00040    function initData($args, &$request) {
00041       $press =& $request->getPress();
00042 
00043       $contributors = $press->getSetting('contributors');
00044       if ( $this->contributorId && isset($contributors[$this->contributorId]) ) {
00045          $this->_data = array(
00046             'contributorId' => $this->contributorId,
00047             'institution' => $contributors[$this->contributorId]['institution'],
00048             'url' => $contributors[$this->contributorId]['url']
00049             );
00050       } else {
00051          $this->_data = array(
00052             'institution' => '',
00053             'url' => ''
00054          );
00055       }
00056 
00057       // grid related data
00058       $this->_data['gridId'] = $args['gridId'];
00059       $this->_data['rowId'] = isset($args['rowId']) ? $args['rowId'] : null;
00060    }
00061 
00067    function fetch(&$request) {
00068       AppLocale::requireComponents(LOCALE_COMPONENT_OMP_MANAGER);
00069       return parent::fetch($request);
00070    }
00071 
00076    function readInputData() {
00077       $this->readUserVars(array('contributorId', 'institution', 'url'));
00078       $this->readUserVars(array('gridId', 'rowId'));
00079    }
00080 
00085    function execute($request) {
00086       $press =& $request->getPress();
00087       $contributors = $press->getSetting('contributors');
00088       if (empty($contributors)) {
00089          $contributors = array();
00090          $this->contributorId = 1;
00091       } else {
00092          //FIXME: a bit of kludge to get unique contributor id's
00093          $this->contributorId = ($this->contributorId?$this->contributorId:(max(array_keys($contributors)) + 1));
00094       }
00095 
00096       $contributors[$this->contributorId] = array('institution' => $this->getData('institution'),
00097                         'url' => $this->getData('url'));
00098       $press->updateSetting('contributors', $contributors, 'object', false);
00099       return true;
00100    }
00101 }
00102 
00103 ?>

Generated on Mon Sep 17 2012 13:58:56 for Open Monograph Press by  doxygen 1.7.1