public function cloneTable($lTableID) { //------------------------------------------------------------------------- // //------------------------------------------------------------------------- global $glUserID; if (!bTestForURLHack('adminOnly')) { return; } $this->load->helper('dl_util/verify_id'); if (!vid_bUserTableIDExists($this, $lTableID, $enumType)) { vid_bTestFail($this, false, 'user table ID', $lTableID); } //------------------------- // models & helpers //------------------------- $this->load->model('personalization/muser_fields', 'clsUF'); $this->load->model('personalization/muser_fields_create', 'clsUFC'); $this->load->model('personalization/muser_clone', 'cUFClone'); // most of the work is complete in the model muser_clone; // just need the gui to get the new table name, then create the new // table (probably can use the add/edit user table routine) echoT('Work in progress<br>'); }
function removeRecord($lTableID, $lFID, $lRecID) { //------------------------------------------------------------------------- // //------------------------------------------------------------------------- $this->load->helper('dl_util/verify_id'); if (!vid_bUserTableIDExists($this, $lTableID, $enumTabType)) { vid_bTestFail($this, false, 'user table ID', $lTableID); } verifyIDsViaType($this, $enumTabType, $lFID, false); $lEnrollID = 0; //------------------------- // models & helpers //------------------------- $this->load->model('personalization/muser_fields', 'clsUF'); $this->load->model('personalization/muser_fields_display', 'clsUFD'); $this->load->model('admin/mpermissions', 'perms'); $this->load->helper('clients/client_program'); $this->clsUFD->lTableID = $lTableID; $this->clsUFD->loadTableViaTableID(); $utable =& $this->clsUFD->userTables[0]; $enumTType = $utable->enumTType; $bCProg = bTypeIsClientProg($enumTType); $bEnrollment = $enumTType == CENUM_CONTEXT_CPROGENROLL; // if deleting an enrollment record, we must also delete // any associated attendance records if ($bCProg) { $this->load->model('client_features/mcprograms', 'cprograms'); if ($bEnrollment) { $this->cprograms->loadClientProgramsViaETableID($lTableID); $cprog =& $this->cprograms->cprogs[0]; $strATable = $cprog->strAttendanceTable; $strATableFNPre = $cprog->strATableFNPrefix; $this->cprograms->deleteATableRecsViaEnrollRecID($strATable, $strATableFNPre, $lRecID); } else { // load the enrollment record to provide the proper return path $this->cprograms->loadClientProgramsViaATableID($lTableID); $cprog =& $this->cprograms->cprogs[0]; $this->cprograms->loadBaseARecViaARecID($cprog, $lRecID, $lNumARecs, $arecs); $lEnrollID = $arecs[0]->lEnrollID; } $strTableLabel = 'An ' . ($bEnrollment ? 'enrollment' : 'attendance') . ' record was removed from client program <b>' . htmlspecialchars($cprog->strProgramName) . '</b>.'; } else { $strTableLabel = 'The selected record was removed from ' . 'table <b>' . htmlspecialchars($utable->strUserTableName) . '</b>'; } $this->clsUFD->removeMRRecord($lRecID); $this->session->set_flashdata('msg', $strTableLabel); redirect('admin/uf_multirecord_view/viewMRViaFID/' . $lTableID . '/' . $lFID . '/' . $lEnrollID); }
function userAddEdit($lTableID, $lForeignID, $lEditFieldID) { //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- global $gbDateFormatUS; $this->load->helper('dl_util/verify_id'); if (!vid_bUserTableIDExists($this, $lTableID, $enumTabType)) { vid_bTestFail($this, false, 'user table ID', $lTableID); } verifyIDsViaType($this, $enumTabType, $lForeignID, false); if (!is_numeric($lEditFieldID)) { vid_bTestFail($this, false, 'user field ID', $lEditFieldID); } $displayData = array(); $displayData['lTableID'] = $lTableID = (int) $lTableID; $displayData['lForeignID'] = $lForeignID = (int) $lForeignID; $displayData['lEditFieldID'] = $lEditFieldID = (int) $lEditFieldID; //----------------------- // load table info //----------------------- $bEditMode = $lEditFieldID > 0; $this->load->model('personalization/muser_fields', 'clsUF'); $this->load->model('personalization/muser_fields_display', 'clsUFD'); $this->load->model('admin/mpermissions', 'perms'); $this->load->library('util/dl_date_time', '', 'clsDateTime'); $params = array('enumStyle' => 'enpRptC'); $this->load->library('generic_rpt', $params); $this->load->model('admin/madmin_aco'); $this->load->helper('dl_util/time_date'); $this->load->helper('dl_util/context'); $this->clsUFD->lTableID = $lTableID; $this->clsUFD->lForeignID = $lForeignID; $this->clsUFD->loadTableViaTableID(); $enumTType = $this->clsUFD->userTables[0]->enumTType; loadSupportModels($enumTType, $lForeignID); // validation rules $this->form_validation->set_error_delimiters('<div class="formError">', '</div>'); $this->form_validation->set_rules('txtxxxx'); // dummy if ($bEditMode) { $this->clsUFD->loadSingleField($lEditFieldID); $enumFType = $this->clsUFD->fields[0]->enumFieldType; $strFName = 'var' . $lEditFieldID; if ($enumFType == CS_FT_DATE) { $this->form_validation->set_rules($strFName, 'Date Field', 'trim|callback_ufFieldVerifyDateValid'); } if ($enumFType == CS_FT_INTEGER) { $this->form_validation->set_rules($strFName, 'Number Field', 'trim|required|callback_stripCommas|integer'); } if ($enumFType == CS_FT_CURRENCY) { $this->form_validation->set_rules($strFName, 'Currency Field', 'trim|required|callback_stripCommas|numeric'); } } if ($this->form_validation->run() == FALSE) { //------------------------------------------------------ // set form validation based on field type being edited //------------------------------------------------------ if ($bEditMode) { $this->load->helper('dl_util/web_layout'); } $displayData['title'] = CS_PROGNAME . ' | Personalized Fields'; $displayData['pageTitle'] = $this->clsUFD->strBreadcrumbsTableDisplay(0); $displayData['nav'] = $this->mnav_brain_jar->navData(); $displayData['strTableDisplay'] = $this->clsUFD->strEditUserTableEntries($lEditFieldID); $displayData['strHTMLSummary'] = $this->clsUFD->strHTMLSummary; $displayData['mainTemplate'] = 'admin/user_table_add_edit_view'; $this->load->vars($displayData); $this->load->view('template'); } else { $this->clsUFD->loadSingleField($lEditFieldID); $enumType = $this->clsUFD->fields[0]->enumFieldType; $strFieldID = 'var' . $lEditFieldID; switch ($enumType) { case CS_FT_CHECKBOX: $varUserVal = @$_POST[$strFieldID] == 'TRUE'; break; case CS_FT_DATE: $varUserVal = trim($_POST[$strFieldID]); if ($varUserVal == '') { $varUserVal = ' null '; } else { MDY_ViaUserForm($varUserVal, $lMon, $lDay, $lYear, $gbDateFormatUS); $varUserVal = ' "' . strMoDaYr2MySQLDate($lMon, $lDay, $lYear) . '" '; } break; case CS_FT_DATETIME: break; case CS_FT_TEXTLONG: case CS_FT_TEXT255: case CS_FT_TEXT80: case CS_FT_TEXT20: $varUserVal = trim($_POST[$strFieldID]); break; case CS_FT_INTEGER: $varUserVal = (int) $_POST[$strFieldID]; break; case CS_FT_CURRENCY: $varUserVal = number_format($_POST[$strFieldID], 2, '.', ''); break; case CS_FT_DDL: $varUserVal = (int) $_POST[$strFieldID]; break; default: screamForHelp($enumType . ': invalid field type<br>error on line ' . __LINE__ . ',<br>file ' . __FILE__ . ',<br>function ' . __FUNCTION__); break; } $this->clsUFD->updateUserField($varUserVal); redirect('admin/uf_user_edit/userAddEdit/' . $lTableID . '/' . $lForeignID . '/0'); } }
function addEditTable($enumTType, $lTableID = 0) { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- if (!bTestForURLHack('adminOnly')) { return; } $displayData = array(); $displayData['enumTType'] = $enumTType = htmlspecialchars($enumTType); if ($lTableID . '' != '0') { $this->load->helper('dl_util/verify_id'); if (!vid_bUserTableIDExists($this, $lTableID, $enumTType)) { vid_bTestFail($this, false, 'user table ID', $lTableID); } } $displayData['lTableID'] = $lTableID = (int) $lTableID; /*------------------------------------------------ models/libraries/helpers ------------------------------------------------*/ $this->load->model('personalization/muser_fields', 'clsUF'); $this->load->model('admin/mpermissions', 'perms'); $this->load->helper('dl_util/web_layout'); $this->load->helper('personalization/validate_custom_verification'); // validation rules $this->form_validation->set_error_delimiters('<div class="formError">', '</div>'); $this->form_validation->set_rules('txtTableName', 'Table Name', 'trim|callback_userTableVerifyRequired|callback_userTableVerifyUnique[' . $enumTType . ',' . $lTableID . ']'); $this->form_validation->set_rules('txtVerificationModule', 'Validation File', 'callback_verifyVerMod'); $this->form_validation->set_rules('txtVModEntryPoint', 'Validation Entry Point', 'callback_verifyVModEntry'); $this->form_validation->set_rules('txtDescription'); $this->form_validation->set_rules('chkMultiEntry'); $this->form_validation->set_rules('chkReadOnly'); $this->form_validation->set_rules('chkHide'); $this->form_validation->set_rules('chkCollapsible'); $this->form_validation->set_rules('chkAlertNoDataEntry'); $this->form_validation->set_rules('txtAlert'); $displayData['bNew'] = $bNew = $lTableID <= 0; $this->clsUF->setTType($enumTType); if ($bNew) { $this->clsUF->lTableID = 0; } else { $this->clsUF->lTableID = $lTableID; } $this->clsUF->loadTableViaTableID(false); $displayData['userTables'] = $uTable =& $this->clsUF->userTables[0]; $displayData['strTTypeLabel'] = $strLabel = $this->clsUF->strTTypeLabel; if ($this->form_validation->run() == FALSE) { $displayData['title'] = CS_PROGNAME . ' | Personalization'; $displayData['pageTitle'] = anchor('main/menu/admin', 'Admin', 'class="breadcrumb"') . ' | ' . anchor('admin/personalization/overview/' . $enumTType, 'Personalization', 'class="breadcrumb"') . ' | ' . ($bNew ? 'Add New ' : 'Edit ') . $strLabel . ' Table'; $displayData['nav'] = $this->mnav_brain_jar->navData(); $this->load->library('generic_form'); $displayData['bCurrentlyHidden'] = $uTable->bHidden; if (validation_errors() == '') { $displayData['strTableName'] = htmlspecialchars($uTable->strUserTableName); $displayData['bHidden'] = $uTable->bHidden; $displayData['bCollapsible'] = $uTable->bCollapsibleHeadings; $displayData['bMultiEntry'] = $uTable->bMultiEntry; $displayData['bReadOnly'] = $uTable->bReadOnly; $displayData['strDescription'] = $uTable->strDescription; $displayData['bAlertNoDataEntry'] = $uTable->bAlertIfNoEntry; $displayData['strAlert'] = $uTable->strAlertMsg; $displayData['txtVerificationModule'] = htmlspecialchars($uTable->strVerificationModule); $displayData['txtVModEntryPoint'] = htmlspecialchars($uTable->strVModEntryPoint); } else { setOnFormError($displayData); $displayData['strTableName'] = set_value('txtTableName'); $displayData['bHidden'] = set_value('chkHide') == 'true'; $displayData['bCollapsible'] = set_value('chkCollapsible') == 'true'; if ($bNew) { $displayData['bMultiEntry'] = set_value('chkMultiEntry') == 'true'; } else { $displayData['bMultiEntry'] = $uTable->bMultiEntry; } $displayData['bReadOnly'] = set_value('chkReadOnly') == 'true'; $displayData['strDescription'] = set_value('txtDescription'); $displayData['bAlertNoDataEntry'] = set_value('chkAlertNoDataEntry') == 'true'; $displayData['strAlert'] = set_value('txtAlert'); $displayData['txtVerificationModule'] = set_value('txtVerificationModule'); $displayData['txtVModEntryPoint'] = set_value('txtVModEntryPoint'); } $displayData['mainTemplate'] = 'personalization/uf_add_edit_table_view'; $this->load->vars($displayData); $this->load->view('template'); } else { $this->load->model('personalization/muser_fields_create', 'clsUFC'); $this->clsUFC->enumTType = $enumTType; $this->clsUFC->strUserTableName = xss_clean(trim($_POST['txtTableName'])); $this->clsUFC->strVerificationModule = xss_clean(trim($_POST['txtVerificationModule'])); $this->clsUFC->strVModEntryPoint = xss_clean(trim($_POST['txtVModEntryPoint'])); if ($bNew) { $this->clsUFC->bMultiEntry = trim(@$_POST['chkMultiEntry']) == 'true'; } else { $this->clsUFC->bMultiEntry = $uTable->bMultiEntry; } $this->clsUFC->bReadOnly = trim(@$_POST['chkReadOnly']) == 'true'; $this->clsUFC->bCollapsibleHeadings = trim(@$_POST['chkCollapsible']) == 'true'; $this->clsUFC->bCollapseDefaultHide = true; // should this be a user option? $this->clsUFC->bHidden = trim(@$_POST['chkHide']) == 'true'; $this->clsUFC->strTableDescription = xss_clean(trim($_POST['txtDescription'])); $this->clsUFC->bAlertNoDataEntry = trim(@$_POST['chkAlertNoDataEntry']) == 'true'; $this->clsUFC->strAlert = trim($_POST['txtAlert']); $strMultiLabel = $this->clsUFC->bMultiEntry ? ' multiple-entry ' : ' single-entry '; $bRetired = @$_POST['chkRetire'] == 'YES'; if ($bRetired) { $this->clsUFC->lTableID = $lTableID; $this->clsUFC->loadTableViaTableID(); $this->clsUFC->removeUFTable($lTableID); $this->session->set_flashdata('msg', 'The ' . $strLabel . $strMultiLabel . ' table <b>' . htmlspecialchars($this->clsUFC->strUserTableName) . '</b> was removed.'); redirect('admin/personalization/overview'); } else { if ($bNew) { $lTableID = $this->clsUFC->lAddNewUFTable(); $this->session->set_flashdata('msg', 'The new ' . $strLabel . $strMultiLabel . ' table was added'); redirect('admin/uf_fields/view/' . $lTableID); } else { $this->clsUFC->lTableID = $lTableID; $this->clsUFC->updateUFTable(); $this->session->set_flashdata('msg', 'The ' . $strLabel . $strMultiLabel . ' table was updated'); redirect('admin/personalization/overview/' . $enumTType); } } } }