function verifyID($lChapterID, $varID, $enumVerifyType, $bRedirectOnFail = true) { /*--------------------------------------------------------------------- another way... Note that get_instance is a CI function, defined in system/core/CodeIgniter.php from http://stackoverflow.com/questions/4740430/explain-ci-get-instance $CI =& get_instance(); // use get_instance, it is less prone to failure in this context. ---------------------------------------------------------------------*/ $CI =& get_instance(); $bValid = true; switch ($enumVerifyType) { // case 'account ID': // $bValid = vid_bGenericRecExists($lChapterID, $varID, 'gifts_accounts', 'ga_lKeyID', 'ga_lChapterID', 'ga_bRetired'); // break; case 'attributed to ID': $bValid = vid_bAttributedToIDExists($lChapterID, $varID); break; case 'patient ID': $bValid = vid_bGenericRecExists($lChapterID, $varID, 'patient_records', 'cr_lKeyID', 'cr_lChapterID', 'cr_bRetired'); break; case 'patientContact ID': $bValid = vid_bGenericRecExists(null, $varID, 'patient_contacts', 'cc_lKeyID', null, 'cc_bRetired'); break; case 'patientVisit ID': $bValid = vid_bGenericRecExists($lChapterID, $varID, 'patient_visit', 'pv_lKeyID', 'pv_lChapterID', 'pv_bRetired'); break; case 'vpAssoc ID': $bValid = vid_bVPAssocRecExists($lChapterID, $varID); break; case 'image/document ID': $bValid = vid_bGenericRecExists($lChapterID, $varID, 'docs_images', 'di_lKeyID', 'di_lChapterID', 'di_bRetired'); break; case 'organization ID': $bValid = vid_bGenericRecExists(null, $varID, 'admin_chapters', 'ch_lKeyID', null, 'ch_bRetired'); break; case 'people ID': $bValid = vid_bPBRecExists($lChapterID, $varID, false, false); break; case 'user ID': $bValid = vid_bGenericRecExists($lChapterID, $varID, 'admin_users', 'us_lKeyID', 'us_lChapterID', null); break; case 'volunteer ID': $bValid = vid_bVolRecExists($lChapterID, $varID, 'vol_lChapterID'); break; case 'vol training ID': $bValid = vid_bGenericRecExists($lChapterID, $varID, 'vol_training', 'vt_lKeyID', 'vt_lChapterID', 'vt_bRetired'); break; default: screamForHelp($enumVerifyType . ': invalid verify type<br>error on line <b> -- ' . __LINE__ . ' --</b>,<br>file ' . __FILE__ . ',<br>function ' . __FUNCTION__); break; } if ($bRedirectOnFail) { vid_bTestFail($bValid, $enumVerifyType, $varID); } return $bValid; }
public function moveSort($lReportID, $lFieldID, $enumMove) { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- $this->load->helper('dl_util/verify_id'); verifyID($this, $lReportID, 'custom report ID'); $lReportID = (int) $lReportID; $lFieldID = (int) $lFieldID; //------------------------------------------------ // libraries and utilities //------------------------------------------------ $this->load->helper('reports/search'); $this->load->helper('dl_util/context'); $this->load->helper('reports/creport_util'); $this->load->helper('creports/creport_field'); $this->load->model('admin/madmin_aco'); $this->load->model('creports/mcreports', 'clsCReports'); //------------------------------------------------ // load report //------------------------------------------------ $displayData['cRptTypes'] = loadCReportTypeArray(); $this->clsCReports->loadReportViaID($lReportID, true); $report =& $this->clsCReports->reports[0]; if (!$report->bUserHasWriteAccess) { vid_bTestFail($this, false, 'Custom Report', $lReportID); return; } $this->load->library('util/up_down_top_bottom', '', 'upDown'); $this->upDown->enumMove = $enumMove; $this->upDown->enumRecType = 'creport fields'; $this->upDown->strUfieldDDL = 'creport_fields'; $this->upDown->strUfieldDDLKey = 'crf_lKeyID'; $this->upDown->strUfieldDDLSort = 'crf_lSortIDX'; $this->upDown->strUfieldDDLQual1 = 'crf_lReportID'; $this->upDown->strUfieldDDLRetired = ''; $this->upDown->lUfieldDDLQual1Val = $lReportID; $this->upDown->lKeyID = $lFieldID; $this->upDown->moveRecs(); $this->session->set_flashdata('msg', 'The display fields were re-ordered'); redirect('creports/display_order/addEditDisplayTermOrder/' . $lReportID); }
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 remove($lReportID, $lSortTermID) { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- $this->load->helper('dl_util/verify_id'); verifyID($this, $lReportID, 'custom report ID'); $lReportID = (int) $lReportID; $lSortTermID = (int) $lSortTermID; //------------------------- // models & helpers //------------------------- $this->load->helper('reports/creport_util'); $this->load->model('admin/madmin_aco'); $this->load->model('creports/mcreports', 'crpt'); if (!$this->crpt->bSortTermGoesWithReport($lReportID, $lSortTermID)) { vid_bTestFail($this, false, 'Sort Order', $lSortTermID); return; } $this->crpt->deleteSortOrderTerm($lSortTermID); redirect('creports/custom_directory/viewRec/' . $lReportID); }
function add_edit($lReportID) { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- global $glUserID; $this->load->helper('dl_util/verify_id'); verifyID($this, $lReportID, 'custom report ID'); $displayData = array(); $displayData['lReportID'] = $lReportID; $displayData['js'] = ''; //------------------------------------------------ // models, libraries and utilities //------------------------------------------------ $this->load->helper('reports/creport_util'); $params = array('enumStyle' => 'terse', 'clsRpt'); $this->load->library('generic_rpt', $params); $this->load->library('generic_form'); $this->load->helper('js/toggle_paren'); $this->load->helper('reports/creport_util'); $this->load->helper('reports/search'); $this->load->helper('dl_util/special_ddl'); $this->load->helper('dl_util/web_layout'); $this->load->helper('dl_util/time_date'); $this->load->helper('creports/link_creports'); $this->load->helper('creports/creport_field'); $this->load->helper('dl_util/context'); $this->load->model('admin/madmin_aco'); $this->load->model('personalization/muser_fields'); $this->load->model('creports/mcreports', 'clsCReports'); $this->load->model('creports/mcrpt_search_terms', 'crptTerms'); $this->load->model('creports/mcrpt_terms_display', 'crptTD'); $this->load->library('util/up_down_top_bottom'); $displayData['js'] .= strToggleParen(); //------------------------------------------------ // load report //------------------------------------------------ $displayData['cRptTypes'] = loadCReportTypeArray(); $this->clsCReports->loadReportViaID($lReportID, true); $displayData['report'] = $report =& $this->clsCReports->reports[0]; if (!$report->bUserHasWriteAccess) { vid_bTestFail($this, false, 'Custom Report', $lReportID); return; } $displayData['lNumFields'] = $report->lNumFields; //$this->clsCReports->lFieldCount($lReportID); $displayData['contextSummary'] = $this->clsCReports->strCReportHTMLSummary(); //------------------------------------------------ // load formatted search expression //------------------------------------------------ $attributes = new stdClass(); $attributes->lReportID = $lReportID; $attributes->bShowParenEditLink = false; $attributes->bShowSortLink = false; $attributes->bParenAsTextInput = true; $displayData['strSearchExpression'] = $this->crptTD->strFormattedSearchExpression($lReportID, $attributes, $bBalanced); //-------------------------- // breadcrumbs //-------------------------- $displayData['pageTitle'] = anchor('main/menu/reports', 'Reports', 'class="breadcrumb"') . ' | ' . anchor('creports/custom_directory/view/' . $glUserID, 'Custom Report Directory', 'class="breadcrumb"') . ' | Custom Report: ' . $report->strSafeName; $displayData['title'] = CS_PROGNAME . ' | Reports'; $displayData['nav'] = $this->mnav_brain_jar->navData(); $displayData['mainTemplate'] = 'creports/paren_edit_view'; $this->load->vars($displayData); $this->load->view('template'); }
function add_edit($lCRptID = 0) { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- $displayData = array(); $displayData['lReportID'] = (int) $lCRptID; $displayData['js'] = ''; $displayData['bNew'] = $bNew = $lCRptID <= 0; $this->load->helper('dl_util/verify_id'); if (!$bNew) { verifyIDsViaType($this, CENUM_CONTEXT_CUSTOMREPORT, $lCRptID, false); } //------------------------- // models & helpers //------------------------- $this->load->helper('reports/creport_util'); $params = array('enumStyle' => 'terse'); $this->load->library('generic_rpt', $params); $this->load->model('admin/madmin_aco'); $this->load->model('creports/mcreports', 'clsCReports'); $this->load->helper('dl_util/web_layout'); $this->load->helper('creports/link_creports'); $cRptTypes = loadCReportTypeArray(); $this->clsCReports->loadReportViaID($lCRptID, false); $report =& $this->clsCReports->reports[0]; if (!$bNew) { if (!$report->bUserHasWriteAccess) { vid_bTestFail($this, false, 'Custom Report', $lCRptID); return; } } $this->load->helper('js/div_hide_show'); $displayData['js'] .= showHideDiv(); //------------------------- // validation rules //------------------------- $this->form_validation->set_error_delimiters('<div class="formError">', '</div>'); $this->form_validation->set_rules('txtName', 'Report Name', 'trim|required|callback_cRptNameDupTest[' . $lCRptID . ']'); $this->form_validation->set_rules('txtNotes', 'Notes', 'trim'); if ($this->form_validation->run() == FALSE) { $displayData['formData'] = new stdClass(); $this->load->library('generic_form'); if (!$bNew) { $displayData['formData']->strRptType = $report->strXlatedRptType; } // first time displayed, no user data entry errors if (validation_errors() == '') { $displayData['formData']->strName = $report->strName; $displayData['formData']->strNotes = $report->strNotes; $displayData['formData']->bPrivate = $report->bPrivate; if ($bNew) { $displayData['formData']->strCRptTypeDDL = strCRptTypesDDL($cRptTypes, false, $report->enumRptType); } } else { setOnFormError($displayData); $displayData['formData']->strName = set_value('txtName'); $displayData['formData']->strNotes = set_value('txtNotes'); $displayData['formData']->bPrivate = @$_POST['chkPrivate'] == 'TRUE'; if ($bNew) { $displayData['formData']->strCRptTypeDDL = strCRptTypesDDL($cRptTypes, false, @$_POST['ddlCRpt']); } } //-------------------------- // breadcrumbs //-------------------------- $displayData['pageTitle'] = anchor('main/menu/reports', 'Reports', 'class="breadcrumb"'); if (!$bNew) { $displayData['pageTitle'] .= ' | ' . anchor('creports/custom_directory/viewRec/' . $lCRptID, 'Custom Report: ' . $report->strSafeName, 'class="breadcrumb"'); } $displayData['pageTitle'] .= ' | ' . ($bNew ? 'Add' : 'Edit') . ' Custom Report'; $displayData['title'] = CS_PROGNAME . ' | Custom Reports'; $displayData['nav'] = $this->mnav_brain_jar->navData(); $displayData['mainTemplate'] = 'creports/add_edit_view'; $this->load->vars($displayData); $this->load->view('template'); } else { $report->strName = trim($_POST['txtName']); $report->strNotes = trim($_POST['txtNotes']); $report->bPrivate = @$_POST['chkPrivate'] == 'TRUE'; if ($bNew) { $report->enumRptType = trim($_POST['ddlCRpt']); } //------------------------------------ // update db tables and return //------------------------------------ if ($bNew) { $lCRptID = $this->clsCReports->addNewCReport(); $this->session->set_flashdata('msg', 'Custom report added'); redirect('creports/custom_fields/viewRecFields/' . $lCRptID . '/true'); } else { $this->clsCReports->updateCReport($lCRptID); $this->session->set_flashdata('msg', 'Custom report updated'); redirect('creports/custom_directory/viewRec/' . $lCRptID); } } }
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 verifyID(&$local, $varID, $enumVerifyType, $bRedirectOnFail = true) { /*--------------------------------------------------------------------- another way... Note that get_instance is a CI function, defined in system/core/CodeIgniter.php from http://stackoverflow.com/questions/4740430/explain-ci-get-instance $CI =& get_instance(); // use get_instance, it is less prone to failure in this context. ---------------------------------------------------------------------*/ $bValid = true; switch ($enumVerifyType) { case 'account ID': $bValid = vid_bGenericRecExists($local, $varID, 'gifts_accounts', 'ga_lKeyID', 'ga_bRetired'); break; case 'attributed to ID': $bValid = vid_bAttributedToIDExists($local, $varID); break; case 'auction ID': $bValid = vid_bGenericRecExists($local, $varID, 'gifts_auctions', 'auc_lKeyID', 'auc_bRetired'); break; case 'auction item ID': $bValid = vid_bGenericRecExists($local, $varID, 'gifts_auctions_items', 'ait_lKeyID', 'ait_bRetired'); break; case 'autocharge ID': $bValid = vid_bGenericRecExists($local, $varID, 'sponsor_autocharge_log', 'spcl_lKeyID', null); break; case 'bidsheet ID': $bValid = vid_bGenericRecExists($local, $varID, 'gifts_auctions_bidsheets', 'abs_lKeyID', 'abs_bRetired'); break; case 'business ID': $bValid = vid_bBizRecExists($local, $varID); break; case 'business contact ID': $bValid = vid_bBizConRecExists($local, $varID); break; case 'campaign ID': $bValid = vid_bGenericRecExists($local, $varID, 'gifts_campaigns', 'gc_lKeyID', 'gc_bRetired'); break; case 'client location ID': $bValid = vid_bGenericRecExists($local, $varID, 'client_location', 'cl_lKeyID', 'cl_bRetired'); break; case 'client ID': $bValid = vid_bGenericRecExists($local, $varID, 'client_records', 'cr_lKeyID', 'cr_bRetired'); break; case 'client program ID': $bValid = vid_bGenericRecExists($local, $varID, 'cprograms', 'cp_lKeyID', 'cp_bRetired'); break; case 'client vocabulary ID': $bValid = vid_bGenericRecExists($local, $varID, 'lists_client_vocab', 'cv_lKeyID', 'cv_bRetired'); break; case 'custom form ID': $bValid = vid_bGenericRecExists($local, $varID, 'custom_forms', 'cf_lKeyID', 'cf_bRetired'); break; case 'custom report ID': $bValid = vid_bGenericRecExists($local, $varID, 'creport_dir', 'crd_lKeyID', 'crd_bRetired'); break; case 'deposit ID': $bValid = vid_bGenericRecExists($local, $varID, 'deposit_log', 'dl_lKeyID', 'dl_bRetired'); break; case 'donation ID': $bValid = vid_bGiftExists($local, $varID); break; case 'event ID': $bValid = vid_bGenericRecExists($local, $varID, 'vol_events', 'vem_lKeyID', 'vem_bRetired'); break; case 'event date ID': $bValid = vid_bGenericRecExists($local, $varID, 'vol_events_dates', 'ved_lKeyID', null); break; case 'grant ID': $bValid = vid_bGenericRecExists($local, $varID, 'grants', 'gr_lKeyID', null); break; case 'group ID': $bValid = vid_bGenericRecExists($local, $varID, 'groups_parent', 'gp_lKeyID', null); break; case 'honorarium/memorial ID': $bValid = vid_bGenericRecExists($local, $varID, 'lists_hon_mem', 'ghm_lKeyID', 'ghm_bRetired'); break; case 'household ID': case 'people ID': $bValid = vid_bPeopleRecExists($local, $varID); break; case 'image/document ID': $bValid = vid_bGenericRecExists($local, $varID, 'docs_images', 'di_lKeyID', 'di_bRetired'); break; case 'inventory cat ID': $bValid = vid_bGenericRecExists($local, $varID, 'inv_cats', 'ivc_lKeyID', 'ivc_bRetired'); break; case 'inventory item ID': $bValid = vid_bGenericRecExists($local, $varID, 'inv_items', 'ivi_lKeyID', 'ivi_bRetired'); break; case 'organization ID': $bValid = vid_bGenericRecExists($local, $varID, 'admin_chapters', 'ch_lKeyID', 'ch_bRetired'); break; case 'package ID': $bValid = vid_bGenericRecExists($local, $varID, 'gifts_auctions_packages', 'ap_lKeyID', 'ap_bRetired'); break; case 'people/business ID': $bValid = vid_bPBRecExists($local, $varID, false, false); break; case 'pledge ID': $bValid = vid_bGenericRecExists($local, $varID, 'gifts_pledges', 'gp_lKeyID', 'gp_bRetired'); break; case 'pre/post test ID': $bValid = vid_bGenericRecExists($local, $varID, 'cpp_tests', 'cpp_lKeyID', 'cpp_bRetired'); break; case 'provider ID': $bValid = vid_bGenericRecExists($local, $varID, 'grant_providers', 'gpr_lKeyID', 'gpr_bRetired'); break; case 'relationship ID': $bValid = vid_bGenericRecExists($local, $varID, 'people_relationships', 'pr_lKeyID', 'pr_bRetired'); break; case 'relationship entry ID': $bValid = vid_bGenericRecExists($local, $varID, 'lists_people_relationships', 'lpr_lKeyID', 'lpr_bRetired'); break; case 'reminder ID': $bValid = vid_bReminderIDExists($local, $varID); break; case 'search term ID': $bValid = vid_bGenericRecExists($local, $varID, 'creport_search', 'crs_lKeyID', null); break; case 'shift ID': $bValid = vid_bGenericRecExists($local, $varID, 'vol_events_dates_shifts', 'vs_lKeyID', 'vs_bRetired'); break; case 'sponsor ID': $bValid = vid_bSponsorIDExists($local, $varID); break; case 'sponsorship charge ID': $bValid = vid_bGenericRecExists($local, $varID, 'sponsor_charges', 'spc_lKeyID', 'spc_bRetired'); break; case 'sponsor payment ID': $bValid = vid_bPaymentExists($local, $varID); break; case 'sponsorship program ID': $bValid = vid_bSponsorProgIDExists($local, $varID); break; case 'status category ID': $bValid = vid_bGenericRecExists($local, $varID, 'client_status_cats', 'csc_lKeyID', 'csc_bRetired'); break; case 'status ID': $bValid = vid_bGenericRecExists($local, $varID, 'lists_client_status_entries', 'cst_lKeyID', 'cst_bRetired'); break; case 'status entry ID': $bValid = vid_bGenericRecExists($local, $varID, 'client_status', 'csh_lKeyID', 'csh_bRetired'); break; case 'status entry list ID': $bValid = vid_bGenericRecExists($local, $varID, 'lists_client_status_entries', 'cst_lKeyID', 'cst_bRetired'); break; case 'user ID': $bValid = vid_bGenericRecExists($local, $varID, 'admin_users', 'us_lKeyID', null); break; case 'volunteer ID': $bValid = vid_bVolRecExists($local, $varID); break; case 'volunteer assignment ID': $bValid = vid_bGenericRecExists($local, $varID, 'vol_events_dates_shifts_assign', 'vsa_lKeyID', 'vsa_bRetired'); break; case 'vol. registration ID': $bValid = vid_bGenericRecExists($local, $varID, 'vol_reg', 'vreg_lKeyID', 'vreg_bRetired'); break; default: screamForHelp($enumVerifyType . ': invalid verify type<br>error on line <b> -- ' . __LINE__ . ' --</b>,<br>file ' . __FILE__ . ',<br>function ' . __FUNCTION__); break; } if ($bRedirectOnFail) { vid_bTestFail($local, $bValid, $enumVerifyType, $varID); } return $bValid; }
function creportReviewUtility(&$lReportID, &$displayData, &$bFail, &$fails, &$bFieldsOK, &$bTablePermissionOK, &$lNumTablePermFails, &$failTablePerms, &$lNumDDLJoins) { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- //------------------------------------------------ // load report //------------------------------------------------ $displayData['cRptTypes'] = loadCReportTypeArray(); $this->crptRun->loadReportViaID($lReportID, true); $report =& $this->crptRun->reports[0]; if (!$report->bUserHasReadAccess) { vid_bTestFail($this, false, 'Custom Report', $lReportID); die; } $bFail = false; $fails = array(); if ($report->lNumFields == 0) { $bFail = true; $fails[] = 'Please define one or more fields to display.'; } // load search terms $this->crptRun->loadSearchTermViaReportID($lReportID); // load sort terms $this->crptRun->loadSortFieldsViaReportID($lReportID, $lNumSortTerms, $sortTerms); // max of 61 joins - mysql limit $lNumDDLJoins = $this->lCountDDLJoins($report->fields); // verify personalized terms still exist $this->crptRun->verifyTerms_Init(); $bFieldsOK_Display = $this->crptRun->bVerifyTerms_Display($report, $displayData['lNumBad_Display'], $displayData['badFields_Display']); $bFieldsOK_Search = $this->crptRun->bVerifyTerms_Search($displayData['lNumBad_Search'], $displayData['badFields_Search']); $bFieldsOK_Sort = $this->crptRun->bVerifyTerms_Sort($lNumSortTerms, $sortTerms, $displayData['lNumBad_Sort'], $displayData['badFields_Sort']); $bFieldsOK = $bFieldsOK_Display && $bFieldsOK_Search && $bFieldsOK_Sort; // verify user has access to all tables referenced in report $bTablePermissionOK = $this->bVerifyUserAccessToReport($report, $lNumTablePermFails, $failTablePerms); }
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 crunGeneric($lReportID, $bExport, $lStartRec = null, $lRecsPerPage = null) { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- global $glUserID, $gdteNow; $this->load->helper('dl_util/verify_id'); verifyID($this, $lReportID, 'custom report ID'); $displayData = array(); $displayData['js'] = ''; $displayData['lReportID'] = $lReportID = (int) $lReportID; //------------------------------------------------ // libraries and utilities //------------------------------------------------ $this->load->helper('reports/search'); $this->load->helper('dl_util/context'); $this->load->helper('reports/creport_util'); $this->load->helper('creports/creport_field'); $this->load->helper('creports/link_creports'); $this->load->helper('creports/creport_special_ddl'); $this->load->helper('dl_util/rs_navigate'); $this->load->helper('dl_util/time_date'); $this->load->helper('creports/creport_tables'); $this->load->helper('personalization/field_display'); $this->load->model('admin/mpermissions', 'perms'); $this->load->model('admin/madmin_aco'); $this->load->model('creports/mcreports'); $this->load->model('creports/mcrpt_search_terms'); $this->load->model('creports/mcrpt_run', 'crptRun'); $this->load->model('personalization/muser_fields'); $params = array('enumStyle' => 'terse', 'clsRpt'); $this->load->library('generic_rpt', $params); //------------------------------------------------ // load report //------------------------------------------------ $this->crptRun->loadReportViaID($lReportID, true); $displayData['report'] = $report =& $this->crptRun->reports[0]; if (!$report->bUserHasReadAccess) { vid_bTestFail($this, false, 'Custom Report', $lReportID); return; } if (!$this->crptRun->bVerifyUserAccessToReport($report, $lNumFails, $failTables)) { vid_bTestFail($this, false, 'Permissions for Custom Report', $lReportID); return; } $report =& $this->crptRun->reports[0]; if (!$bExport) { $displayData['contextSummary'] = $this->crptRun->strCReportHTMLSummary(); $sRpt = new stdClass(); $sRpt->lReportID = $lReportID; $sRpt->bShowRecNav = true; $sRpt->lStartRec = $sRpt->lRecsPerPage = null; $this->setLimits($sRpt, $lStartRec, $lRecsPerPage); } // build the sql string for all records $this->crptRun->strBuildCReportSQL($report, '', false); if ($bExport) { // life is good - this is so easy.... $this->load->dbutil(); $this->load->helper('download'); $this->load->model('reports/mexports', 'clsExports'); $strFN = 'creport_' . str_pad($report->lKeyID, 5, '0', STR_PAD_LEFT) . '_' . date('Ymd_His', $gdteNow) . '.csv'; force_download($strFN, $this->clsExports->exportCReport($this->crptRun->strSQL . ';')); } else { // prep the navigation $displayData['lTotRecs'] = $lNumRecsTot = $this->crptRun->lCountRecs(false, null, null); $displayData['lNumThisPage'] = $lNumThisPage = $this->crptRun->lCountRecs(true, $lStartRec, $lRecsPerPage); $displayData['strNavLinkExtra'] = ''; $displayData['lStartRec'] = $lStartRec = (int) $lStartRec; $displayData['lRecsPerPage'] = $lRecsPerPage = (int) $lRecsPerPage; $displayData['strNavRptTitle'] = 'Record selection'; $displayData['strExport'] = false; // compatibility with reports/record_nav_view $displayData['bShowRecNav'] = true; // compatibility with reports/record_nav_view $displayData['bSuppressNavBr'] = true; $displayData['strLinkBase'] = 'reports/reports/crun/' . $lReportID; if ($lNumThisPage > 0) { $this->crptRun->strSQL = $this->crptRun->strSQL . "\nLIMIT {$lStartRec}, {$lRecsPerPage};"; $this->crptRun->loadCReportRecords($report->fields, $displayData['lNumCRecs'], $displayData['crecs']); } //------------------------------------------------ // stripes //------------------------------------------------ $this->load->model('util/mbuild_on_ready', 'clsOnReady'); $this->clsOnReady->addOnReadyTableStripes(); $this->clsOnReady->closeOnReady(); $displayData['js'] .= $this->clsOnReady->strOnReady; //------------------------------------------------ // breadcrumbs, page set-up //------------------------------------------------ $displayData['mainTemplate'] = array('reports/record_nav_view', 'reports/creport_run_nav'); $displayData['pageTitle'] = anchor('main/menu/reports', 'Reports', 'class="breadcrumb"') . ' | ' . anchor('creports/custom_directory/view/' . $glUserID, 'Custom Report Directory', 'class="breadcrumb"') . ' | ' . anchor('creports/custom_directory/viewRec/' . $lReportID, 'Report Record', 'class="breadcrumb"') . ' | Run: ' . $report->strSafeName; $displayData['title'] = CS_PROGNAME . ' | Reports'; $displayData['nav'] = $this->mnav_brain_jar->navData(); $this->load->vars($displayData); $this->load->view('template'); } }
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); } } } }
function remove($lReportID) { //--------------------------------------------------------------------- // //--------------------------------------------------------------------- global $glUserID; $this->load->helper('dl_util/verify_id'); verifyID($this, $lReportID, 'custom report ID'); $lReportID = (int) $lReportID; //------------------------------------------------ // libraries and utilities //------------------------------------------------ $this->load->helper('reports/search'); $this->load->helper('dl_util/context'); $this->load->helper('creports/creport_field'); $this->load->helper('reports/creport_util'); $this->load->model('admin/madmin_aco'); $this->load->model('creports/mcreports', 'clsCReports'); //------------------------------------------------ // load report //------------------------------------------------ $displayData['cRptTypes'] = loadCReportTypeArray(); $this->clsCReports->loadReportViaID($lReportID, true); $displayData['report'] = $report =& $this->clsCReports->reports[0]; if (!$report->bUserHasWriteAccess) { vid_bTestFail($this, false, 'Custom Report', $lReportID); return; } $this->clsCReports->removeCReport($lReportID); redirect('creports/custom_directory/view/' . $glUserID); }