QueryForm::__construct PHP Method

__construct() public method

Constructor.
public __construct ( $request, $assocType, $assocId, $stageId, $queryId = null )
$request Request
$assocType int ASSOC_TYPE_...
$assocId int Assoc ID (per assocType)
$stageId int WORKFLOW_STAGE_...
$queryId int Optional query ID to edit. If none provided, a (potentially temporary) query will be created.
    function __construct($request, $assocType, $assocId, $stageId, $queryId = null)
    {
        parent::__construct('controllers/grid/queries/form/queryForm.tpl');
        $this->setStageId($stageId);
        $queryDao = DAORegistry::getDAO('QueryDAO');
        if (!$queryId) {
            $this->_isNew = true;
            // Create a query
            $query = $queryDao->newDataObject();
            $query->setAssocType($assocType);
            $query->setAssocId($assocId);
            $query->setStageId($stageId);
            $query->setSequence(REALLY_BIG_NUMBER);
            $queryDao->insertObject($query);
            $queryDao->resequence($assocType, $assocId);
            // Add the current user as a participant by default.
            $queryDao->insertParticipant($query->getId(), $request->getUser()->getId());
            // Create a head note
            $noteDao = DAORegistry::getDAO('NoteDAO');
            $headNote = $noteDao->newDataObject();
            $headNote->setUserId($request->getUser()->getId());
            $headNote->setAssocType(ASSOC_TYPE_QUERY);
            $headNote->setAssocId($query->getId());
            $headNote->setDateCreated(Core::getCurrentDate());
            $noteDao->insertObject($headNote);
        } else {
            $query = $queryDao->getById($queryId, $assocType, $assocId);
            assert(isset($query));
            // New queries will not have a head note.
            $this->_isNew = !$query->getHeadNote();
        }
        $this->setQuery($query);
        // Validation checks for this form
        $this->addCheck(new FormValidatorListbuilder($this, 'users', 'stageParticipants.notify.warning'));
        $this->addCheck(new FormValidator($this, 'subject', 'required', 'submission.queries.subjectRequired'));
        $this->addCheck(new FormValidator($this, 'comment', 'required', 'submission.queries.messageRequired'));
        $this->addCheck(new FormValidatorPost($this));
        $this->addCheck(new FormValidatorCSRF($this));
    }