UseTokenInUrl) $PageUrl .= "t=" . $this->TableVar . "&"; // Add page token return $PageUrl; } // Page URLs var $AddUrl; var $EditUrl; var $CopyUrl; var $DeleteUrl; var $ViewUrl; var $ListUrl; // Export URLs var $ExportPrintUrl; var $ExportHtmlUrl; var $ExportExcelUrl; var $ExportWordUrl; var $ExportXmlUrl; var $ExportCsvUrl; var $ExportPdfUrl; // Custom export var $ExportExcelCustom = FALSE; var $ExportWordCustom = FALSE; var $ExportPdfCustom = FALSE; var $ExportEmailCustom = FALSE; // Update URLs var $InlineAddUrl; var $InlineCopyUrl; var $InlineEditUrl; var $GridAddUrl; var $GridEditUrl; var $MultiDeleteUrl; var $MultiUpdateUrl; // Message function getMessage() { return @$_SESSION[EW_SESSION_MESSAGE]; } function setMessage($v) { ew_AddMessage($_SESSION[EW_SESSION_MESSAGE], $v); } function getFailureMessage() { return @$_SESSION[EW_SESSION_FAILURE_MESSAGE]; } function setFailureMessage($v) { ew_AddMessage($_SESSION[EW_SESSION_FAILURE_MESSAGE], $v); } function getSuccessMessage() { return @$_SESSION[EW_SESSION_SUCCESS_MESSAGE]; } function setSuccessMessage($v) { ew_AddMessage($_SESSION[EW_SESSION_SUCCESS_MESSAGE], $v); } function getWarningMessage() { return @$_SESSION[EW_SESSION_WARNING_MESSAGE]; } function setWarningMessage($v) { ew_AddMessage($_SESSION[EW_SESSION_WARNING_MESSAGE], $v); } // Methods to clear message function ClearMessage() { $_SESSION[EW_SESSION_MESSAGE] = ""; } function ClearFailureMessage() { $_SESSION[EW_SESSION_FAILURE_MESSAGE] = ""; } function ClearSuccessMessage() { $_SESSION[EW_SESSION_SUCCESS_MESSAGE] = ""; } function ClearWarningMessage() { $_SESSION[EW_SESSION_WARNING_MESSAGE] = ""; } function ClearMessages() { $_SESSION[EW_SESSION_MESSAGE] = ""; $_SESSION[EW_SESSION_FAILURE_MESSAGE] = ""; $_SESSION[EW_SESSION_SUCCESS_MESSAGE] = ""; $_SESSION[EW_SESSION_WARNING_MESSAGE] = ""; } // Show message function ShowMessage() { $hidden = FALSE; $html = ""; // Message $sMessage = $this->getMessage(); if (method_exists($this, "Message_Showing")) $this->Message_Showing($sMessage, ""); if ($sMessage <> "") { // Message in Session, display if (!$hidden) $sMessage = "" . $sMessage; $html .= "
" . $sMessage . "
"; $_SESSION[EW_SESSION_MESSAGE] = ""; // Clear message in Session } // Warning message $sWarningMessage = $this->getWarningMessage(); if (method_exists($this, "Message_Showing")) $this->Message_Showing($sWarningMessage, "warning"); if ($sWarningMessage <> "") { // Message in Session, display if (!$hidden) $sWarningMessage = "" . $sWarningMessage; $html .= "
" . $sWarningMessage . "
"; $_SESSION[EW_SESSION_WARNING_MESSAGE] = ""; // Clear message in Session } // Success message $sSuccessMessage = $this->getSuccessMessage(); if (method_exists($this, "Message_Showing")) $this->Message_Showing($sSuccessMessage, "success"); if ($sSuccessMessage <> "") { // Message in Session, display if (!$hidden) $sSuccessMessage = "" . $sSuccessMessage; $html .= "
" . $sSuccessMessage . "
"; $_SESSION[EW_SESSION_SUCCESS_MESSAGE] = ""; // Clear message in Session } // Failure message $sErrorMessage = $this->getFailureMessage(); if (method_exists($this, "Message_Showing")) $this->Message_Showing($sErrorMessage, "failure"); if ($sErrorMessage <> "") { // Message in Session, display if (!$hidden) $sErrorMessage = "" . $sErrorMessage; $html .= "
" . $sErrorMessage . "
"; $_SESSION[EW_SESSION_FAILURE_MESSAGE] = ""; // Clear message in Session } echo "
" . $html . "
"; } var $PageHeader; var $PageFooter; // Show Page Header function ShowPageHeader() { $sHeader = $this->PageHeader; $this->Page_DataRendering($sHeader); if ($sHeader <> "") { // Header exists, display echo "

" . $sHeader . "

"; } } // Show Page Footer function ShowPageFooter() { $sFooter = $this->PageFooter; $this->Page_DataRendered($sFooter); if ($sFooter <> "") { // Footer exists, display echo "

" . $sFooter . "

"; } } // Validate page request function IsPageRequest() { global $objForm; if ($this->UseTokenInUrl) { if ($objForm) return ($this->TableVar == $objForm->GetValue("t")); if (@$_GET["t"] <> "") return ($this->TableVar == $_GET["t"]); } else { return TRUE; } } var $Token = ""; var $TokenTimeout = 0; var $CheckToken = EW_CHECK_TOKEN; var $CheckTokenFn = "ew_CheckToken"; var $CreateTokenFn = "ew_CreateToken"; // Valid Post function ValidPost() { if (!$this->CheckToken || !ew_IsHttpPost()) return TRUE; if (!isset($_POST[EW_TOKEN_NAME])) return FALSE; $fn = $this->CheckTokenFn; if (is_callable($fn)) return $fn($_POST[EW_TOKEN_NAME], $this->TokenTimeout); return FALSE; } // Create Token function CreateToken() { global $gsToken; if ($this->CheckToken) { $fn = $this->CreateTokenFn; if ($this->Token == "" && is_callable($fn)) // Create token $this->Token = $fn(); $gsToken = $this->Token; // Save to global variable } } // // Page class constructor // function __construct() { global $conn, $Language; global $UserTable, $UserTableConn; $GLOBALS["Page"] = &$this; $this->TokenTimeout = ew_SessionTimeoutTime(); // Language object if (!isset($Language)) $Language = new cLanguage(); // Parent constuctor parent::__construct(); // Table object (users) if (!isset($GLOBALS["users"]) || get_class($GLOBALS["users"]) == "cusers") { $GLOBALS["users"] = &$this; $GLOBALS["Table"] = &$GLOBALS["users"]; } $KeyUrl = ""; if (@$_GET["id"] <> "") { $this->RecKey["id"] = $_GET["id"]; $KeyUrl .= "&id=" . urlencode($this->RecKey["id"]); } $this->ExportPrintUrl = $this->PageUrl() . "export=print" . $KeyUrl; $this->ExportHtmlUrl = $this->PageUrl() . "export=html" . $KeyUrl; $this->ExportExcelUrl = $this->PageUrl() . "export=excel" . $KeyUrl; $this->ExportWordUrl = $this->PageUrl() . "export=word" . $KeyUrl; $this->ExportXmlUrl = $this->PageUrl() . "export=xml" . $KeyUrl; $this->ExportCsvUrl = $this->PageUrl() . "export=csv" . $KeyUrl; $this->ExportPdfUrl = $this->PageUrl() . "export=pdf" . $KeyUrl; // Page ID if (!defined("EW_PAGE_ID")) define("EW_PAGE_ID", 'view', TRUE); // Table name (for backward compatibility) if (!defined("EW_TABLE_NAME")) define("EW_TABLE_NAME", 'users', TRUE); // Start timer if (!isset($GLOBALS["gTimer"])) $GLOBALS["gTimer"] = new cTimer(); // Open connection if (!isset($conn)) $conn = ew_Connect($this->DBID); // User table object (users) if (!isset($UserTable)) { $UserTable = new cusers(); $UserTableConn = Conn($UserTable->DBID); } // Export options $this->ExportOptions = new cListOptions(); $this->ExportOptions->Tag = "div"; $this->ExportOptions->TagClassName = "ewExportOption"; // Other options $this->OtherOptions['action'] = new cListOptions(); $this->OtherOptions['action']->Tag = "div"; $this->OtherOptions['action']->TagClassName = "ewActionOption"; $this->OtherOptions['detail'] = new cListOptions(); $this->OtherOptions['detail']->Tag = "div"; $this->OtherOptions['detail']->TagClassName = "ewDetailOption"; } // // Page_Init // function Page_Init() { global $gsExport, $gsCustomExport, $gsExportFile, $UserProfile, $Language, $Security, $objForm; // Security $Security = new cAdvancedSecurity(); if (!$Security->IsLoggedIn()) $Security->AutoLogin(); if ($Security->IsLoggedIn()) $Security->TablePermission_Loading(); $Security->LoadCurrentUserLevel($this->ProjectID . $this->TableName); if ($Security->IsLoggedIn()) $Security->TablePermission_Loaded(); if (!$Security->CanView()) { $Security->SaveLastUrl(); $this->setFailureMessage(ew_DeniedMsg()); // Set no permission if ($Security->CanList()) $this->Page_Terminate(ew_GetUrl("userslist.php")); else $this->Page_Terminate(ew_GetUrl("login.php")); } // Get export parameters $custom = ""; if (@$_GET["export"] <> "") { $this->Export = $_GET["export"]; $custom = @$_GET["custom"]; } elseif (@$_POST["export"] <> "") { $this->Export = $_POST["export"]; $custom = @$_POST["custom"]; } elseif (ew_IsHttpPost()) { if (@$_POST["exporttype"] <> "") $this->Export = $_POST["exporttype"]; $custom = @$_POST["custom"]; } else { $this->setExportReturnUrl(ew_CurrentUrl()); } $gsExportFile = $this->TableVar; // Get export file, used in header if (@$_GET["id"] <> "") { if ($gsExportFile <> "") $gsExportFile .= "_"; $gsExportFile .= ew_StripSlashes($_GET["id"]); } // Get custom export parameters if ($this->Export <> "" && $custom <> "") { $this->CustomExport = $this->Export; $this->Export = "print"; } $gsCustomExport = $this->CustomExport; $gsExport = $this->Export; // Get export parameter, used in header // Update Export URLs if (defined("EW_USE_PHPEXCEL")) $this->ExportExcelCustom = FALSE; if ($this->ExportExcelCustom) $this->ExportExcelUrl .= "&custom=1"; if (defined("EW_USE_PHPWORD")) $this->ExportWordCustom = FALSE; if ($this->ExportWordCustom) $this->ExportWordUrl .= "&custom=1"; if ($this->ExportPdfCustom) $this->ExportPdfUrl .= "&custom=1"; $this->CurrentAction = (@$_GET["a"] <> "") ? $_GET["a"] : @$_POST["a_list"]; // Set up current action // Setup export options $this->SetupExportOptions(); $this->id->SetVisibility(); $this->id->Visible = !$this->IsAdd() && !$this->IsCopy() && !$this->IsGridAdd(); $this->_login->SetVisibility(); $this->password->SetVisibility(); $this->id_group->SetVisibility(); // Global Page Loading event (in userfn*.php) Page_Loading(); // Page Load event $this->Page_Load(); // Check token if (!$this->ValidPost()) { echo $Language->Phrase("InvalidPostRequest"); $this->Page_Terminate(); exit(); } // Create Token $this->CreateToken(); } // // Page_Terminate // function Page_Terminate($url = "") { global $gsExportFile, $gTmpImages; // Page Unload event $this->Page_Unload(); // Global Page Unloaded event (in userfn*.php) Page_Unloaded(); // Export global $EW_EXPORT, $users; if ($this->CustomExport <> "" && $this->CustomExport == $this->Export && array_key_exists($this->CustomExport, $EW_EXPORT)) { $sContent = ob_get_contents(); if ($gsExportFile == "") $gsExportFile = $this->TableVar; $class = $EW_EXPORT[$this->CustomExport]; if (class_exists($class)) { $doc = new $class($users); $doc->Text = $sContent; if ($this->Export == "email") echo $this->ExportEmail($doc->Text); else $doc->Export(); ew_DeleteTmpImages(); // Delete temp images exit(); } } $this->Page_Redirecting($url); // Close connection ew_CloseConn(); // Go to URL if specified if ($url <> "") { if (!EW_DEBUG_ENABLED && ob_get_length()) ob_end_clean(); // Handle modal response if ($this->IsModal) { $row = array(); $row["url"] = $url; echo ew_ArrayToJson(array($row)); } else { header("Location: " . $url); } } exit(); } var $ExportOptions; // Export options var $OtherOptions = array(); // Other options var $DisplayRecs = 1; var $DbMasterFilter; var $DbDetailFilter; var $StartRec; var $StopRec; var $TotalRecs = 0; var $RecRange = 10; var $Pager; var $RecCnt; var $RecKey = array(); var $IsModal = FALSE; var $Recordset; // // Page main // function Page_Main() { global $Language; global $gbSkipHeaderFooter; // Check modal $this->IsModal = (@$_GET["modal"] == "1" || @$_POST["modal"] == "1"); if ($this->IsModal) $gbSkipHeaderFooter = TRUE; // Load current record $bLoadCurrentRecord = FALSE; $sReturnUrl = ""; $bMatchRecord = FALSE; if ($this->IsPageRequest()) { // Validate request if (@$_GET["id"] <> "") { $this->id->setQueryStringValue($_GET["id"]); $this->RecKey["id"] = $this->id->QueryStringValue; } elseif (@$_POST["id"] <> "") { $this->id->setFormValue($_POST["id"]); $this->RecKey["id"] = $this->id->FormValue; } else { $bLoadCurrentRecord = TRUE; } // Get action $this->CurrentAction = "I"; // Display form switch ($this->CurrentAction) { case "I": // Get a record to display $this->StartRec = 1; // Initialize start position if ($this->Recordset = $this->LoadRecordset()) // Load records $this->TotalRecs = $this->Recordset->RecordCount(); // Get record count if ($this->TotalRecs <= 0) { // No record found if ($this->getSuccessMessage() == "" && $this->getFailureMessage() == "") $this->setFailureMessage($Language->Phrase("NoRecord")); // Set no record message $this->Page_Terminate("userslist.php"); // Return to list page } elseif ($bLoadCurrentRecord) { // Load current record position $this->SetUpStartRec(); // Set up start record position // Point to current record if (intval($this->StartRec) <= intval($this->TotalRecs)) { $bMatchRecord = TRUE; $this->Recordset->Move($this->StartRec-1); } } else { // Match key values while (!$this->Recordset->EOF) { if (strval($this->id->CurrentValue) == strval($this->Recordset->fields('id'))) { $this->setStartRecordNumber($this->StartRec); // Save record position $bMatchRecord = TRUE; break; } else { $this->StartRec++; $this->Recordset->MoveNext(); } } } if (!$bMatchRecord) { if ($this->getSuccessMessage() == "" && $this->getFailureMessage() == "") $this->setFailureMessage($Language->Phrase("NoRecord")); // Set no record message $sReturnUrl = "userslist.php"; // No matching record, return to list } else { $this->LoadRowValues($this->Recordset); // Load row values } } // Export data only if ($this->CustomExport == "" && in_array($this->Export, array("html","word","excel","xml","csv","email","pdf"))) { $this->ExportData(); $this->Page_Terminate(); // Terminate response exit(); } } else { $sReturnUrl = "userslist.php"; // Not page request, return to list } if ($sReturnUrl <> "") $this->Page_Terminate($sReturnUrl); // Set up Breadcrumb if ($this->Export == "") $this->SetupBreadcrumb(); // Render row $this->RowType = EW_ROWTYPE_VIEW; $this->ResetAttrs(); $this->RenderRow(); } // Set up other options function SetupOtherOptions() { global $Language, $Security; $options = &$this->OtherOptions; $option = &$options["action"]; // Add $item = &$option->Add("add"); $addcaption = ew_HtmlTitle($Language->Phrase("ViewPageAddLink")); if ($this->IsModal) // Modal $item->Body = "AddUrl) . "',caption:'" . $addcaption . "'});\">" . $Language->Phrase("ViewPageAddLink") . ""; else $item->Body = "AddUrl) . "\">" . $Language->Phrase("ViewPageAddLink") . ""; $item->Visible = ($this->AddUrl <> "" && $Security->CanAdd()); // Edit $item = &$option->Add("edit"); $editcaption = ew_HtmlTitle($Language->Phrase("ViewPageEditLink")); if ($this->IsModal) // Modal $item->Body = "EditUrl) . "',caption:'" . $editcaption . "'});\">" . $Language->Phrase("ViewPageEditLink") . ""; else $item->Body = "EditUrl) . "\">" . $Language->Phrase("ViewPageEditLink") . ""; $item->Visible = ($this->EditUrl <> "" && $Security->CanEdit()); // Copy $item = &$option->Add("copy"); $copycaption = ew_HtmlTitle($Language->Phrase("ViewPageCopyLink")); if ($this->IsModal) // Modal $item->Body = "CopyUrl) . "',caption:'" . $copycaption . "'});\">" . $Language->Phrase("ViewPageCopyLink") . ""; else $item->Body = "CopyUrl) . "\">" . $Language->Phrase("ViewPageCopyLink") . ""; $item->Visible = ($this->CopyUrl <> "" && $Security->CanAdd()); // Delete $item = &$option->Add("delete"); if ($this->IsModal) // Handle as inline delete $item->Body = "Phrase("ViewPageDeleteLink")) . "\" data-caption=\"" . ew_HtmlTitle($Language->Phrase("ViewPageDeleteLink")) . "\" href=\"" . ew_HtmlEncode(ew_AddQueryStringToUrl($this->DeleteUrl, "a_delete=1")) . "\">" . $Language->Phrase("ViewPageDeleteLink") . ""; else $item->Body = "Phrase("ViewPageDeleteLink")) . "\" data-caption=\"" . ew_HtmlTitle($Language->Phrase("ViewPageDeleteLink")) . "\" href=\"" . ew_HtmlEncode($this->DeleteUrl) . "\">" . $Language->Phrase("ViewPageDeleteLink") . ""; $item->Visible = ($this->DeleteUrl <> "" && $Security->CanDelete()); // Set up action default $option = &$options["action"]; $option->DropDownButtonPhrase = $Language->Phrase("ButtonActions"); $option->UseImageAndText = TRUE; $option->UseDropDownButton = FALSE; $option->UseButtonGroup = TRUE; $item = &$option->Add($option->GroupOptionName); $item->Body = ""; $item->Visible = FALSE; } // Set up starting record parameters function SetUpStartRec() { if ($this->DisplayRecs == 0) return; if ($this->IsPageRequest()) { // Validate request if (@$_GET[EW_TABLE_START_REC] <> "") { // Check for "start" parameter $this->StartRec = $_GET[EW_TABLE_START_REC]; $this->setStartRecordNumber($this->StartRec); } elseif (@$_GET[EW_TABLE_PAGE_NO] <> "") { $PageNo = $_GET[EW_TABLE_PAGE_NO]; if (is_numeric($PageNo)) { $this->StartRec = ($PageNo-1)*$this->DisplayRecs+1; if ($this->StartRec <= 0) { $this->StartRec = 1; } elseif ($this->StartRec >= intval(($this->TotalRecs-1)/$this->DisplayRecs)*$this->DisplayRecs+1) { $this->StartRec = intval(($this->TotalRecs-1)/$this->DisplayRecs)*$this->DisplayRecs+1; } $this->setStartRecordNumber($this->StartRec); } } } $this->StartRec = $this->getStartRecordNumber(); // Check if correct start record counter if (!is_numeric($this->StartRec) || $this->StartRec == "") { // Avoid invalid start record counter $this->StartRec = 1; // Reset start record counter $this->setStartRecordNumber($this->StartRec); } elseif (intval($this->StartRec) > intval($this->TotalRecs)) { // Avoid starting record > total records $this->StartRec = intval(($this->TotalRecs-1)/$this->DisplayRecs)*$this->DisplayRecs+1; // Point to last page first record $this->setStartRecordNumber($this->StartRec); } elseif (($this->StartRec-1) % $this->DisplayRecs <> 0) { $this->StartRec = intval(($this->StartRec-1)/$this->DisplayRecs)*$this->DisplayRecs+1; // Point to page boundary $this->setStartRecordNumber($this->StartRec); } } // Load recordset function LoadRecordset($offset = -1, $rowcnt = -1) { // Load List page SQL $sSql = $this->SelectSQL(); $conn = &$this->Connection(); // Load recordset $dbtype = ew_GetConnectionType($this->DBID); if ($this->UseSelectLimit) { $conn->raiseErrorFn = $GLOBALS["EW_ERROR_FN"]; if ($dbtype == "MSSQL") { $rs = $conn->SelectLimit($sSql, $rowcnt, $offset, array("_hasOrderBy" => trim($this->getOrderBy()) || trim($this->getSessionOrderBy()))); } else { $rs = $conn->SelectLimit($sSql, $rowcnt, $offset); } $conn->raiseErrorFn = ''; } else { $rs = ew_LoadRecordset($sSql, $conn); } // Call Recordset Selected event $this->Recordset_Selected($rs); return $rs; } // Load row based on key values function LoadRow() { global $Security, $Language; $sFilter = $this->KeyFilter(); // Call Row Selecting event $this->Row_Selecting($sFilter); // Load SQL based on filter $this->CurrentFilter = $sFilter; $sSql = $this->SQL(); $conn = &$this->Connection(); $res = FALSE; $rs = ew_LoadRecordset($sSql, $conn); if ($rs && !$rs->EOF) { $res = TRUE; $this->LoadRowValues($rs); // Load row values $rs->Close(); } return $res; } // Load row values from recordset function LoadRowValues(&$rs) { if (!$rs || $rs->EOF) return; // Call Row Selected event $row = &$rs->fields; $this->Row_Selected($row); $this->id->setDbValue($rs->fields('id')); $this->_login->setDbValue($rs->fields('login')); $this->password->setDbValue($rs->fields('password')); $this->id_group->setDbValue($rs->fields('id_group')); } // Load DbValue from recordset function LoadDbValues(&$rs) { if (!$rs || !is_array($rs) && $rs->EOF) return; $row = is_array($rs) ? $rs : $rs->fields; $this->id->DbValue = $row['id']; $this->_login->DbValue = $row['login']; $this->password->DbValue = $row['password']; $this->id_group->DbValue = $row['id_group']; } // Render row values based on field settings function RenderRow() { global $Security, $Language, $gsLanguage; // Initialize URLs $this->AddUrl = $this->GetAddUrl(); $this->EditUrl = $this->GetEditUrl(); $this->CopyUrl = $this->GetCopyUrl(); $this->DeleteUrl = $this->GetDeleteUrl(); $this->ListUrl = $this->GetListUrl(); $this->SetupOtherOptions(); // Call Row_Rendering event $this->Row_Rendering(); // Common render codes for all row types // id // login // password // id_group if ($this->RowType == EW_ROWTYPE_VIEW) { // View row // id $this->id->ViewValue = $this->id->CurrentValue; $this->id->ViewCustomAttributes = ""; // login $this->_login->ViewValue = $this->_login->CurrentValue; $this->_login->ViewCustomAttributes = ""; // password $this->password->ViewValue = $this->password->CurrentValue; $this->password->ViewCustomAttributes = ""; // id_group if (strval($this->id_group->CurrentValue) <> "") { $sFilterWrk = "`userlevelid`" . ew_SearchString("=", $this->id_group->CurrentValue, EW_DATATYPE_NUMBER, ""); switch (@$gsLanguage) { case "en": $sSqlWrk = "SELECT `userlevelid`, `userlevelname` AS `DispFld`, '' AS `Disp2Fld`, '' AS `Disp3Fld`, '' AS `Disp4Fld` FROM `userlevels`"; $sWhereWrk = ""; $this->id_group->LookupFilters = array(); break; case "it": $sSqlWrk = "SELECT `userlevelid`, `userlevelname` AS `DispFld`, '' AS `Disp2Fld`, '' AS `Disp3Fld`, '' AS `Disp4Fld` FROM `userlevels`"; $sWhereWrk = ""; $this->id_group->LookupFilters = array(); break; default: $sSqlWrk = "SELECT `userlevelid`, `userlevelname` AS `DispFld`, '' AS `Disp2Fld`, '' AS `Disp3Fld`, '' AS `Disp4Fld` FROM `userlevels`"; $sWhereWrk = ""; $this->id_group->LookupFilters = array(); break; } ew_AddFilter($sWhereWrk, $sFilterWrk); $this->Lookup_Selecting($this->id_group, $sWhereWrk); // Call Lookup selecting if ($sWhereWrk <> "") $sSqlWrk .= " WHERE " . $sWhereWrk; $rswrk = Conn()->Execute($sSqlWrk); if ($rswrk && !$rswrk->EOF) { // Lookup values found $arwrk = array(); $arwrk[1] = $rswrk->fields('DispFld'); $this->id_group->ViewValue = $this->id_group->DisplayValue($arwrk); $rswrk->Close(); } else { $this->id_group->ViewValue = $this->id_group->CurrentValue; } } else { $this->id_group->ViewValue = NULL; } $this->id_group->ViewCustomAttributes = ""; // id $this->id->LinkCustomAttributes = ""; $this->id->HrefValue = ""; $this->id->TooltipValue = ""; // login $this->_login->LinkCustomAttributes = ""; $this->_login->HrefValue = ""; $this->_login->TooltipValue = ""; // password $this->password->LinkCustomAttributes = ""; $this->password->HrefValue = ""; $this->password->TooltipValue = ""; // id_group $this->id_group->LinkCustomAttributes = ""; $this->id_group->HrefValue = ""; $this->id_group->TooltipValue = ""; } // Call Row Rendered event if ($this->RowType <> EW_ROWTYPE_AGGREGATEINIT) $this->Row_Rendered(); } // Set up export options function SetupExportOptions() { global $Language; // Printer friendly $item = &$this->ExportOptions->Add("print"); $item->Body = "ExportPrintUrl . "\" class=\"ewExportLink ewPrint\" title=\"" . ew_HtmlEncode($Language->Phrase("PrinterFriendlyText")) . "\" data-caption=\"" . ew_HtmlEncode($Language->Phrase("PrinterFriendlyText")) . "\">" . $Language->Phrase("PrinterFriendly") . ""; $item->Visible = TRUE; // Export to Excel $item = &$this->ExportOptions->Add("excel"); $item->Body = "ExportExcelUrl . "\" class=\"ewExportLink ewExcel\" title=\"" . ew_HtmlEncode($Language->Phrase("ExportToExcelText")) . "\" data-caption=\"" . ew_HtmlEncode($Language->Phrase("ExportToExcelText")) . "\">" . $Language->Phrase("ExportToExcel") . ""; $item->Visible = TRUE; // Export to Word $item = &$this->ExportOptions->Add("word"); $item->Body = "ExportWordUrl . "\" class=\"ewExportLink ewWord\" title=\"" . ew_HtmlEncode($Language->Phrase("ExportToWordText")) . "\" data-caption=\"" . ew_HtmlEncode($Language->Phrase("ExportToWordText")) . "\">" . $Language->Phrase("ExportToWord") . ""; $item->Visible = TRUE; // Export to Html $item = &$this->ExportOptions->Add("html"); $item->Body = "ExportHtmlUrl . "\" class=\"ewExportLink ewHtml\" title=\"" . ew_HtmlEncode($Language->Phrase("ExportToHtmlText")) . "\" data-caption=\"" . ew_HtmlEncode($Language->Phrase("ExportToHtmlText")) . "\">" . $Language->Phrase("ExportToHtml") . ""; $item->Visible = TRUE; // Export to Xml $item = &$this->ExportOptions->Add("xml"); $item->Body = "ExportXmlUrl . "\" class=\"ewExportLink ewXml\" title=\"" . ew_HtmlEncode($Language->Phrase("ExportToXmlText")) . "\" data-caption=\"" . ew_HtmlEncode($Language->Phrase("ExportToXmlText")) . "\">" . $Language->Phrase("ExportToXml") . ""; $item->Visible = FALSE; // Export to Csv $item = &$this->ExportOptions->Add("csv"); $item->Body = "ExportCsvUrl . "\" class=\"ewExportLink ewCsv\" title=\"" . ew_HtmlEncode($Language->Phrase("ExportToCsvText")) . "\" data-caption=\"" . ew_HtmlEncode($Language->Phrase("ExportToCsvText")) . "\">" . $Language->Phrase("ExportToCsv") . ""; $item->Visible = TRUE; // Export to Pdf $item = &$this->ExportOptions->Add("pdf"); $item->Body = "ExportPdfUrl . "\" class=\"ewExportLink ewPdf\" title=\"" . ew_HtmlEncode($Language->Phrase("ExportToPDFText")) . "\" data-caption=\"" . ew_HtmlEncode($Language->Phrase("ExportToPDFText")) . "\">" . $Language->Phrase("ExportToPDF") . ""; $item->Visible = TRUE; // Export to Email $item = &$this->ExportOptions->Add("email"); $url = ""; $item->Body = ""; $item->Visible = TRUE; // Drop down button for export $this->ExportOptions->UseButtonGroup = TRUE; $this->ExportOptions->UseImageAndText = TRUE; $this->ExportOptions->UseDropDownButton = TRUE; if ($this->ExportOptions->UseButtonGroup && ew_IsMobile()) $this->ExportOptions->UseDropDownButton = TRUE; $this->ExportOptions->DropDownButtonPhrase = $Language->Phrase("ButtonExport"); // Add group option item $item = &$this->ExportOptions->Add($this->ExportOptions->GroupOptionName); $item->Body = ""; $item->Visible = FALSE; // Hide options for export if ($this->Export <> "") $this->ExportOptions->HideAllOptions(); } // Export data in HTML/CSV/Word/Excel/XML/Email/PDF format function ExportData() { $utf8 = (strtolower(EW_CHARSET) == "utf-8"); $bSelectLimit = FALSE; // Load recordset if ($bSelectLimit) { $this->TotalRecs = $this->SelectRecordCount(); } else { if (!$this->Recordset) $this->Recordset = $this->LoadRecordset(); $rs = &$this->Recordset; if ($rs) $this->TotalRecs = $rs->RecordCount(); } $this->StartRec = 1; $this->SetUpStartRec(); // Set up start record position // Set the last record to display if ($this->DisplayRecs <= 0) { $this->StopRec = $this->TotalRecs; } else { $this->StopRec = $this->StartRec + $this->DisplayRecs - 1; } if (!$rs) { header("Content-Type:"); // Remove header header("Content-Disposition:"); $this->ShowMessage(); return; } $this->ExportDoc = ew_ExportDocument($this, "v"); $Doc = &$this->ExportDoc; if ($bSelectLimit) { $this->StartRec = 1; $this->StopRec = $this->DisplayRecs <= 0 ? $this->TotalRecs : $this->DisplayRecs; } else { //$this->StartRec = $this->StartRec; //$this->StopRec = $this->StopRec; } // Call Page Exporting server event $this->ExportDoc->ExportCustom = !$this->Page_Exporting(); $ParentTable = ""; $sHeader = $this->PageHeader; $this->Page_DataRendering($sHeader); $Doc->Text .= $sHeader; $this->ExportDocument($Doc, $rs, $this->StartRec, $this->StopRec, "view"); $sFooter = $this->PageFooter; $this->Page_DataRendered($sFooter); $Doc->Text .= $sFooter; // Close recordset $rs->Close(); // Call Page Exported server event $this->Page_Exported(); // Export header and footer $Doc->ExportHeaderAndFooter(); // Clean output buffer if (!EW_DEBUG_ENABLED && ob_get_length()) ob_end_clean(); // Write debug message if enabled if (EW_DEBUG_ENABLED && $this->Export <> "pdf") echo ew_DebugMsg(); // Output data if ($this->Export == "email") { echo $this->ExportEmail($Doc->Text); } else { $Doc->Export(); } } // Export email function ExportEmail($EmailContent) { global $gTmpImages, $Language; $sSender = @$_POST["sender"]; $sRecipient = @$_POST["recipient"]; $sCc = @$_POST["cc"]; $sBcc = @$_POST["bcc"]; $sContentType = @$_POST["contenttype"]; // Subject $sSubject = ew_StripSlashes(@$_POST["subject"]); $sEmailSubject = $sSubject; // Message $sContent = ew_StripSlashes(@$_POST["message"]); $sEmailMessage = $sContent; // Check sender if ($sSender == "") { return "

" . $Language->Phrase("EnterSenderEmail") . "

"; } if (!ew_CheckEmail($sSender)) { return "

" . $Language->Phrase("EnterProperSenderEmail") . "

"; } // Check recipient if (!ew_CheckEmailList($sRecipient, EW_MAX_EMAIL_RECIPIENT)) { return "

" . $Language->Phrase("EnterProperRecipientEmail") . "

"; } // Check cc if (!ew_CheckEmailList($sCc, EW_MAX_EMAIL_RECIPIENT)) { return "

" . $Language->Phrase("EnterProperCcEmail") . "

"; } // Check bcc if (!ew_CheckEmailList($sBcc, EW_MAX_EMAIL_RECIPIENT)) { return "

" . $Language->Phrase("EnterProperBccEmail") . "

"; } // Check email sent count if (!isset($_SESSION[EW_EXPORT_EMAIL_COUNTER])) $_SESSION[EW_EXPORT_EMAIL_COUNTER] = 0; if (intval($_SESSION[EW_EXPORT_EMAIL_COUNTER]) > EW_MAX_EMAIL_SENT_COUNT) { return "

" . $Language->Phrase("ExceedMaxEmailExport") . "

"; } // Send email $Email = new cEmail(); $Email->Sender = $sSender; // Sender $Email->Recipient = $sRecipient; // Recipient $Email->Cc = $sCc; // Cc $Email->Bcc = $sBcc; // Bcc $Email->Subject = $sEmailSubject; // Subject $Email->Format = ($sContentType == "url") ? "text" : "html"; if ($sEmailMessage <> "") { $sEmailMessage = ew_RemoveXSS($sEmailMessage); $sEmailMessage .= ($sContentType == "url") ? "\r\n\r\n" : "

"; } if ($sContentType == "url") { $sUrl = ew_ConvertFullUrl(ew_CurrentPage() . "?" . $this->ExportQueryString()); $sEmailMessage .= $sUrl; // Send URL only } else { foreach ($gTmpImages as $tmpimage) $Email->AddEmbeddedImage($tmpimage); $sEmailMessage .= ew_CleanEmailContent($EmailContent); // Send HTML } $Email->Content = $sEmailMessage; // Content $EventArgs = array(); if ($this->Recordset) { $this->RecCnt = $this->StartRec - 1; $this->Recordset->MoveFirst(); if ($this->StartRec > 1) $this->Recordset->Move($this->StartRec - 1); $EventArgs["rs"] = &$this->Recordset; } $bEmailSent = FALSE; if ($this->Email_Sending($Email, $EventArgs)) $bEmailSent = $Email->Send(); // Check email sent status if ($bEmailSent) { // Update email sent count $_SESSION[EW_EXPORT_EMAIL_COUNTER]++; // Sent email success return "

" . $Language->Phrase("SendEmailSuccess") . "

"; // Set up success message } else { // Sent email failure return "

" . $Email->SendErrDescription . "

"; } } // Export QueryString function ExportQueryString() { // Initialize $sQry = "export=html"; // Add record key QueryString $sQry .= "&" . substr($this->KeyUrl("", ""), 1); return $sQry; } // Set up Breadcrumb function SetupBreadcrumb() { global $Breadcrumb, $Language; $Breadcrumb = new cBreadcrumb(); $url = substr(ew_CurrentUrl(), strrpos(ew_CurrentUrl(), "/")+1); $Breadcrumb->Add("list", $this->TableVar, $this->AddMasterUrl("userslist.php"), "", $this->TableVar, TRUE); $PageId = "view"; $Breadcrumb->Add("view", $PageId, $url); } // Setup lookup filters of a field function SetupLookupFilters($fld, $pageId = null) { global $gsLanguage; $pageId = $pageId ?: $this->PageID; switch ($fld->FldVar) { } } // Setup AutoSuggest filters of a field function SetupAutoSuggestFilters($fld, $pageId = null) { global $gsLanguage; $pageId = $pageId ?: $this->PageID; switch ($fld->FldVar) { } } // Page Load event function Page_Load() { //echo "Page Load"; } // Page Unload event function Page_Unload() { //echo "Page Unload"; } // Page Redirecting event function Page_Redirecting(&$url) { // Example: //$url = "your URL"; } // Message Showing event // $type = ''|'success'|'failure'|'warning' function Message_Showing(&$msg, $type) { if ($type == 'success') { //$msg = "your success message"; } elseif ($type == 'failure') { //$msg = "your failure message"; } elseif ($type == 'warning') { //$msg = "your warning message"; } else { //$msg = "your message"; } } // Page Render event function Page_Render() { //echo "Page Render"; } // Page Data Rendering event function Page_DataRendering(&$header) { // Example: //$header = "your header"; } // Page Data Rendered event function Page_DataRendered(&$footer) { // Example: //$footer = "your footer"; } // Page Exporting event // $this->ExportDoc = export document object function Page_Exporting() { //$this->ExportDoc->Text = "my header"; // Export header //return FALSE; // Return FALSE to skip default export and use Row_Export event return TRUE; // Return TRUE to use default export and skip Row_Export event } // Row Export event // $this->ExportDoc = export document object function Row_Export($rs) { //$this->ExportDoc->Text .= "my content"; // Build HTML with field value: $rs["MyField"] or $this->MyField->ViewValue } // Page Exported event // $this->ExportDoc = export document object function Page_Exported() { //$this->ExportDoc->Text .= "my footer"; // Export footer //echo $this->ExportDoc->Text; } } ?> Page_Init(); // Page main $users_view->Page_Main(); // Global Page Rendering event (in userfn*.php) Page_Rendering(); // Page Rendering event $users_view->Page_Render(); ?> Export == "") { ?> Export == "") { ?>
IsModal) { ?> Export == "") { ?> Render(); ?> ExportOptions->Render("body") ?> OtherOptions as &$option) $option->Render("body"); ?> IsModal) { ?> Export == "") { ?> SelectionForm(); ?>
ShowPageHeader(); ?> ShowMessage(); ?> IsModal) { ?> Export == "") { ?>
Pager)) $users_view->Pager = new cNumericPager($users_view->StartRec, $users_view->DisplayRecs, $users_view->TotalRecs, $users_view->RecRange) ?> Pager->RecordCount > 0 && $users_view->Pager->Visible) { ?>
CheckToken) { ?> IsModal) { ?> id->Visible) { // id ?> _login->Visible) { // login ?> password->Visible) { // password ?> id_group->Visible) { // id_group ?>
id->FldCaption() ?> id->CellAttributes() ?>> id->ViewAttributes() ?>> id->ViewValue ?>
_login->FldCaption() ?> _login->CellAttributes() ?>> _login->ViewAttributes() ?>> _login->ViewValue ?>
password->FldCaption() ?> password->CellAttributes() ?>> password->ViewAttributes() ?>> password->ViewValue ?>
id_group->FldCaption() ?> id_group->CellAttributes() ?>> id_group->ViewAttributes() ?>> id_group->ViewValue ?>
IsModal) { ?> Export == "") { ?> Pager)) $users_view->Pager = new cNumericPager($users_view->StartRec, $users_view->DisplayRecs, $users_view->TotalRecs, $users_view->RecRange) ?> Pager->RecordCount > 0 && $users_view->Pager->Visible) { ?>
Export == "") { ?> ShowPageFooter(); if (EW_DEBUG_ENABLED) echo ew_DebugMsg(); ?> Export == "") { ?> Page_Terminate(); ?>