SubscriptionForm::__construct PHP Method

__construct() public method

Constructor
public __construct ( $template, $subscriptionId = null, $userId = null )
$template string? Template to use for form presentation
$subscriptionId int The subscription ID for this subscription; null for new subscription
$userId int The user ID for this subscription; null for new subscription
    function __construct($template, $subscriptionId = null, $userId = null)
    {
        parent::__construct($template);
        $subscriptionId = isset($subscriptionId) ? (int) $subscriptionId : null;
        $this->userId = isset($userId) ? (int) $userId : null;
        $this->subscription = null;
        $this->subscriptionTypes = null;
        $subscriptionDao = DAORegistry::getDAO('SubscriptionDAO');
        $this->validStatus =& $subscriptionDao->getStatusOptions();
        $countryDao = DAORegistry::getDAO('CountryDAO');
        $this->validCountries =& $countryDao->getCountries();
        // User is provided and valid
        $this->addCheck(new FormValidator($this, 'userId', 'required', 'manager.subscriptions.form.userIdRequired'));
        $this->addCheck(new FormValidatorCustom($this, 'userId', 'required', 'manager.subscriptions.form.userIdValid', create_function('$userId', '$userDao = DAORegistry::getDAO(\'UserDAO\'); return $userDao->userExistsById($userId);')));
        // User name, country, and url valid
        $this->addCheck(new FormValidator($this, 'userFirstName', 'required', 'user.profile.form.firstNameRequired'));
        $this->addCheck(new FormValidator($this, 'userLastName', 'required', 'user.profile.form.lastNameRequired'));
        $this->addCheck(new FormValidatorUrl($this, 'userUrl', 'optional', 'user.profile.form.urlInvalid'));
        $this->addCheck(new FormValidatorInSet($this, 'userCountry', 'optional', 'manager.subscriptions.form.countryValid', array_keys($this->validCountries)));
        // Subscription status is provided and valid
        $this->addCheck(new FormValidator($this, 'status', 'required', 'manager.subscriptions.form.statusRequired'));
        $this->addCheck(new FormValidatorInSet($this, 'status', 'required', 'manager.subscriptions.form.statusValid', array_keys($this->validStatus)));
        // Subscription type is provided
        $this->addCheck(new FormValidator($this, 'typeId', 'required', 'manager.subscriptions.form.typeIdRequired'));
        // Notify email flag is valid value
        $this->addCheck(new FormValidatorInSet($this, 'notifyEmail', 'optional', 'manager.subscriptions.form.notifyEmailValid', array('1')));
        $this->addCheck(new FormValidatorPost($this));
        $this->addCheck(new FormValidatorCSRF($this));
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * Constructor
  * @param $subscriptionId int leave as default for new subscription
  * @param $userId int?
  */
 function __construct($subscriptionId = null, $userId = null)
 {
     parent::__construct('subscription/individualSubscriptionForm.tpl', $subscriptionId, $userId);
     $subscriptionId = isset($subscriptionId) ? (int) $subscriptionId : null;
     $userId = isset($userId) ? (int) $userId : null;
     $journal = Request::getJournal();
     $journalId = $journal->getId();
     if (isset($subscriptionId)) {
         $subscriptionDao = DAORegistry::getDAO('IndividualSubscriptionDAO');
         if ($subscriptionDao->subscriptionExists($subscriptionId)) {
             $this->subscription =& $subscriptionDao->getSubscription($subscriptionId);
         }
     }
     $subscriptionTypeDao = DAORegistry::getDAO('SubscriptionTypeDAO');
     $subscriptionTypes =& $subscriptionTypeDao->getSubscriptionTypesByInstitutional($journalId, false);
     $this->subscriptionTypes =& $subscriptionTypes->toArray();
     $subscriptionTypeCount = count($this->subscriptionTypes);
     if ($subscriptionTypeCount == 0) {
         $this->addError('typeId', __('manager.subscriptions.form.typeRequired'));
         $this->addErrorField('typeId');
     }
     // Ensure subscription type is valid
     $this->addCheck(new FormValidatorCustom($this, 'typeId', 'required', 'manager.subscriptions.form.typeIdValid', create_function('$typeId, $journalId', '$subscriptionTypeDao = DAORegistry::getDAO(\'SubscriptionTypeDAO\'); return ($subscriptionTypeDao->subscriptionTypeExistsByTypeId($typeId, $journalId) && $subscriptionTypeDao->getSubscriptionTypeInstitutional($typeId) == 0);'), array($journal->getId())));
     // Ensure that user does not already have a subscription for this journal
     if (!isset($subscriptionId)) {
         $this->addCheck(new FormValidatorCustom($this, 'userId', 'required', 'manager.subscriptions.form.subscriptionExists', array(DAORegistry::getDAO('IndividualSubscriptionDAO'), 'subscriptionExistsByUserForJournal'), array($journalId), true));
     } else {
         $this->addCheck(new FormValidatorCustom($this, 'userId', 'required', 'manager.subscriptions.form.subscriptionExists', create_function('$userId, $journalId, $subscriptionId', '$subscriptionDao = DAORegistry::getDAO(\'IndividualSubscriptionDAO\'); $checkId = $subscriptionDao->getSubscriptionIdByUser($userId, $journalId); return ($checkId == 0 || $checkId == $subscriptionId) ? true : false;'), array($journalId, $subscriptionId)));
     }
 }
All Usage Examples Of SubscriptionForm::__construct