/**
  * Static Helper Method to Create using QueryString arguments
  *
  * @param mixed $objParentObject QForm or QPanel which will be using this SignupFormMetaControl
  * @param QMetaControlCreateType $intCreateType rules governing SignupForm object creation - defaults to CreateOrEdit
  * @return SignupFormMetaControl
  */
 public static function CreateFromQueryString($objParentObject, $intCreateType = QMetaControlCreateType::CreateOrEdit)
 {
     $intId = QApplication::QueryString('intId');
     return SignupFormMetaControl::Create($objParentObject, $intId, $intCreateType);
 }
Esempio n. 2
0
File: form.php Progetto: alcf/chms
 protected function Form_Create()
 {
     $this->objSignupForm = SignupForm::Load(QApplication::PathInfo(0));
     if (!$this->objSignupForm) {
         QApplication::Redirect('/events/');
     }
     $this->mctSignupForm = SignupFormMetaControl::Create($this, $this->objSignupForm->Id);
     if (!$this->objSignupForm->IsLoginCanView(QApplication::$Login)) {
         QApplication::Redirect('/events/');
     }
     $this->strPageTitle .= $this->objSignupForm->Name;
     $this->dtgQuestions = new FormQuestionDataGrid($this);
     $this->dtgQuestions->AddColumn(new QDataGridColumn('Reorder', '<?= $_FORM->RenderReorderQuestion($_ITEM); ?>', 'HtmlEntities=false', 'Width=60px'));
     $this->dtgQuestions->MetaAddTypeColumn('FormQuestionTypeId', 'FormQuestionType', 'Name=Question Type', 'Width=140px');
     $this->dtgQuestions->MetaAddColumn('ShortDescription', 'Html=<?= $_FORM->RenderShortDescription($_ITEM); ?>', 'Width=170px', 'HtmlEntities=false');
     $this->dtgQuestions->MetaAddColumn('Question', 'Width=400px');
     $this->dtgQuestions->MetaAddColumn('RequiredFlag', 'Width=60px', 'Name=Required?', 'Html=<?= ($_ITEM->RequiredFlag ? "Yes" : null) ?>');
     $this->dtgQuestions->MetaAddColumn('InternalFlag', 'Width=60px', 'Name=Internal Only', 'Html=<?= ($_ITEM->InternalFlag ? "Yes" : null) ?>');
     $this->dtgQuestions->SetDataBinder('dtgQuestions_Bind');
     $this->dtgProductsArray = array();
     foreach (FormProductType::$NameArray as $intFormProductTypeId => $strName) {
         if (FormProduct::CountBySignupFormIdFormProductTypeId($this->objSignupForm->Id, $intFormProductTypeId)) {
             $dtgProducts = new FormProductDataGrid($this);
             $dtgProducts->Name = $intFormProductTypeId;
             $dtgProducts->SetDataBinder('dtgProducts_Bind');
             $dtgProducts->AddColumn(new QDataGridColumn('Reorder', '<?= $_FORM->RenderReorderProduct($_ITEM, $_CONTROL); ?>', 'HtmlEntities=false', 'Width=60px'));
             $dtgProducts->MetaAddColumn('Name', 'Html=<?= $_FORM->RenderName($_ITEM); ?>', 'Width=250px', 'HtmlEntities=false');
             $dtgProducts->MetaAddColumn('DateStart', 'Name=Date Available', 'Html=<?= $_ITEM->DateStartHtml; ?>', 'HtmlEntities=false', 'Width=100px');
             $dtgProducts->MetaAddColumn('DateEnd', 'Name=Date Unavail.', 'Html=<?= $_ITEM->DateEndHtml; ?>', 'HtmlEntities=false', 'Width=100px');
             $dtgProducts->MetaAddColumn('MinimumQuantity', 'Name=Min. Qty.', 'Width=70px');
             $dtgProducts->MetaAddColumn('MaximumQuantity', 'Name=Max. Qty.', 'Width=70px');
             $dtgProducts->MetaAddTypeColumn('FormPaymentTypeId', 'FormPaymentType', 'Name=Pay Type', 'Width=70px');
             $dtgProducts->MetaAddColumn('Cost', 'Html=<?= $_FORM->RenderAmount($_ITEM->Cost, false); ?>', 'Width=70px');
             $dtgProducts->MetaAddColumn('Deposit', 'Html=<?= $_FORM->RenderAmount($_ITEM->Deposit, false); ?>', 'Width=70px');
             $this->dtgProductsArray[] = $dtgProducts;
         }
     }
     if ($this->objSignupForm->Ministry->IsLoginCanAdminMinistry(QApplication::$Login)) {
         $this->lstCreateNew = new QListBox($this);
         $this->lstCreateNew->AddItem('- Create New Question or Product -', null);
         foreach (FormQuestionType::$NameArray as $intId => $strName) {
             $this->lstCreateNew->AddItem($strName, $intId, false, 'Question Types');
         }
         foreach (FormProductType::$NameArray as $intId => $strName) {
             $this->lstCreateNew->AddItem($strName, $intId * -1, false, 'Product Types');
         }
         $this->lstCreateNew->AddAction(new QChangeEvent(), new QAjaxAction('lstCreateNew_Change'));
     }
     // Setup "About Event" label controls
     $this->SetupLabels();
     switch ($this->objSignupForm->SignupFormTypeId) {
         case SignupFormType::Event:
             $this->SetupLabelsForEvent();
             break;
         case SignupFormType::Course:
             $this->SetupLabelsForCourse();
             break;
     }
     // Add email automatically if "Allow No Login" is selected
     // and if email is not already there.
     $bHasEmail = false;
     $objQuestionArray = FormQuestion::LoadArrayBySignupFormId($this->objSignupForm->Id);
     foreach ($objQuestionArray as $objQuestionItem) {
         if ($objQuestionItem->FormQuestionTypeId == 7) {
             $bHasEmail = true;
             break;
         }
     }
     if ($this->objSignupForm->LoginNotRequiredFlag && !$bHasEmail) {
         $objQuestion = new FormQuestion();
         $objQuestion->SignupForm = $this->objSignupForm;
         $objQuestion->FormQuestionTypeId = 7;
         // email
         $objQuestion->OrderNumber = 100000;
         $objQuestion->ShortDescription = 'Email Address';
         $objQuestion->Question = 'Email Address';
         $objQuestion->RequiredFlag = true;
         $objQuestion->ViewFlag = true;
         $objQuestion->Save();
     }
     $this->pxyMoveDownQuestion = new QControlProxy($this);
     $this->pxyMoveDownQuestion->AddAction(new QClickEvent(), new QAjaxAction('pxyMoveDownQuestion_Click'));
     $this->pxyMoveDownQuestion->AddAction(new QClickEvent(), new QTerminateAction());
     $this->pxyMoveUpQuestion = new QControlProxy($this);
     $this->pxyMoveUpQuestion->AddAction(new QClickEvent(), new QAjaxAction('pxyMoveUpQuestion_Click'));
     $this->pxyMoveUpQuestion->AddAction(new QClickEvent(), new QTerminateAction());
     $this->pxyMoveDownProduct = new QControlProxy($this);
     $this->pxyMoveDownProduct->AddAction(new QClickEvent(), new QAjaxAction('pxyMoveDownProduct_Click'));
     $this->pxyMoveDownProduct->AddAction(new QClickEvent(), new QTerminateAction());
     $this->pxyMoveUpProduct = new QControlProxy($this);
     $this->pxyMoveUpProduct->AddAction(new QClickEvent(), new QAjaxAction('pxyMoveUpProduct_Click'));
     $this->pxyMoveUpProduct->AddAction(new QClickEvent(), new QTerminateAction());
 }