Ejemplo n.º 1
0
 function addEditRegForm($lRegFormID)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     global $gclsChapter, $glChapterID;
     if (!bTestForURLHack('editPeopleBizVol')) {
         return;
     }
     $this->load->helper('dl_util/verify_id');
     if ($lRegFormID . '' != '0') {
         verifyID($this, $lRegFormID, 'vol. registration ID');
     }
     $displayData = array();
     $displayData['js'] = '';
     $displayData['lRegFormID'] = $lRegFormID = (int) $lRegFormID;
     $displayData['bNew'] = $bNew = $lRegFormID <= 0;
     //-------------------------
     // models & helpers
     //-------------------------
     $this->load->model('vol_reg/mvol_reg', 'volReg');
     $this->load->model('img_docs/mimage_doc', 'cImgDoc');
     $this->load->model('admin/morganization', 'clsChapter');
     $this->load->model('admin/madmin_aco', 'clsACO');
     $this->load->model('groups/mgroups', 'groups');
     $this->load->helper('img_docs/image_doc');
     $this->load->helper('img_docs/link_img_docs');
     $this->load->helper('js/clear_set_check_on_check');
     $this->load->helper('dl_util/web_layout');
     $this->load->helper('dl_util/custom_forms');
     $this->load->helper('groups/groups');
     $displayData['js'] .= clearCheckOnUnCheck();
     $displayData['js'] .= setCheckOnCheck();
     $this->volReg->loadVolRegFormsViaRFID($lRegFormID);
     $rRec =& $this->volReg->regRecs[0];
     //-----------------------------
     // validation rules
     //-----------------------------
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('txtRegFormName', 'Name of the Registration Form', 'trim|required');
     $this->form_validation->set_rules('txtDescription', 'Description', 'trim');
     $this->form_validation->set_rules('txtBannerOrg', 'Banner Text: Organization Name', 'trim|required');
     $this->form_validation->set_rules('txtBannerTitle', 'Banner Text: Registration Form Title', 'trim|required');
     $this->form_validation->set_rules('txtIntro', 'Registration Form Introductory Text', 'trim|required');
     $this->form_validation->set_rules('txtSubmissionText', 'Text Shown After Submission', 'trim|required');
     $this->form_validation->set_rules('txtVolCoordinatorEmail', 'Volunteer Coordinator Email', 'trim|required|valid_email');
     $this->form_validation->set_rules('chkAddrShow', 'Show', 'trim');
     $this->form_validation->set_rules('chkPermContactInfo', 'Show', 'trim');
     $this->form_validation->set_rules('chkPermPassReset', 'Show', 'trim');
     $this->form_validation->set_rules('chkPermGiftHistory', 'Show', 'trim');
     $this->form_validation->set_rules('chkPermJobSkills', 'Show', 'trim');
     $this->form_validation->set_rules('chkPermViewVolLog', 'Show', 'trim');
     $this->form_validation->set_rules('chkPermAddVolHrs', 'Show', 'trim');
     $this->form_validation->set_rules('chkPermVolShiftSignup', 'Show', 'trim');
     $this->form_validation->set_rules('chkAddrShow', 'Show', 'trim');
     $this->form_validation->set_rules('chkAddrReq', 'Required', 'trim');
     $this->form_validation->set_rules('chkEmailShow', 'Show', 'callback_validateEmailPerms');
     $this->form_validation->set_rules('chkEmailReq', 'Required', 'trim');
     $this->form_validation->set_rules('chkPhoneShow', 'Show', 'trim');
     $this->form_validation->set_rules('chkPhoneReq', 'Required', 'trim');
     $this->form_validation->set_rules('chkCellShow', 'Show', 'trim');
     $this->form_validation->set_rules('chkCellReq', 'Required', 'trim');
     $this->form_validation->set_rules('chkBDayShow', 'Show', 'trim');
     $this->form_validation->set_rules('chkBDayReq', 'Required', 'trim');
     $this->form_validation->set_rules('rdoLogo', 'LogoID', 'trim');
     $this->form_validation->set_rules('ddlVolGroup', 'Volunteer Group ID', 'trim');
     $this->form_validation->set_rules('chkShowDisclaimer', 'Show Disclaimer', 'trim');
     $this->form_validation->set_rules('txtDisclaimerAck', 'Disclaimer Acknowledgement', 'callback_verifyDisclaimerAck');
     $this->form_validation->set_rules('txtDisclaimer', 'Disclaimer', 'callback_verifyDisclaimer');
     $this->form_validation->set_rules('ddlCSS', 'Stylesheet File', 'trim');
     /*
        load stylesheet files
     */
     $this->volReg->availableStyleSheets();
     $displayData['lNumStyleSheets'] = $this->volReg->lNumStyleSheets;
     $displayData['styleSheets'] = arrayCopy($this->volReg->styleSheets);
     /*
        job skills
     */
     $this->volReg->loadVolRegFormSkills($lRegFormID, true);
     $displayData['lNumSkills'] = $lNumSkills = $this->volReg->lNumSkillTot;
     if ($lNumSkills > 0) {
         $displayData['jobSkills'] = $jobSkills =& $this->volReg->skills;
         foreach ($jobSkills as $skill) {
             $lSkillID = $skill->lSkillID;
             $skill->chkShow = $chkShow = 'chkSkillShow_' . $lSkillID;
             $skill->bShow = false;
             $this->form_validation->set_rules($chkShow, 'Job Skill', '');
         }
     } else {
         $displayData['jobSkills'] = $jobSkills = null;
     }
     /*
        personalized volunteer tables
     */
     $this->load->model('personalization/muser_fields', 'clsUF');
     $this->load->model('admin/mpermissions', 'perms');
     $this->clsUF->enumTType = CENUM_CONTEXT_VOLUNTEER;
     $this->clsUF->loadTablesViaTType();
     $displayData['lNumTables'] = $lNumTables = $this->clsUF->lNumTables;
     if ($lNumTables > 0) {
         $displayData['userTables'] = $userTables =& $this->clsUF->userTables;
         foreach ($userTables as $utable) {
             $this->clsUF->lTableID = $lTableID = $utable->lKeyID;
             $this->clsUF->loadTableFields();
             // exclude log fields
             if ($this->clsUF->lNumFields > 0) {
                 foreach ($this->clsUF->fields as $field) {
                     if ($field->enumFieldType == CS_FT_LOG) {
                         --$this->clsUF->lNumFields;
                     } else {
                         $lFieldID = $field->pff_lKeyID;
                         $field->strFNShow = 'chkUFShow_' . $lTableID . '_' . $lFieldID;
                         $field->strFNRequired = 'chkUFReq_' . $lTableID . '_' . $lFieldID;
                         $this->volReg->bShowRequiredUFFields($lRegFormID, $lTableID, $lFieldID, $field->bShow, $field->bRequired);
                         $this->form_validation->set_rules($field->strFNShow, 'Personalized Field/Show', '');
                         $this->form_validation->set_rules($field->strFNRequired, 'Personalized Field/Required', '');
                     }
                 }
             }
             $utable->lNumFields = $lNumFields = $this->clsUF->lNumFields;
             if ($lNumFields > 0) {
                 $utable->fields = arrayCopy($this->clsUF->fields);
             }
             $utable->strTableLabel = $this->volReg->strPublicUFTable($lTableID, $lRegFormID, $utable->strUserTableName);
         }
     } else {
     }
     if ($this->form_validation->run() == FALSE) {
         $displayData['formData'] = new stdClass();
         $this->load->library('generic_form');
         $this->load->model('util/mlist_generic', 'clsList');
         $this->load->helper('dl_util/web_layout');
         $displayData['rRec'] = $rRec;
         // first time displayed, no user data entry errors
         if (validation_errors() == '') {
             if ($bNew) {
                 $displayData['formData']->txtRegFormName = '';
                 $displayData['formData']->txtDescription = '';
                 $displayData['formData']->txtBannerOrg = htmlspecialchars($gclsChapter->strChapterName);
                 $displayData['formData']->txtBannerTitle = 'Volunteer Registration';
                 $displayData['formData']->txtIntro = '';
                 $displayData['formData']->txtSubmissionText = '';
                 $displayData['formData']->txtVolCoordinatorEmail = '';
                 $displayData['formData']->bCaptchaRequired = true;
                 $displayData['formData']->bPermContactInfo = true;
                 $displayData['formData']->bPermPassReset = true;
                 $displayData['formData']->bPermGiftHistory = true;
                 $displayData['formData']->bPermJobSkills = true;
                 $displayData['formData']->bPermViewVolLog = true;
                 $displayData['formData']->bPermAddVolHrs = true;
                 $displayData['formData']->bVolShiftSignup = true;
                 $displayData['formData']->bShowAddr = true;
                 $displayData['formData']->bAddrRequired = true;
                 $displayData['formData']->bShowEmail = true;
                 $displayData['formData']->bEmailRequired = true;
                 $displayData['formData']->bShowPhone = true;
                 $displayData['formData']->bPhoneRequired = true;
                 $displayData['formData']->bShowCell = true;
                 $displayData['formData']->bCellRequired = true;
                 $displayData['formData']->bShowBDay = true;
                 $displayData['formData']->bBDayRequired = false;
                 $displayData['formData']->bShowDisclaimer = false;
                 $displayData['formData']->txtDisclaimer = '';
                 $displayData['formData']->txtDisclaimerAck = 'I agree to the terms stated below.';
                 $displayData['formData']->strDDLCSS = $this->volReg->strCSSDropDown('ddlCSS', 'default.css', false);
                 // organization logos
                 $this->cImgDoc->loadProfileImage(CENUM_CONTEXT_ORGANIZATION, $glChapterID);
                 if ($this->cImgDoc->lNumImageDocs == 0) {
                     $lLogoID = null;
                 } else {
                     $lLogoID = $this->cImgDoc->imageDocs[0]->lKeyID;
                 }
             } else {
                 $displayData['formData']->txtRegFormName = htmlspecialchars($rRec->strFormName);
                 $displayData['formData']->txtDescription = htmlspecialchars($rRec->strDescription);
                 $displayData['formData']->txtBannerOrg = htmlspecialchars($rRec->strBannerOrg);
                 $displayData['formData']->txtBannerTitle = htmlspecialchars($rRec->strBannerTitle);
                 $displayData['formData']->txtIntro = htmlspecialchars($rRec->strIntro);
                 $displayData['formData']->txtSubmissionText = htmlspecialchars($rRec->strSubmissionText);
                 $displayData['formData']->txtVolCoordinatorEmail = htmlspecialchars($rRec->strContactEmail);
                 $displayData['formData']->bCaptchaRequired = $rRec->bCaptchaRequired;
                 $displayData['formData']->bPermContactInfo = $rRec->bPermEditContact;
                 $displayData['formData']->bPermPassReset = $rRec->bPermPassReset;
                 $displayData['formData']->bPermGiftHistory = $rRec->bPermViewGiftHistory;
                 $displayData['formData']->bPermJobSkills = $rRec->bPermEditJobSkills;
                 $displayData['formData']->bPermViewVolLog = $rRec->bPermViewHrsHistory;
                 $displayData['formData']->bPermAddVolHrs = $rRec->bPermAddVolHours;
                 $displayData['formData']->bVolShiftSignup = $rRec->bVolShiftSignup;
                 $displayData['formData']->bShowAddr = $rRec->bShowAddr;
                 $displayData['formData']->bAddrRequired = $rRec->bAddrRequired;
                 $displayData['formData']->bShowEmail = $rRec->bShowEmail;
                 $displayData['formData']->bEmailRequired = $rRec->bEmailRequired;
                 $displayData['formData']->bShowPhone = $rRec->bShowPhone;
                 $displayData['formData']->bPhoneRequired = $rRec->bPhoneRequired;
                 $displayData['formData']->bShowCell = $rRec->bShowCell;
                 $displayData['formData']->bCellRequired = $rRec->bCellRequired;
                 $displayData['formData']->bShowBDay = $rRec->bShowBDay;
                 $displayData['formData']->bBDayRequired = $rRec->bBDateRequired;
                 $displayData['formData']->bShowDisclaimer = $rRec->bShowDisclaimer;
                 $displayData['formData']->txtDisclaimer = $rRec->strDisclaimer;
                 $displayData['formData']->txtDisclaimerAck = $rRec->strDisclaimerAck;
                 $displayData['formData']->strDDLCSS = $this->volReg->strCSSDropDown('ddlCSS', $rRec->strCSSFN, false);
                 $lLogoID = $rRec->lLogoImageID;
                 if ($lNumSkills > 0) {
                     foreach ($jobSkills as $skill) {
                         $skill->bShow = $skill->bOnForm;
                     }
                 }
             }
             // volunteer group ddl
             $displayData['formData']->ddlVolGroup = $this->groups->strDDLActiveGroupEntries('ddlVolGroup', CENUM_CONTEXT_VOLUNTEER, $rRec->lVolGroupID, true);
         } else {
             setOnFormError($displayData);
             $displayData['formData']->txtRegFormName = set_value('txtRegFormName');
             $displayData['formData']->txtDescription = set_value('txtDescription');
             $displayData['formData']->txtBannerOrg = set_value('txtBannerOrg');
             $displayData['formData']->txtBannerTitle = set_value('txtBannerTitle');
             $displayData['formData']->txtIntro = set_value('txtIntro');
             $displayData['formData']->txtSubmissionText = set_value('txtSubmissionText');
             $displayData['formData']->txtVolCoordinatorEmail = set_value('txtVolCoordinatorEmail');
             $displayData['formData']->bCaptchaRequired = set_value('chkCaptchaRequired') == 'true';
             $lLogoID = set_value('rdoLogo');
             $displayData['formData']->bPermContactInfo = set_value('chkPermContactInfo') == 'true';
             $displayData['formData']->bPermPassReset = set_value('chkPermPassReset') == 'true';
             $displayData['formData']->bPermGiftHistory = set_value('chkPermGiftHistory') == 'true';
             $displayData['formData']->bPermJobSkills = set_value('chkPermJobSkills') == 'true';
             $displayData['formData']->bPermViewVolLog = set_value('chkPermViewVolLog') == 'true';
             $displayData['formData']->bPermAddVolHrs = set_value('chkPermAddVolHrs') == 'true';
             $displayData['formData']->bVolShiftSignup = set_value('chkPermVolShiftSignup') == 'true';
             $displayData['formData']->bShowAddr = set_value('chkAddrShow') == 'true';
             $displayData['formData']->bAddrRequired = set_value('chkAddrReq') == 'true';
             $displayData['formData']->bShowEmail = set_value('chkEmailShow') == 'true';
             $displayData['formData']->bEmailRequired = set_value('chkEmailReq') == 'true';
             $displayData['formData']->bShowPhone = set_value('chkPhoneShow') == 'true';
             $displayData['formData']->bPhoneRequired = set_value('chkPhoneReq') == 'true';
             $displayData['formData']->bShowCell = set_value('chkCellShow') == 'true';
             $displayData['formData']->bCellRequired = set_value('chkCellReq') == 'true';
             $displayData['formData']->bShowBDay = set_value('chkBDayShow') == 'true';
             $displayData['formData']->bBDayRequired = set_value('chkBDayReq') == 'true';
             $displayData['formData']->bShowDisclaimer = set_value('chkShowDisclaimer') == 'true';
             $displayData['formData']->txtDisclaimer = set_value('txtDisclaimer');
             $displayData['formData']->txtDisclaimerAck = set_value('txtDisclaimerAck');
             // volunteer group ddl
             $displayData['formData']->ddlVolGroup = $this->groups->strDDLActiveGroupEntries('ddlVolGroup', CENUM_CONTEXT_VOLUNTEER, set_value('ddlVolGroup'), true);
             $displayData['formData']->strDDLCSS = $this->volReg->strCSSDropDown('ddlCSS', set_value('ddlCSS'), false);
             if ($lNumSkills > 0) {
                 foreach ($jobSkills as $skill) {
                     $skill->bShow = set_value($skill->chkShow) == 'true';
                 }
             }
             if ($lNumTables > 0) {
                 foreach ($userTables as $utable) {
                     if ($utable->lNumFields > 0) {
                         // exclude log fields
                         foreach ($utable->fields as $field) {
                             if ($field->enumFieldType != CS_FT_LOG) {
                                 $field->bShow = set_value($field->strFNShow) == 'true';
                                 $field->bRequired = set_value($field->strFNRequired) == 'true';
                             }
                         }
                     }
                 }
             }
         }
         // logo selection table
         $logoOpts = new stdClass();
         $logoOpts->enumEntryType = CENUM_IMGDOC_ENTRY_IMAGE;
         $logoOpts->enumContextType = CENUM_CONTEXT_ORGANIZATION;
         $logoOpts->lFID = $glChapterID;
         $logoOpts->lCellWidth = 90;
         $logoOpts->lCellHeight = 90;
         $logoOpts->lBorderWidth = 1;
         $logoOpts->lCellsPerRow = 4;
         $logoOpts->bShowCaption = false;
         $logoOpts->bShowDescription = false;
         $logoOpts->bShowDate = false;
         $logoOpts->bShowOriginalFN = false;
         $logoOpts->bAddRadioSelect = true;
         $logoOpts->strRadioFieldName = 'rdoLogo';
         $logoOpts->lMatchID = $lLogoID;
         $logoOpts->bShowNone = true;
         $logoOpts->strShowNoneLabel = 'No logo image';
         $displayData['formData']->rdoLogo = $this->cImgDoc->strImageDocTerseTable($logoOpts, $displayData['lNumLogoImages']);
         //--------------------------
         // breadcrumbs
         //--------------------------
         $displayData['pageTitle'] = anchor('main/menu/vols', 'Volunteers', 'class="breadcrumb"') . ' | ' . anchor('volunteers/registration/view', 'Registration', 'class="breadcrumb"') . ' | ' . ($bNew ? 'Add New' : 'Edit') . '  Form';
         $displayData['title'] = CS_PROGNAME . ' | Volunteers';
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $displayData['mainTemplate'] = 'vol_reg/reg_form_add_edit_view';
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         // internal fields
         $rRec->strFormName = trim($_POST['txtRegFormName']);
         $rRec->strContactEmail = trim($_POST['txtVolCoordinatorEmail']);
         $rRec->strDescription = trim($_POST['txtDescription']);
         $rRec->bCaptchaRequired = trim(@$_POST['chkCaptchaRequired']) == 'true';
         $rRec->lLogoImageID = (int) @$_POST['rdoLogo'];
         if ($rRec->lLogoImageID <= 0) {
             $rRec->lLogoImgID = null;
         }
         $rRec->lVolGroupID = (int) @$_POST['ddlVolGroup'];
         if ($rRec->lVolGroupID <= 0) {
             $rRec->lVolGroupID = null;
         }
         $rRec->strCSSFN = trim(@$_POST['ddlCSS']);
         // form registration permissions
         $rRec->bPermEditContact = trim(@$_POST['chkPermContactInfo']) == 'true';
         $rRec->bPermPassReset = trim(@$_POST['chkPermPassReset']) == 'true';
         $rRec->bPermViewGiftHistory = trim(@$_POST['chkPermGiftHistory']) == 'true';
         $rRec->bPermEditJobSkills = trim(@$_POST['chkPermJobSkills']) == 'true';
         $rRec->bPermViewHrsHistory = trim(@$_POST['chkPermViewVolLog']) == 'true';
         $rRec->bPermAddVolHours = trim(@$_POST['chkPermAddVolHrs']) == 'true';
         $rRec->bVolShiftSignup = trim(@$_POST['chkPermVolShiftSignup']) == 'true';
         // top banner
         $rRec->strBannerOrg = trim($_POST['txtBannerOrg']);
         $rRec->strBannerTitle = trim($_POST['txtBannerTitle']);
         $rRec->strIntro = trim($_POST['txtIntro']);
         $rRec->strSubmissionText = trim($_POST['txtSubmissionText']);
         // Standard Fields - show
         $rRec->bShowFName = true;
         $rRec->bShowLName = true;
         $rRec->bShowAddr = trim(@$_POST['chkAddrShow']) == 'true';
         $rRec->bShowEmail = trim(@$_POST['chkEmailShow']) == 'true';
         $rRec->bShowPhone = trim(@$_POST['chkPhoneShow']) == 'true';
         $rRec->bShowCell = trim(@$_POST['chkCellShow']) == 'true';
         $rRec->bShowBDay = trim(@$_POST['chkBDayShow']) == 'true';
         // Standard Fields - required
         $rRec->bFNameRequired = true;
         $rRec->bLNameRequired = true;
         $rRec->bAddrRequired = trim(@$_POST['chkAddrReq']) == 'true';
         $rRec->bEmailRequired = trim(@$_POST['chkEmailReq']) == 'true';
         $rRec->bPhoneRequired = trim(@$_POST['chkPhoneReq']) == 'true';
         $rRec->bCellRequired = trim(@$_POST['chkCellReq']) == 'true';
         $rRec->bBDateRequired = trim(@$_POST['chkBDayReq']) == 'true';
         // Disclaimer
         $rRec->bShowDisclaimer = $rRec->bDisclaimerAckRqrd = trim(@$_POST['chkShowDisclaimer']) == 'true';
         $rRec->strDisclaimer = trim($_POST['txtDisclaimer']);
         $rRec->strDisclaimerAck = trim($_POST['txtDisclaimerAck']);
         // Job Skills
         if ($lNumSkills > 0) {
             foreach ($jobSkills as $skill) {
                 $skill->bShow = trim(@$_POST[$skill->chkShow]) == 'true';
             }
         }
         // personalized tables
         if ($lNumTables > 0) {
             foreach ($userTables as $utable) {
                 if ($utable->lNumFields > 0) {
                     foreach ($utable->fields as $field) {
                         if ($field->enumFieldType != CS_FT_LOG) {
                             $field->bShow = trim(@$_POST[$field->strFNShow]) == 'true';
                             $field->bRequired = trim(@$_POST[$field->strFNRequired]) == 'true';
                         }
                     }
                 }
             }
         }
         if ($bNew) {
             $lRegFormID = addNewCustomForm(CENUM_CONTEXT_VOLUNTEER, $rRec);
         } else {
             updateCustomForm(CENUM_CONTEXT_VOLUNTEER, $lRegFormID, $rRec);
         }
         $this->volReg->updateJobSkillFields($lRegFormID, $lNumSkills, $jobSkills);
         updateFormPTableFields(CENUM_CONTEXT_VOLUNTEER, $lRegFormID, $lNumTables, $userTables);
         $this->session->set_flashdata('msg', 'The registration form was ' . ($bNew ? 'added' : 'updated') . '.');
         redirect('volunteers/registration/view');
     }
 }
 function addEditCForm($lCFID, $enumType)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     global $gclsChapter, $glChapterID;
     if (!bTestForURLHack('adminOnly')) {
         return false;
     }
     $this->load->helper('dl_util/verify_id');
     if ($lCFID . '' != '0') {
         verifyID($this, $lCFID, 'custom form ID');
     }
     $displayData = array();
     $displayData['js'] = '';
     $displayData['lCFID'] = $lCFID = (int) $lCFID;
     $displayData['bNew'] = $bNew = $lCFID <= 0;
     //-------------------------
     // models & helpers
     //-------------------------
     $this->load->model('custom_forms/mcustom_forms', 'cForm');
     $this->load->model('personalization/muser_fields', 'clsUF');
     $this->load->model('admin/mpermissions', 'perms');
     $this->load->model('groups/mgroups', 'groups');
     $this->load->helper('groups/groups');
     $this->load->helper('dl_util/context');
     $this->load->helper('img_docs/image_doc');
     $this->load->helper('img_docs/link_img_docs');
     $this->load->helper('js/clear_set_check_on_check');
     $this->load->helper('dl_util/custom_forms');
     $this->load->helper('personalization/validate_custom_verification');
     $displayData['enumType'] = $enumType;
     contextLabels($enumType, $displayData['contextLabel']);
     $displayData['js'] .= clearCheckOnUnCheck();
     $displayData['js'] .= setCheckOnCheck();
     $this->cForm->loadCustomFormsViaCFID($lCFID);
     $cForm =& $this->cForm->customForms[0];
     $this->load->helper('js/div_hide_show');
     $displayData['js'] .= showHideDiv();
     $this->load->helper('js/check_boxes_in_div');
     $displayData['js'] .= checkUncheckInDiv();
     //-----------------------------
     // validation rules
     //-----------------------------
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('txtCustomFormName', 'Name of the Custom Form', 'trim|required|callback_testDupForm[' . $enumType . ',' . $lCFID . ']');
     $this->form_validation->set_rules('txtDescription', 'Description', 'trim');
     $this->form_validation->set_rules('txtBannerTitle', 'Banner Text: Custom Form Title', 'trim|required');
     $this->form_validation->set_rules('txtIntro', 'Custom Form Introductory Text', 'trim|required');
     $this->form_validation->set_rules('txtSubmissionText', 'Text Shown After Submission', 'trim|required');
     $this->form_validation->set_rules('ddlParentGroup', 'Parent Group ID', 'trim');
     $this->form_validation->set_rules('txtVerificationModule', 'Validation Module', 'callback_verifyVerMod');
     $this->form_validation->set_rules('txtVModEntryPoint', 'Validation Mod Entry Point', 'callback_verifyVModEntry');
     /*
        personalized  tables
     */
     $this->clsUF->enumTType = $enumType;
     $this->clsUF->loadTablesViaTType();
     $displayData['lNumTables'] = $lNumTables = $this->clsUF->lNumTables;
     if ($lNumTables > 0) {
         $displayData['userTables'] = $userTables =& $this->clsUF->userTables;
         foreach ($userTables as $utable) {
             $this->clsUF->lTableID = $lTableID = $utable->lKeyID;
             $this->clsUF->loadTableFields();
             // exclude log fields
             if ($this->clsUF->lNumFields == 0) {
                 --$displayData['lNumTables'];
             } else {
                 foreach ($this->clsUF->fields as $field) {
                     if ($field->enumFieldType == CS_FT_LOG) {
                         --$this->clsUF->lNumFields;
                     } else {
                         $lFieldID = $field->pff_lKeyID;
                         $field->strFNShow = 'chkUFShow_' . $lTableID . '_' . $lFieldID;
                         $field->strFNRequired = 'chkUFReq_' . $lTableID . '_' . $lFieldID;
                         $this->cForm->bShowRequiredUFFields($lCFID, $lTableID, $lFieldID, $field->bShow, $field->bRequired);
                         $this->form_validation->set_rules($field->strFNShow, 'Personalized Field/Show', '');
                         $this->form_validation->set_rules($field->strFNRequired, 'Personalized Field/Required', '');
                     }
                 }
             }
             $utable->lNumFields = $lNumFields = $this->clsUF->lNumFields;
             if ($lNumFields > 0) {
                 $utable->fields = arrayCopy($this->clsUF->fields);
             }
             $utable->strTableLabel = $this->cForm->strPublicUFTable($lTableID, $lCFID, $utable->strUserTableName);
         }
     }
     if ($this->form_validation->run() == FALSE) {
         $displayData['formData'] = new stdClass();
         $this->load->library('generic_form');
         $this->load->model('util/mlist_generic', 'clsList');
         $this->load->helper('dl_util/web_layout');
         $displayData['cForm'] = $cForm;
         // first time displayed, no user data entry errors
         if (validation_errors() == '') {
             if ($bNew) {
                 $displayData['formData']->txtCustomFormName = '';
                 $displayData['formData']->txtDescription = '';
                 $displayData['formData']->txtBannerTitle = '';
                 $displayData['formData']->txtIntro = '';
                 $displayData['formData']->txtSubmissionText = '';
                 $displayData['formData']->txtVerificationModule = '';
                 $displayData['formData']->txtVModEntryPoint = '';
             } else {
                 $displayData['formData']->txtCustomFormName = htmlspecialchars($cForm->strFormName);
                 $displayData['formData']->txtDescription = htmlspecialchars($cForm->strDescription);
                 $displayData['formData']->txtBannerTitle = htmlspecialchars($cForm->strBannerTitle);
                 $displayData['formData']->txtIntro = htmlspecialchars($cForm->strIntro);
                 $displayData['formData']->txtSubmissionText = htmlspecialchars($cForm->strSubmissionText);
                 $displayData['formData']->txtVerificationModule = htmlspecialchars($cForm->strVerificationModule);
                 $displayData['formData']->txtVModEntryPoint = htmlspecialchars($cForm->strVModEntryPoint);
             }
             // client group ddl
             $displayData['formData']->ddlParentGroup = $this->groups->strDDLActiveGroupEntries('ddlParentGroup', $enumType, $cForm->lParentGroupID, true);
             $displayData['formData']->lNumParentGroups = $this->groups->lNumGroupList;
         } else {
             setOnFormError($displayData);
             $displayData['formData']->txtCustomFormName = set_value('txtCustomFormName');
             $displayData['formData']->txtDescription = set_value('txtDescription');
             $displayData['formData']->txtBannerTitle = set_value('txtBannerTitle');
             $displayData['formData']->txtIntro = set_value('txtIntro');
             $displayData['formData']->txtSubmissionText = set_value('txtSubmissionText');
             $displayData['formData']->txtVerificationModule = set_value('txtVerificationModule');
             $displayData['formData']->txtVModEntryPoint = set_value('txtVModEntryPoint');
             // parent group ddl
             $displayData['formData']->ddlParentGroup = $this->groups->strDDLActiveGroupEntries('ddlParentGroup', $enumType, set_value('ddlParentGroup'), true);
             $displayData['formData']->lNumParentGroups = $this->groups->lNumGroupList;
             if ($lNumTables > 0) {
                 foreach ($userTables as $utable) {
                     if ($utable->lNumFields > 0) {
                         // exclude log fields
                         foreach ($utable->fields as $field) {
                             if ($field->enumFieldType != CS_FT_LOG) {
                                 $field->bShow = set_value($field->strFNShow) == 'true';
                                 $field->bRequired = set_value($field->strFNRequired) == 'true';
                             }
                         }
                     }
                 }
             }
         }
         //--------------------------
         // breadcrumbs
         //--------------------------
         $displayData['pageTitle'] = $this->cForm->strCustomFormsPageTitleAddEdit($enumType, ($bNew ? 'Add New' : 'Edit') . '  Form');
         $displayData['title'] = CS_PROGNAME . ' | Custom Forms';
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $displayData['mainTemplate'] = 'custom_forms/custom_form_add_edit_view';
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         // internal fields
         $cForm->strFormName = trim($_POST['txtCustomFormName']);
         $cForm->strDescription = trim($_POST['txtDescription']);
         $cForm->strVerificationModule = trim($_POST['txtVerificationModule']);
         $cForm->strVModEntryPoint = trim($_POST['txtVModEntryPoint']);
         $cForm->lParentGroupID = (int) @$_POST['ddlParentGroup'];
         if ($cForm->lParentGroupID <= 0) {
             $cForm->lParentGroupID = null;
         }
         // top banner
         $cForm->strBannerTitle = trim($_POST['txtBannerTitle']);
         $cForm->strIntro = trim($_POST['txtIntro']);
         $cForm->strSubmissionText = trim($_POST['txtSubmissionText']);
         // personalized tables
         if ($lNumTables > 0) {
             foreach ($userTables as $utable) {
                 if ($utable->lNumFields > 0) {
                     foreach ($utable->fields as $field) {
                         if ($field->enumFieldType != CS_FT_LOG) {
                             $field->bShow = trim(@$_POST[$field->strFNShow]) == 'true';
                             $field->bRequired = trim(@$_POST[$field->strFNRequired]) == 'true';
                         }
                     }
                 }
             }
         }
         if ($bNew) {
             $lCFID = addNewCustomForm($enumType, $cForm);
         } else {
             updateCustomForm($enumType, $lCFID, $cForm);
         }
         updateFormPTableFields($enumType, $lCFID, $lNumTables, $userTables);
         $this->session->set_flashdata('msg', 'The custom form was ' . ($bNew ? 'added' : 'updated') . '.');
         redirect('custom_forms/custom_form_add_edit/view/' . $enumType);
     }
 }